summaryrefslogtreecommitdiff
path: root/Settings/tests/robotests/src/com/android/tv/settings/connectivity/setup/AddStartStateTest.java
diff options
context:
space:
mode:
authorZhizhi Liu <zhizhiliu@google.com>2017-09-20 11:54:31 -0700
committerZhizhi Liu <zhizhiliu@google.com>2017-12-22 15:46:14 -0800
commit169b1a06beac7799868b548c63372c4e767d9993 (patch)
treee1335a59a02badcd0bcc4f4d7a3711258c656c82 /Settings/tests/robotests/src/com/android/tv/settings/connectivity/setup/AddStartStateTest.java
parentd7c52ded4c27ebe7f9e3dbc6907249c23ad19b92 (diff)
downloadTvSettings-169b1a06beac7799868b548c63372c4e767d9993.tar.gz
Settings setup UI refactor(basic flow)
Use leanback library to rewrite the code. Remove pano library. b/70679210 Test: tests/robotests/com/android/tv/settings/connectivity/ Change-Id: I8f280a68c4ad98a6cd41df9d775ae4b776913830
Diffstat (limited to 'Settings/tests/robotests/src/com/android/tv/settings/connectivity/setup/AddStartStateTest.java')
-rw-r--r--Settings/tests/robotests/src/com/android/tv/settings/connectivity/setup/AddStartStateTest.java108
1 files changed, 108 insertions, 0 deletions
diff --git a/Settings/tests/robotests/src/com/android/tv/settings/connectivity/setup/AddStartStateTest.java b/Settings/tests/robotests/src/com/android/tv/settings/connectivity/setup/AddStartStateTest.java
new file mode 100644
index 000000000..4d23f0f7e
--- /dev/null
+++ b/Settings/tests/robotests/src/com/android/tv/settings/connectivity/setup/AddStartStateTest.java
@@ -0,0 +1,108 @@
+/*
+ * 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.tv.settings.connectivity.setup;
+
+import static org.mockito.Mockito.verify;
+import static org.robolectric.shadow.api.Shadow.extract;
+
+import android.arch.lifecycle.ViewModelProviders;
+import android.net.wifi.WifiConfiguration;
+
+import com.android.settingslib.wifi.AccessPoint;
+import com.android.tv.settings.TestConfig;
+import com.android.tv.settings.TvSettingsRobolectricTestRunner;
+import com.android.tv.settings.connectivity.util.State;
+import com.android.tv.settings.connectivity.util.StateMachine;
+import com.android.tv.settings.testutils.ShadowStateMachine;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
+import org.robolectric.annotation.Config;
+
+@RunWith(TvSettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH,
+ sdk = TestConfig.SDK_VERSION,
+ shadows = {
+ ShadowStateMachine.class})
+public class AddStartStateTest {
+ private WifiSetupActivity mActivity;
+ private AddStartState mAddStartState;
+ private UserChoiceInfo mUserChoiceInfo;
+ @Mock
+ private State.StateCompleteListener mStateCompleteListener;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mActivity = Robolectric.buildActivity(WifiSetupActivity.class).get();
+ StateMachine stateMachine = ViewModelProviders.of(mActivity).get(StateMachine.class);
+ mUserChoiceInfo = ViewModelProviders.of(mActivity).get(UserChoiceInfo.class);
+ ShadowStateMachine shadowStateMachine = (ShadowStateMachine) extract(stateMachine);
+ shadowStateMachine.setListener(mStateCompleteListener);
+ mAddStartState = new AddStartState(mActivity);
+ }
+
+ @Test
+ public void testForward_WEP_NeedPassword() {
+ mUserChoiceInfo.init();
+ mUserChoiceInfo.setWifiSecurity(AccessPoint.SECURITY_WEP);
+ mUserChoiceInfo.setWifiConfiguration(new WifiConfiguration());
+ mAddStartState.processForward();
+ verify(mStateCompleteListener).onComplete(StateMachine.PASSWORD);
+ }
+
+ @Test
+ public void testForward_WPA_NeedPassword() {
+ mUserChoiceInfo.init();
+ mUserChoiceInfo.setWifiSecurity(AccessPoint.SECURITY_PSK);
+ mUserChoiceInfo.setWifiConfiguration(new WifiConfiguration());
+ mAddStartState.processForward();
+ verify(mStateCompleteListener).onComplete(StateMachine.PASSWORD);
+ }
+
+ @Test
+ public void testForward_EAP_NeedPassword() {
+ mUserChoiceInfo.init();
+ mUserChoiceInfo.setWifiSecurity(AccessPoint.SECURITY_EAP);
+ mUserChoiceInfo.setWifiConfiguration(new WifiConfiguration());
+ mAddStartState.processForward();
+ verify(mStateCompleteListener).onComplete(StateMachine.PASSWORD);
+ }
+
+ @Test
+ public void testForward_AlreadyHasPassword() {
+ mUserChoiceInfo.init();
+ mUserChoiceInfo.setWifiSecurity(AccessPoint.SECURITY_PSK);
+ WifiConfiguration config = new WifiConfiguration();
+ config.preSharedKey = "PasswordTest";
+ mUserChoiceInfo.setWifiConfiguration(config);
+ mAddStartState.processForward();
+ verify(mStateCompleteListener).onComplete(StateMachine.CONNECT);
+ }
+
+ @Test
+ public void testForward_DoNotNeedPassword() {
+ mUserChoiceInfo.init();
+ mUserChoiceInfo.setWifiSecurity(AccessPoint.SECURITY_NONE);
+ mAddStartState.processForward();
+ verify(mStateCompleteListener).onComplete(StateMachine.CONNECT);
+ }
+}