blob: eefdeee1001eb2ccf863c5baacb9ec60e63e0674 [file] [log] [blame]
Lorenzo Colittid46bb582015-04-27 20:32:01 +09001package com.android.systemui.statusbar.policy;
2
3import android.net.NetworkCapabilities;
Geoffrey Pitsch2c403db2016-08-26 09:09:39 -04004import android.support.test.runner.AndroidJUnit4;
Jason Monke427cb82015-07-28 09:18:08 -04005import android.test.suitebuilder.annotation.SmallTest;
Jason Monk2515f472017-09-19 09:52:43 -04006import android.testing.AndroidTestingRunner;
7import android.testing.TestableLooper.RunWithLooper;
Lorenzo Colittid46bb582015-04-27 20:32:01 +09008
Jason Monk33f8ae72015-05-08 10:45:15 -04009import com.android.systemui.statusbar.policy.NetworkController.IconState;
Jason Monk07b75fe2015-05-14 16:47:03 -040010
Geoffrey Pitsch2c403db2016-08-26 09:09:39 -040011import org.junit.Test;
12import org.junit.runner.RunWith;
Lorenzo Colittid46bb582015-04-27 20:32:01 +090013import org.mockito.ArgumentCaptor;
14import org.mockito.Mockito;
15
Geoffrey Pitsch2c403db2016-08-26 09:09:39 -040016import static junit.framework.Assert.assertEquals;
17
Jason Monke427cb82015-07-28 09:18:08 -040018@SmallTest
Jason Monk2515f472017-09-19 09:52:43 -040019@RunWith(AndroidTestingRunner.class)
20@RunWithLooper
Lorenzo Colittid46bb582015-04-27 20:32:01 +090021public class NetworkControllerEthernetTest extends NetworkControllerBaseTest {
22
Geoffrey Pitsch2c403db2016-08-26 09:09:39 -040023 @Test
Lorenzo Colittid46bb582015-04-27 20:32:01 +090024 public void testEthernetIcons() {
25 verifyLastEthernetIcon(false, 0);
26
27 setEthernetState(true, false); // Connected, unvalidated.
28 verifyLastEthernetIcon(true, EthernetIcons.ETHERNET_ICONS[0][0]);
29
30 setEthernetState(true, true); // Connected, validated.
31 verifyLastEthernetIcon(true, EthernetIcons.ETHERNET_ICONS[1][0]);
32
33 setEthernetState(true, false); // Connected, unvalidated.
34 verifyLastEthernetIcon(true, EthernetIcons.ETHERNET_ICONS[0][0]);
35
36 setEthernetState(false, false); // Disconnected.
37 verifyLastEthernetIcon(false, 0);
38 }
39
40 protected void setEthernetState(boolean connected, boolean validated) {
Anarghya Mitra678722f2018-05-11 14:29:54 -070041 setConnectivityViaBroadcast(NetworkCapabilities.TRANSPORT_ETHERNET, validated, connected);
Lorenzo Colittid46bb582015-04-27 20:32:01 +090042 }
43
44 protected void verifyLastEthernetIcon(boolean visible, int icon) {
Jason Monk07b75fe2015-05-14 16:47:03 -040045 ArgumentCaptor<IconState> iconArg = ArgumentCaptor.forClass(IconState.class);
Lorenzo Colittid46bb582015-04-27 20:32:01 +090046
Jason Monk07b75fe2015-05-14 16:47:03 -040047 Mockito.verify(mCallbackHandler, Mockito.atLeastOnce()).setEthernetIndicators(
48 iconArg.capture());
49 IconState iconState = iconArg.getValue();
50 assertEquals("Ethernet visible, in status bar", visible, iconState.visible);
51 assertEquals("Ethernet icon, in status bar", icon, iconState.icon);
Lorenzo Colittid46bb582015-04-27 20:32:01 +090052 }
53}