1package com.android.systemui.statusbar.policy; 2 3import android.net.NetworkCapabilities; 4import android.support.test.runner.AndroidJUnit4; 5import android.test.suitebuilder.annotation.SmallTest; 6 7import com.android.systemui.statusbar.policy.NetworkController.IconState; 8 9import org.junit.Test; 10import org.junit.runner.RunWith; 11import org.mockito.ArgumentCaptor; 12import org.mockito.Mockito; 13 14import static junit.framework.Assert.assertEquals; 15 16@SmallTest 17@RunWith(AndroidJUnit4.class) 18public class NetworkControllerEthernetTest extends NetworkControllerBaseTest { 19 20 @Test 21 public void testEthernetIcons() { 22 verifyLastEthernetIcon(false, 0); 23 24 setEthernetState(true, false); // Connected, unvalidated. 25 verifyLastEthernetIcon(true, EthernetIcons.ETHERNET_ICONS[0][0]); 26 27 setEthernetState(true, true); // Connected, validated. 28 verifyLastEthernetIcon(true, EthernetIcons.ETHERNET_ICONS[1][0]); 29 30 setEthernetState(true, false); // Connected, unvalidated. 31 verifyLastEthernetIcon(true, EthernetIcons.ETHERNET_ICONS[0][0]); 32 33 setEthernetState(false, false); // Disconnected. 34 verifyLastEthernetIcon(false, 0); 35 } 36 37 protected void setEthernetState(boolean connected, boolean validated) { 38 setConnectivity(NetworkCapabilities.TRANSPORT_ETHERNET, validated, connected); 39 } 40 41 protected void verifyLastEthernetIcon(boolean visible, int icon) { 42 ArgumentCaptor<IconState> iconArg = ArgumentCaptor.forClass(IconState.class); 43 44 Mockito.verify(mCallbackHandler, Mockito.atLeastOnce()).setEthernetIndicators( 45 iconArg.capture()); 46 IconState iconState = iconArg.getValue(); 47 assertEquals("Ethernet visible, in status bar", visible, iconState.visible); 48 assertEquals("Ethernet icon, in status bar", icon, iconState.icon); 49 } 50} 51