diff options
-rw-r--r-- | Ravenwood.bp | 2 | ||||
-rw-r--r-- | core/java/android/content/ContextWrapper.java | 3 | ||||
-rw-r--r-- | ravenwood/OWNERS | 2 | ||||
-rw-r--r-- | ravenwood/framework-minus-apex-ravenwood-policies.txt | 4 | ||||
-rw-r--r-- | ravenwood/ravenwood-annotation-allowed-classes.txt | 1 | ||||
-rw-r--r-- | test-mock/Android.bp | 23 | ||||
-rw-r--r-- | test-mock/tests/src/android/test/mock/MockContextTest.java | 30 | ||||
-rw-r--r-- | test-mock/tests/src/android/test/mock/MockPackageManagerTest.java | 30 |
8 files changed, 93 insertions, 2 deletions
diff --git a/Ravenwood.bp b/Ravenwood.bp index ca73378c8e81..df9ac82ca263 100644 --- a/Ravenwood.bp +++ b/Ravenwood.bp @@ -80,7 +80,7 @@ android_ravenwood_libgroup { "junit", "truth", "ravenwood-junit-impl", - "android.test.mock", + "android.test.mock.ravenwood", ], } diff --git a/core/java/android/content/ContextWrapper.java b/core/java/android/content/ContextWrapper.java index 4327c7acf0f0..0a8029c44d73 100644 --- a/core/java/android/content/ContextWrapper.java +++ b/core/java/android/content/ContextWrapper.java @@ -71,6 +71,7 @@ import java.util.function.IntConsumer; * another Context. Can be subclassed to modify behavior without changing * the original Context. */ +@android.ravenwood.annotation.RavenwoodKeepWholeClass public class ContextWrapper extends Context { @UnsupportedAppUsage Context mBase; @@ -1430,6 +1431,7 @@ public class ContextWrapper extends Context { * @throws IllegalStateException if this method calls before {@link #attachBaseContext(Context)} */ @Override + @android.ravenwood.annotation.RavenwoodThrow public void registerComponentCallbacks(ComponentCallbacks callback) { if (mBase != null) { mBase.registerComponentCallbacks(callback); @@ -1464,6 +1466,7 @@ public class ContextWrapper extends Context { * @throws IllegalStateException if this method calls before {@link #attachBaseContext(Context)} */ @Override + @android.ravenwood.annotation.RavenwoodThrow public void unregisterComponentCallbacks(ComponentCallbacks callback) { // It usually means the ComponentCallbacks is registered before this ContextWrapper attaches // to a base Context and Application is targeting prior to S-v2. We should unregister the diff --git a/ravenwood/OWNERS b/ravenwood/OWNERS index c06b3b9c2d11..41fd68e6c2d9 100644 --- a/ravenwood/OWNERS +++ b/ravenwood/OWNERS @@ -1,3 +1,5 @@ +set noparent + jsharkey@google.com omakoto@google.com jaggies@google.com diff --git a/ravenwood/framework-minus-apex-ravenwood-policies.txt b/ravenwood/framework-minus-apex-ravenwood-policies.txt index 79bfa443b330..96cfa4896808 100644 --- a/ravenwood/framework-minus-apex-ravenwood-policies.txt +++ b/ravenwood/framework-minus-apex-ravenwood-policies.txt @@ -134,6 +134,8 @@ class com.android.modules.utils.TypedXmlSerializer stubclass class android.net.Uri stubclass class android.net.UriCodec stubclass -# Context: just enough to support wrapper, no further functionality +# Just enough to support mocking, no further functionality class android.content.Context stub method <init> ()V stub +class android.content.pm.PackageManager stub + method <init> ()V stub diff --git a/ravenwood/ravenwood-annotation-allowed-classes.txt b/ravenwood/ravenwood-annotation-allowed-classes.txt index 07c2cd7c26b3..e29473373440 100644 --- a/ravenwood/ravenwood-annotation-allowed-classes.txt +++ b/ravenwood/ravenwood-annotation-allowed-classes.txt @@ -30,6 +30,7 @@ android.content.ClipDescription android.content.ComponentName android.content.ContentUris android.content.ContentValues +android.content.ContextWrapper android.content.Intent android.content.IntentFilter android.content.UriMatcher diff --git a/test-mock/Android.bp b/test-mock/Android.bp index 22320fd53631..2ff74132ffbb 100644 --- a/test-mock/Android.bp +++ b/test-mock/Android.bp @@ -54,6 +54,29 @@ java_sdk_library { dist_group: "android", } +java_library { + name: "android.test.mock.ravenwood", + srcs: [":android-test-mock-sources"], + visibility: [ + "//frameworks/base", + ], +} + +android_ravenwood_test { + name: "android.test.mock.ravenwood.tests", + libs: [ + "android.test.mock.ravenwood", + ], + static_libs: [ + "androidx.annotation_annotation", + "androidx.test.rules", + ], + srcs: [ + "tests/**/*.java", + ], + auto_gen_config: true, +} + // Make the current.txt available for use by the cts/tests/signature tests. // ======================================================================== filegroup { diff --git a/test-mock/tests/src/android/test/mock/MockContextTest.java b/test-mock/tests/src/android/test/mock/MockContextTest.java new file mode 100644 index 000000000000..6e28267de46d --- /dev/null +++ b/test-mock/tests/src/android/test/mock/MockContextTest.java @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.test.mock; + +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +@RunWith(AndroidJUnit4.class) +public class MockContextTest { + @Test + public void testConstructor() { + new MockContext(); + } +} diff --git a/test-mock/tests/src/android/test/mock/MockPackageManagerTest.java b/test-mock/tests/src/android/test/mock/MockPackageManagerTest.java new file mode 100644 index 000000000000..5b860f169193 --- /dev/null +++ b/test-mock/tests/src/android/test/mock/MockPackageManagerTest.java @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.test.mock; + +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +@RunWith(AndroidJUnit4.class) +public class MockPackageManagerTest { + @Test + public void testConstructor() { + new MockPackageManager(); + } +} |