diff --git a/src/com/android/settings/SetupChooseLockPattern.java b/src/com/android/settings/SetupChooseLockPattern.java index 30a3c7c9d24..762d3b3c093 100644 --- a/src/com/android/settings/SetupChooseLockPattern.java +++ b/src/com/android/settings/SetupChooseLockPattern.java @@ -75,7 +75,7 @@ public class SetupChooseLockPattern extends ChooseLockPattern { protected Intent getRedactionInterstitialIntent(Context context) { // Setup wizard's redaction interstitial is deferred to optional step. Enable that // optional step if the lock screen was set up. - SetupRedactionInterstitial.setEnabled(context, false); + SetupRedactionInterstitial.setEnabled(context, true); return null; } } diff --git a/tests/robotests/src/com/android/settings/SettingsRobolectricTestRunner.java b/tests/robotests/src/com/android/settings/SettingsRobolectricTestRunner.java index 668fc88c35e..e063f88d637 100644 --- a/tests/robotests/src/com/android/settings/SettingsRobolectricTestRunner.java +++ b/tests/robotests/src/com/android/settings/SettingsRobolectricTestRunner.java @@ -77,6 +77,22 @@ public class SettingsRobolectricTestRunner extends RobolectricTestRunner { getPackageName(), Fs.fileFromPath("./frameworks/base/core/res/res"), null)); + paths.add(new ResourcePath( + getPackageName(), + Fs.fileFromPath("./frameworks/opt/setupwizard/library/main/res"), + null)); + paths.add(new ResourcePath( + getPackageName(), + Fs.fileFromPath("./frameworks/opt/setupwizard/library/gingerbread/res"), + null)); + paths.add(new ResourcePath( + getPackageName(), + Fs.fileFromPath("./frameworks/opt/setupwizard/library/recyclerview/res"), + null)); + paths.add(new ResourcePath( + getPackageName(), + Fs.fileFromPath("./frameworks/support/v7/appcompat/res"), + null)); return paths; } }; diff --git a/tests/robotests/src/com/android/settings/SetupChooseLockPatternTest.java b/tests/robotests/src/com/android/settings/SetupChooseLockPatternTest.java new file mode 100644 index 00000000000..4b78ee73c8a --- /dev/null +++ b/tests/robotests/src/com/android/settings/SetupChooseLockPatternTest.java @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2017 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.settings; + +import static com.google.common.truth.Truth.assertThat; + +import static org.robolectric.RuntimeEnvironment.application; + +import android.app.Activity; +import android.content.ComponentName; +import android.content.pm.PackageManager; +import android.os.UserHandle; + +import com.android.settings.ChooseLockPattern.ChooseLockPatternFragment; +import com.android.settings.testutils.shadow.SettingsShadowResources; +import com.android.settings.testutils.shadow.ShadowDynamicIndexableContentMonitor; +import com.android.settings.testutils.shadow.ShadowEventLogWriter; +import com.android.settings.testutils.shadow.ShadowUtils; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.robolectric.Robolectric; +import org.robolectric.RuntimeEnvironment; +import org.robolectric.annotation.Config; +import org.robolectric.res.builder.RobolectricPackageManager.ComponentState; + +@RunWith(SettingsRobolectricTestRunner.class) +@Config( + manifest = TestConfig.MANIFEST_PATH, + sdk = TestConfig.SDK_VERSION, + shadows = { + SettingsShadowResources.class, + SettingsShadowResources.SettingsShadowTheme.class, + ShadowDynamicIndexableContentMonitor.class, + ShadowEventLogWriter.class, + ShadowUtils.class + }) +public class SetupChooseLockPatternTest { + + private SetupChooseLockPattern mActivity; + + @Before + public void setUp() { + RuntimeEnvironment.getRobolectricPackageManager().setComponentEnabledSetting( + new ComponentName(application, SetupRedactionInterstitial.class), + PackageManager.COMPONENT_ENABLED_STATE_DISABLED, + PackageManager.DONT_KILL_APP); + + mActivity = Robolectric.buildActivity( + SetupChooseLockPattern.class, + SetupChooseLockPattern.createIntent( + application, + false, /* requirePassword */ + false, /* confirmCredentials */ + UserHandle.myUserId())) + .setup().get(); + } + + @Test + public void chooseLockSaved_shouldEnableRedactionInterstitial() { + findFragment(mActivity).onChosenLockSaveFinished(false, null); + + ComponentState redactionComponentState = + RuntimeEnvironment.getRobolectricPackageManager().getComponentState( + new ComponentName(application, SetupRedactionInterstitial.class)); + assertThat(redactionComponentState.newState).named("Redaction component state") + .isEqualTo(PackageManager.COMPONENT_ENABLED_STATE_ENABLED); + } + + private ChooseLockPatternFragment findFragment(Activity activity) { + return (ChooseLockPatternFragment) + activity.getFragmentManager().findFragmentById(R.id.main_content); + } +} diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUtils.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUtils.java new file mode 100644 index 00000000000..81cc6070377 --- /dev/null +++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUtils.java @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2017 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.settings.testutils.shadow; + +import android.content.Context; + +import com.android.settings.Utils; + +import org.robolectric.annotation.Implementation; +import org.robolectric.annotation.Implements; + +@Implements(Utils.class) +public class ShadowUtils { + + @Implementation + public static int enforceSameOwner(Context context, int userId) { + return userId; + } +}