From 34200fb19e331abae4c651e40d8fe34943662d20 Mon Sep 17 00:00:00 2001 From: Doris Ling Date: Tue, 20 Feb 2018 17:38:48 -0800 Subject: [PATCH] Update launch component for work mode condition. - start accounts dashboard instead of users settings. Change-Id: I1365e6c32ac3de23c24b75e33262957e4a4224a9 Fixes: 73651609 Test: make RunSettingsRoboTests --- .../conditional/WorkModeCondition.java | 2 +- .../conditional/WorkModeConditionTest.java | 68 +++++++++++++++++++ 2 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 tests/robotests/src/com/android/settings/dashboard/conditional/WorkModeConditionTest.java diff --git a/src/com/android/settings/dashboard/conditional/WorkModeCondition.java b/src/com/android/settings/dashboard/conditional/WorkModeCondition.java index 5c47be64d67..cb1b60a94f8 100644 --- a/src/com/android/settings/dashboard/conditional/WorkModeCondition.java +++ b/src/com/android/settings/dashboard/conditional/WorkModeCondition.java @@ -85,7 +85,7 @@ public class WorkModeCondition extends Condition { @Override public void onPrimaryClick() { mManager.getContext().startActivity(new Intent(mManager.getContext(), - Settings.UserSettingsActivity.class) + Settings.AccountDashboardActivity.class) .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); } diff --git a/tests/robotests/src/com/android/settings/dashboard/conditional/WorkModeConditionTest.java b/tests/robotests/src/com/android/settings/dashboard/conditional/WorkModeConditionTest.java new file mode 100644 index 00000000000..dff770060da --- /dev/null +++ b/tests/robotests/src/com/android/settings/dashboard/conditional/WorkModeConditionTest.java @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2018 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.dashboard.conditional; + +import static org.mockito.ArgumentMatchers.argThat; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import android.content.ComponentName; +import android.content.Context; + +import com.android.settings.Settings; +import com.android.settings.TestConfig; +import com.android.settings.testutils.FakeFeatureFactory; +import com.android.settings.testutils.SettingsRobolectricTestRunner; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.robolectric.RuntimeEnvironment; +import org.robolectric.annotation.Config; + +@RunWith(SettingsRobolectricTestRunner.class) +@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) +public class WorkModeConditionTest { + + @Mock + private ConditionManager mConditionManager; + + private Context mContext; + private WorkModeCondition mCondition; + + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + mContext = spy(RuntimeEnvironment.application); + FakeFeatureFactory.setupForTest(); + when(mConditionManager.getContext()).thenReturn(mContext); + mCondition = new WorkModeCondition(mConditionManager); + } + + @Test + public void onPrimaryClick_shouldLaunchAccountsSetting() { + final ComponentName componentName = + new ComponentName(mContext, Settings.AccountDashboardActivity.class); + + mCondition.onPrimaryClick(); + + verify(mContext).startActivity( + argThat(intent-> intent.getComponent().equals(componentName))); + } +}