diff options
Diffstat (limited to 'sdksandbox/tests/cts/endtoendtests')
16 files changed, 205 insertions, 26 deletions
diff --git a/sdksandbox/tests/cts/endtoendtests/Android.bp b/sdksandbox/tests/cts/endtoendtests/Android.bp index 6a3724fd68..d7bdee90ee 100644 --- a/sdksandbox/tests/cts/endtoendtests/Android.bp +++ b/sdksandbox/tests/cts/endtoendtests/Android.bp @@ -34,6 +34,7 @@ android_test { ], data: [ ":LoadSdkSuccessfullySdkProvider", + ":LoadSdkAndCheckClassloaderSdkProvider", ":GetLoadedSdkLibInfoSuccessfully", ":LoadSdkSuccessfullySdkProviderTwo", ":LoadSdkWithInternalErrorSdkProvider", @@ -42,7 +43,7 @@ android_test { ":CodeProviderWithResources", ], min_sdk_version: "Tiramisu", - target_sdk_version: "current", + target_sdk_version: "Tiramisu", test_suites: [ "cts", "mts-adservices", diff --git a/sdksandbox/tests/cts/endtoendtests/AndroidManifest.xml b/sdksandbox/tests/cts/endtoendtests/AndroidManifest.xml index 995a6ae69d..9602549ea6 100644 --- a/sdksandbox/tests/cts/endtoendtests/AndroidManifest.xml +++ b/sdksandbox/tests/cts/endtoendtests/AndroidManifest.xml @@ -21,20 +21,23 @@ <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="com.android.app.sdksandbox.permission.STOP_SDK_SANDBOX" /> - <application android:debuggable="true"> - <uses-library android:name="android.test.runner" /> + <application> + <uses-library android:name="android.test.runner"/> <uses-sdk-library android:name="com.android.loadSdkSuccessfullySdkProvider" android:versionMajor="1" - android:certDigest="0B:44:2D:88:FA:A7:B3:AD:23:8D:DE:29:8A:A1:9B:D5:62:03:92:0B:BF:D8:D3:EB:C8:99:33:2C:8E:E1:15:99" /> + android:certDigest="0B:44:2D:88:FA:A7:B3:AD:23:8D:DE:29:8A:A1:9B:D5:62:03:92:0B:BF:D8:D3:EB:C8:99:33:2C:8E:E1:15:99"/> + <uses-sdk-library android:name="com.android.loadSdkAndCheckClassloader" + android:versionMajor="1" + android:certDigest="0B:44:2D:88:FA:A7:B3:AD:23:8D:DE:29:8A:A1:9B:D5:62:03:92:0B:BF:D8:D3:EB:C8:99:33:2C:8E:E1:15:99"/> <uses-sdk-library android:name="com.android.getLoadedSdkLibInfoSuccessfully" android:versionMajor="1" - android:certDigest="0B:44:2D:88:FA:A7:B3:AD:23:8D:DE:29:8A:A1:9B:D5:62:03:92:0B:BF:D8:D3:EB:C8:99:33:2C:8E:E1:15:99" /> + android:certDigest="0B:44:2D:88:FA:A7:B3:AD:23:8D:DE:29:8A:A1:9B:D5:62:03:92:0B:BF:D8:D3:EB:C8:99:33:2C:8E:E1:15:99"/> <uses-sdk-library android:name="com.android.loadSdkSuccessfullySdkProviderTwo" android:versionMajor="1" - android:certDigest="0B:44:2D:88:FA:A7:B3:AD:23:8D:DE:29:8A:A1:9B:D5:62:03:92:0B:BF:D8:D3:EB:C8:99:33:2C:8E:E1:15:99" /> + android:certDigest="0B:44:2D:88:FA:A7:B3:AD:23:8D:DE:29:8A:A1:9B:D5:62:03:92:0B:BF:D8:D3:EB:C8:99:33:2C:8E:E1:15:99"/> <uses-sdk-library android:name="com.android.loadSdkWithInternalErrorSdkProvider" android:versionMajor="1" - android:certDigest="0B:44:2D:88:FA:A7:B3:AD:23:8D:DE:29:8A:A1:9B:D5:62:03:92:0B:BF:D8:D3:EB:C8:99:33:2C:8E:E1:15:99" /> + android:certDigest="0B:44:2D:88:FA:A7:B3:AD:23:8D:DE:29:8A:A1:9B:D5:62:03:92:0B:BF:D8:D3:EB:C8:99:33:2C:8E:E1:15:99"/> <uses-sdk-library android:name="com.android.requestSurfacePackageSuccessfullySdkProvider" android:versionMajor="1" android:certDigest="0B:44:2D:88:FA:A7:B3:AD:23:8D:DE:29:8A:A1:9B:D5:62:03:92:0B:BF:D8:D3:EB:C8:99:33:2C:8E:E1:15:99" /> diff --git a/sdksandbox/tests/cts/endtoendtests/AndroidTest.xml b/sdksandbox/tests/cts/endtoendtests/AndroidTest.xml index 5ecaadb1d8..78c5ae1c28 100644 --- a/sdksandbox/tests/cts/endtoendtests/AndroidTest.xml +++ b/sdksandbox/tests/cts/endtoendtests/AndroidTest.xml @@ -20,9 +20,16 @@ <option name="config-descriptor:metadata" key="parameter" value="not_instant_app"/> <option name="config-descriptor:metadata" key="parameter" value="not_multi_abi"/> <option name="config-descriptor:metadata" key="parameter" value="secondary_user"/> + + <target_preparer class="com.android.tradefed.targetprep.DeviceSetup"> + <!-- Disable syncing to prevent overwriting flags during testing. --> + <option name="disable-device-config-sync" value="true" /> + </target_preparer> + <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> <option name="cleanup-apks" value="true"/> <option name="test-file-name" value="LoadSdkSuccessfullySdkProvider.apk"/> + <option name="test-file-name" value="LoadSdkAndCheckClassloaderSdkProvider.apk"/> <option name="test-file-name" value="GetLoadedSdkLibInfoSuccessfully.apk"/> <option name="test-file-name" value="LoadSdkSuccessfullySdkProviderTwo.apk"/> <option name="test-file-name" value="LoadSdkWithInternalErrorSdkProvider.apk"/> diff --git a/sdksandbox/tests/cts/endtoendtests/DisabledAndroidManifest.xml b/sdksandbox/tests/cts/endtoendtests/DisabledAndroidManifest.xml index 24d32fb63d..8874449614 100644 --- a/sdksandbox/tests/cts/endtoendtests/DisabledAndroidManifest.xml +++ b/sdksandbox/tests/cts/endtoendtests/DisabledAndroidManifest.xml @@ -20,7 +20,7 @@ <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> - <application android:debuggable="true"> + <application> <uses-library android:name="android.test.runner" /> <uses-sdk-library android:name="com.android.loadSdkSuccessfullySdkProvider" android:versionMajor="1" diff --git a/sdksandbox/tests/cts/endtoendtests/DisabledAndroidTest.xml b/sdksandbox/tests/cts/endtoendtests/DisabledAndroidTest.xml index 72a47d0386..3222d1b494 100644 --- a/sdksandbox/tests/cts/endtoendtests/DisabledAndroidTest.xml +++ b/sdksandbox/tests/cts/endtoendtests/DisabledAndroidTest.xml @@ -20,6 +20,12 @@ <option name="config-descriptor:metadata" key="parameter" value="not_instant_app"/> <option name="config-descriptor:metadata" key="parameter" value="not_multi_abi"/> <option name="config-descriptor:metadata" key="parameter" value="secondary_user"/> + + <target_preparer class="com.android.tradefed.targetprep.DeviceSetup"> + <!-- Disable syncing to prevent overwriting flags during testing. --> + <option name="disable-device-config-sync" value="true" /> + </target_preparer> + <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> <option name="cleanup-apks" value="true"/> <option name="test-file-name" value="LoadSdkSuccessfullySdkProvider.apk"/> diff --git a/sdksandbox/tests/cts/endtoendtests/providers/getLoadedSdkLibInfoSuccessfully/Android.bp b/sdksandbox/tests/cts/endtoendtests/providers/getLoadedSdkLibInfoSuccessfully/Android.bp index a1d970af33..21ce59d1cb 100644 --- a/sdksandbox/tests/cts/endtoendtests/providers/getLoadedSdkLibInfoSuccessfully/Android.bp +++ b/sdksandbox/tests/cts/endtoendtests/providers/getLoadedSdkLibInfoSuccessfully/Android.bp @@ -23,5 +23,6 @@ android_test_helper_app { srcs: [ "src/**/*.java", ], - platform_apis: true, + min_sdk_version: "33", + target_sdk_version: "33", } diff --git a/sdksandbox/tests/cts/endtoendtests/providers/loadSdkAndCheckClassloader/Android.bp b/sdksandbox/tests/cts/endtoendtests/providers/loadSdkAndCheckClassloader/Android.bp new file mode 100644 index 0000000000..12ee53de05 --- /dev/null +++ b/sdksandbox/tests/cts/endtoendtests/providers/loadSdkAndCheckClassloader/Android.bp @@ -0,0 +1,31 @@ +// Copyright (C) 2022 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 { + default_applicable_licenses: ["Android-Apache-2.0"], +} + +android_test_helper_app { + name: "LoadSdkAndCheckClassloaderSdkProvider", + defaults: ["platform_app_defaults",], + certificate: ":sdksandbox-test", + srcs: [ + "src/**/*.java", + ], + static_libs: [ + "SdkSandbox-java-lib", + ], + min_sdk_version: "33", + target_sdk_version: "33", +} diff --git a/sdksandbox/tests/cts/endtoendtests/providers/loadSdkAndCheckClassloader/AndroidManifest.xml b/sdksandbox/tests/cts/endtoendtests/providers/loadSdkAndCheckClassloader/AndroidManifest.xml new file mode 100644 index 0000000000..922bf0be2d --- /dev/null +++ b/sdksandbox/tests/cts/endtoendtests/providers/loadSdkAndCheckClassloader/AndroidManifest.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2022 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. + --> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.android.loadsdkandcheckclassloadersdkprovider"> + + <application> + <sdk-library android:name="com.android.loadSdkAndCheckClassloader" + android:versionMajor="1"/> + <property android:name="android.sdksandbox.PROPERTY_SDK_PROVIDER_CLASS_NAME" + android:value="com.android.loadsdkandcheckclassloadersdkprovider.SdkProvider"/> + </application> +</manifest> diff --git a/sdksandbox/tests/cts/endtoendtests/providers/loadSdkAndCheckClassloader/src/com/android/loadsdkandcheckclassloadersdkprovider/SdkProvider.java b/sdksandbox/tests/cts/endtoendtests/providers/loadSdkAndCheckClassloader/src/com/android/loadsdkandcheckclassloadersdkprovider/SdkProvider.java new file mode 100644 index 0000000000..e4fdd7dce2 --- /dev/null +++ b/sdksandbox/tests/cts/endtoendtests/providers/loadSdkAndCheckClassloader/src/com/android/loadsdkandcheckclassloadersdkprovider/SdkProvider.java @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2022 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 com.android.loadsdkandcheckclassloadersdkprovider; + +import android.app.sdksandbox.SandboxedSdk; +import android.app.sdksandbox.SandboxedSdkProvider; +import android.content.Context; +import android.os.Binder; +import android.os.Bundle; +import android.view.View; + +import com.android.sdksandbox.SdkSandboxServiceImpl; + +public class SdkProvider extends SandboxedSdkProvider { + + @Override + public SandboxedSdk onLoadSdk(Bundle params) { + final ClassLoader ownClassloader = getClass().getClassLoader(); + if (ownClassloader == null) { + throw new RuntimeException("SdkProvider loaded in top-level classloader"); + } + + final ClassLoader contextClassloader = getContext().getClassLoader(); + if (!ownClassloader.equals(contextClassloader)) { + throw new RuntimeException("Different SdkProvider and Context classloaders"); + } + + try { + Class<?> loadedClazz = ownClassloader.loadClass(SdkSandboxServiceImpl.class.getName()); + if (!ownClassloader.equals(loadedClazz.getClassLoader())) { + throw new RuntimeException("SdkSandboxServiceImpl loaded with wrong classloader"); + } + } catch (ClassNotFoundException ex) { + throw new RuntimeException("Couldn't find class bundled with SdkProvider", ex); + } + + return new SandboxedSdk(new Binder()); + } + + @Override + public View getView(Context windowContext, Bundle params, int width, int height) { + return null; + } +} diff --git a/sdksandbox/tests/cts/endtoendtests/providers/loadSdkSuccessfully/Android.bp b/sdksandbox/tests/cts/endtoendtests/providers/loadSdkSuccessfully/Android.bp index 983e909b06..96bef68b84 100644 --- a/sdksandbox/tests/cts/endtoendtests/providers/loadSdkSuccessfully/Android.bp +++ b/sdksandbox/tests/cts/endtoendtests/providers/loadSdkSuccessfully/Android.bp @@ -23,5 +23,6 @@ android_test_helper_app { srcs: [ "src/**/*.java", ], - platform_apis: true, + min_sdk_version: "33", + target_sdk_version: "33", } diff --git a/sdksandbox/tests/cts/endtoendtests/providers/loadSdkSuccessfullyTwo/Android.bp b/sdksandbox/tests/cts/endtoendtests/providers/loadSdkSuccessfullyTwo/Android.bp index 95b2785238..5689a86965 100644 --- a/sdksandbox/tests/cts/endtoendtests/providers/loadSdkSuccessfullyTwo/Android.bp +++ b/sdksandbox/tests/cts/endtoendtests/providers/loadSdkSuccessfullyTwo/Android.bp @@ -23,5 +23,6 @@ android_test_helper_app { srcs: [ "src/**/*.java", ], - platform_apis: true, + min_sdk_version: "33", + target_sdk_version: "33", } diff --git a/sdksandbox/tests/cts/endtoendtests/providers/loadSdkWithInternalError/Android.bp b/sdksandbox/tests/cts/endtoendtests/providers/loadSdkWithInternalError/Android.bp index ec948a6f95..073c7deef1 100644 --- a/sdksandbox/tests/cts/endtoendtests/providers/loadSdkWithInternalError/Android.bp +++ b/sdksandbox/tests/cts/endtoendtests/providers/loadSdkWithInternalError/Android.bp @@ -23,5 +23,6 @@ android_test_helper_app { srcs: [ "src/**/*.java", ], - platform_apis: true, + min_sdk_version: "33", + target_sdk_version: "33", } diff --git a/sdksandbox/tests/cts/endtoendtests/providers/requestSurfacePackageSuccessfully/Android.bp b/sdksandbox/tests/cts/endtoendtests/providers/requestSurfacePackageSuccessfully/Android.bp index 4b0b7f9814..dcb0a31a10 100644 --- a/sdksandbox/tests/cts/endtoendtests/providers/requestSurfacePackageSuccessfully/Android.bp +++ b/sdksandbox/tests/cts/endtoendtests/providers/requestSurfacePackageSuccessfully/Android.bp @@ -23,5 +23,6 @@ android_test_helper_app { srcs: [ "src/**/*.java", ], - platform_apis: true, + min_sdk_version: "33", + target_sdk_version: "33", } diff --git a/sdksandbox/tests/cts/endtoendtests/providers/requestSurfacePackageWithInternalError/Android.bp b/sdksandbox/tests/cts/endtoendtests/providers/requestSurfacePackageWithInternalError/Android.bp index 9a7a221172..3cdffc0ac3 100644 --- a/sdksandbox/tests/cts/endtoendtests/providers/requestSurfacePackageWithInternalError/Android.bp +++ b/sdksandbox/tests/cts/endtoendtests/providers/requestSurfacePackageWithInternalError/Android.bp @@ -23,5 +23,6 @@ android_test_helper_app { srcs: [ "src/**/*.java", ], - platform_apis: true, + min_sdk_version: "33", + target_sdk_version: "33", } diff --git a/sdksandbox/tests/cts/endtoendtests/src/com/android/tests/sdksandbox/disablede2e/SdkSandboxManagerDisabledTest.java b/sdksandbox/tests/cts/endtoendtests/src/com/android/tests/sdksandbox/disablede2e/SdkSandboxManagerDisabledTest.java index dcd6423369..850e69923f 100644 --- a/sdksandbox/tests/cts/endtoendtests/src/com/android/tests/sdksandbox/disablede2e/SdkSandboxManagerDisabledTest.java +++ b/sdksandbox/tests/cts/endtoendtests/src/com/android/tests/sdksandbox/disablede2e/SdkSandboxManagerDisabledTest.java @@ -59,7 +59,7 @@ public class SdkSandboxManagerDisabledTest { @Test public void testSdkSandboxDisabledErrorCode() throws Exception { DeviceConfig.setProperty( - DeviceConfig.NAMESPACE_SDK_SANDBOX, "disable_sdk_sandbox", "true", false); + DeviceConfig.NAMESPACE_ADSERVICES, "disable_sdk_sandbox", "true", false); // Allow time for DeviceConfig change to propagate Thread.sleep(1000); final String sdkName = "com.android.loadSdkSuccessfullySdkProvider"; diff --git a/sdksandbox/tests/cts/endtoendtests/src/com/android/tests/sdksandbox/endtoend/SdkSandboxManagerTest.java b/sdksandbox/tests/cts/endtoendtests/src/com/android/tests/sdksandbox/endtoend/SdkSandboxManagerTest.java index b882c6fa71..4e85e8cfe7 100644 --- a/sdksandbox/tests/cts/endtoendtests/src/com/android/tests/sdksandbox/endtoend/SdkSandboxManagerTest.java +++ b/sdksandbox/tests/cts/endtoendtests/src/com/android/tests/sdksandbox/endtoend/SdkSandboxManagerTest.java @@ -53,6 +53,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; +import java.util.List; + /* * TODO(b/215372846): These providers * (RequestSurfacePackageSuccessfullySdkProvider, RetryLoadSameSdkShouldFailSdkProvider) could be @@ -98,6 +100,39 @@ public class SdkSandboxManagerTest { } @Test + public void getSandboxedSdkSuccessfully() { + final String sdkName = "com.android.loadSdkSuccessfullySdkProvider"; + final FakeLoadSdkCallback callback = new FakeLoadSdkCallback(); + mSdkSandboxManager.loadSdk(sdkName, new Bundle(), Runnable::run, callback); + assertThat(callback.isLoadSdkSuccessful(/*ignoreSdkAlreadyLoadedError=*/ true)).isTrue(); + + List<SandboxedSdk> sandboxedSdks = mSdkSandboxManager.getSandboxedSdks(); + + int nLoadedSdks = sandboxedSdks.size(); + assertThat(nLoadedSdks).isGreaterThan(0); + assertThat( + sandboxedSdks.stream() + .filter(s -> s.getSharedLibraryInfo().getName().equals(sdkName)) + .count()) + .isEqualTo(1); + + mSdkSandboxManager.unloadSdk(sdkName); + List<SandboxedSdk> sandboxedSdksAfterUnload = mSdkSandboxManager.getSandboxedSdks(); + assertThat(sandboxedSdksAfterUnload.size()).isEqualTo(nLoadedSdks - 1); + } + + @Test + public void loadSdkAndCheckClassloader() { + final String sdkName = "com.android.loadSdkAndCheckClassloader"; + final FakeLoadSdkCallback callback = new FakeLoadSdkCallback(); + mSdkSandboxManager.loadSdk(sdkName, new Bundle(), Runnable::run, callback); + assertThat(callback.isLoadSdkSuccessful()).isTrue(); + assertNotNull(callback.getSandboxedSdk()); + assertNotNull(callback.getSandboxedSdk().getInterface()); + mSdkSandboxManager.unloadSdk(sdkName); + } + + @Test public void retryLoadSameSdkShouldFail() { final String sdkName = "com.android.loadSdkSuccessfullySdkProviderTwo"; FakeLoadSdkCallback callback = new FakeLoadSdkCallback(); @@ -143,23 +178,28 @@ public class SdkSandboxManagerTest { } @Test - public void unloadAndReloadSdk() { + public void unloadAndReloadSdk() throws Exception { final String sdkName = "com.android.loadSdkSuccessfullySdkProvider"; final FakeLoadSdkCallback callback = new FakeLoadSdkCallback(); mSdkSandboxManager.loadSdk(sdkName, new Bundle(), Runnable::run, callback); assertThat(callback.isLoadSdkSuccessful()).isTrue(); mSdkSandboxManager.unloadSdk(sdkName); + // Wait till SDK is unloaded. + Thread.sleep(2000); - // Calls to an unloaded SDK should throw an exception. + // Calls to an unloaded SDK should fail. final FakeRequestSurfacePackageCallback requestSurfacePackageCallback = new FakeRequestSurfacePackageCallback(); - Bundle params = getRequestSurfacePackageParams(); - assertThrows( - IllegalArgumentException.class, - () -> - mSdkSandboxManager.requestSurfacePackage( - sdkName, params, Runnable::run, requestSurfacePackageCallback)); + mSdkSandboxManager.requestSurfacePackage( + sdkName, + getRequestSurfacePackageParams(), + Runnable::run, + requestSurfacePackageCallback); + + assertThat(requestSurfacePackageCallback.isRequestSurfacePackageSuccessful()).isFalse(); + assertThat(requestSurfacePackageCallback.getSurfacePackageErrorCode()) + .isEqualTo(SdkSandboxManager.REQUEST_SURFACE_PACKAGE_SDK_NOT_LOADED); // SDK can be reloaded after being unloaded. final FakeLoadSdkCallback callback2 = new FakeLoadSdkCallback(); @@ -168,7 +208,7 @@ public class SdkSandboxManagerTest { } @Test - public void unloadingNonexistentSdkThrowsException() { + public void unloadNonexistentSdk() { final String sdkName1 = "com.android.loadSdkSuccessfullySdkProvider"; final FakeLoadSdkCallback callback = new FakeLoadSdkCallback(); mSdkSandboxManager.loadSdk(sdkName1, new Bundle(), Runnable::run, callback); @@ -176,7 +216,8 @@ public class SdkSandboxManagerTest { assertThat(callback.isLoadSdkSuccessful(/*ignoreSdkAlreadyLoadedError=*/ true)).isTrue(); final String sdkName2 = "com.android.nonexistent"; - assertThrows(IllegalArgumentException.class, () -> mSdkSandboxManager.unloadSdk(sdkName2)); + // Unloading does nothing - call should go throw without error. + mSdkSandboxManager.unloadSdk(sdkName2); } @Test @@ -362,7 +403,7 @@ public class SdkSandboxManagerTest { sdkName, getRequestSurfacePackageParams(), Runnable::run, surfacePackageCallback); assertThat(surfacePackageCallback.isRequestSurfacePackageSuccessful()).isFalse(); assertThat(surfacePackageCallback.getSurfacePackageErrorCode()) - .isEqualTo(SdkSandboxManager.SDK_SANDBOX_PROCESS_NOT_AVAILABLE); + .isEqualTo(SdkSandboxManager.REQUEST_SURFACE_PACKAGE_SDK_NOT_LOADED); } @Test |