| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 suite('Internet', function() { | 5 suite('Internet', function() { |
| 6 /** @type {InternetPageElement} */ | 6 /** @type {InternetPageElement} */ |
| 7 var internetPage = null; | 7 var internetPage = null; |
| 8 | 8 |
| 9 /** @type {NetworkSummaryElement} */ | 9 /** @type {NetworkSummaryElement} */ |
| 10 var networkSummary_ = null; | 10 var networkSummary_ = null; |
| 11 | 11 |
| 12 /** @type {NetworkingPrivate} */ | 12 /** @type {NetworkingPrivate} */ |
| 13 var networkingPrivateApi_; | 13 var api_; |
| 14 | 14 |
| 15 suiteSetup(function() { | 15 suiteSetup(function() { |
| 16 loadTimeData.overrideValues({ | 16 loadTimeData.overrideValues({ |
| 17 internetAddConnection: 'internetAddConnection', | 17 internetAddConnection: 'internetAddConnection', |
| 18 internetAddConnectionExpandA11yLabel: | 18 internetAddConnectionExpandA11yLabel: |
| 19 'internetAddConnectionExpandA11yLabel', | 19 'internetAddConnectionExpandA11yLabel', |
| 20 internetAddConnectionNotAllowed: 'internetAddConnectionNotAllowed', | 20 internetAddConnectionNotAllowed: 'internetAddConnectionNotAllowed', |
| 21 internetAddThirdPartyVPN: 'internetAddThirdPartyVPN', | 21 internetAddThirdPartyVPN: 'internetAddThirdPartyVPN', |
| 22 internetAddVPN: 'internetAddVPN', | 22 internetAddVPN: 'internetAddVPN', |
| 23 internetAddWiFi: 'internetAddWiFi', | 23 internetAddWiFi: 'internetAddWiFi', |
| 24 internetDetailPageTitle: 'internetDetailPageTitle', | 24 internetDetailPageTitle: 'internetDetailPageTitle', |
| 25 internetKnownNetworksPageTitle: 'internetKnownNetworksPageTitle', | 25 internetKnownNetworksPageTitle: 'internetKnownNetworksPageTitle', |
| 26 }); | 26 }); |
| 27 | 27 |
| 28 CrOncStrings = { | 28 CrOncStrings = { |
| 29 OncTypeCellular: 'OncTypeCellular', | 29 OncTypeCellular: 'OncTypeCellular', |
| 30 OncTypeEthernet: 'OncTypeEthernet', | 30 OncTypeEthernet: 'OncTypeEthernet', |
| 31 OncTypeVPN: 'OncTypeVPN', | 31 OncTypeVPN: 'OncTypeVPN', |
| 32 OncTypeWiFi: 'OncTypeWiFi', | 32 OncTypeWiFi: 'OncTypeWiFi', |
| 33 OncTypeWiMAX: 'OncTypeWiMAX', | 33 OncTypeWiMAX: 'OncTypeWiMAX', |
| 34 networkDisabled: 'networkDisabled', | 34 networkDisabled: 'networkDisabled', |
| 35 networkListItemConnected: 'networkListItemConnected', | 35 networkListItemConnected: 'networkListItemConnected', |
| 36 networkListItemConnecting: 'networkListItemConnecting', | 36 networkListItemConnecting: 'networkListItemConnecting', |
| 37 networkListItemConnectingTo: 'networkListItemConnectingTo', | 37 networkListItemConnectingTo: 'networkListItemConnectingTo', |
| 38 networkListItemNotConnected: 'networkListItemNotConnected', | 38 networkListItemNotConnected: 'networkListItemNotConnected', |
| 39 vpnNameTemplate: 'vpnNameTemplate', | 39 vpnNameTemplate: 'vpnNameTemplate', |
| 40 }; | 40 }; |
| 41 | 41 |
| 42 networkingPrivateApi_ = new settings.FakeNetworkingPrivate(); | 42 api_ = new settings.FakeNetworkingPrivate(); |
| 43 | 43 |
| 44 // Disable animations so sub-pages open within one event loop. | 44 // Disable animations so sub-pages open within one event loop. |
| 45 testing.Test.disableAnimationsAndTransitions(); | 45 testing.Test.disableAnimationsAndTransitions(); |
| 46 }); | 46 }); |
| 47 | 47 |
| 48 setup(function() { |
| 49 PolymerTest.clearBody(); |
| 50 internetPage = document.createElement('settings-internet-page'); |
| 51 assertTrue(!!internetPage); |
| 52 api_.resetForTest(); |
| 53 internetPage.networkingPrivate = api_; |
| 54 document.body.appendChild(internetPage); |
| 55 networkSummary_ = internetPage.$$('network-summary'); |
| 56 assertTrue(!!networkSummary_); |
| 57 Polymer.dom.flush(); |
| 58 }); |
| 59 |
| 60 teardown(function() { |
| 61 internetPage.remove(); |
| 62 }); |
| 63 |
| 48 suite('MainPage', function() { | 64 suite('MainPage', function() { |
| 49 setup(function() { | |
| 50 PolymerTest.clearBody(); | |
| 51 internetPage = document.createElement('settings-internet-page'); | |
| 52 assertTrue(!!internetPage); | |
| 53 networkingPrivateApi_.resetForTest(); | |
| 54 internetPage.networkingPrivate = networkingPrivateApi_; | |
| 55 document.body.appendChild(internetPage); | |
| 56 networkSummary_ = internetPage.$$('network-summary'); | |
| 57 assertTrue(!!networkSummary_); | |
| 58 Polymer.dom.flush(); | |
| 59 }); | |
| 60 | |
| 61 teardown(function() { | |
| 62 internetPage.remove(); | |
| 63 }); | |
| 64 | |
| 65 test('Ethernet', function() { | 65 test('Ethernet', function() { |
| 66 // Default fake device state is Ethernet enabled only. | 66 // Default fake device state is Ethernet enabled only. |
| 67 var ethernet = networkSummary_.$$('#Ethernet'); | 67 var ethernet = networkSummary_.$$('#Ethernet'); |
| 68 assertTrue(!!ethernet); | 68 assertTrue(!!ethernet); |
| 69 assertEquals(1, ethernet.networkStateList.length); | 69 assertEquals(1, ethernet.networkStateList.length); |
| 70 assertEquals(null, networkSummary_.$$('#Cellular')); | 70 assertEquals(null, networkSummary_.$$('#Cellular')); |
| 71 assertEquals(null, networkSummary_.$$('#VPN')); | 71 assertEquals(null, networkSummary_.$$('#VPN')); |
| 72 assertEquals(null, networkSummary_.$$('#WiMAX')); | 72 assertEquals(null, networkSummary_.$$('#WiMAX')); |
| 73 assertEquals(null, networkSummary_.$$('#WiFi')); | 73 assertEquals(null, networkSummary_.$$('#WiFi')); |
| 74 }); | 74 }); |
| 75 | 75 |
| 76 test('WiFi', function() { | 76 test('WiFi', function() { |
| 77 networkingPrivateApi_.addNetworksForTest([ | 77 api_.addNetworksForTest([ |
| 78 {GUID: 'wifi1_guid', Name: 'wifi1', Type: 'WiFi'}, | 78 {GUID: 'wifi1_guid', Name: 'wifi1', Type: 'WiFi'}, |
| 79 {GUID: 'wifi12_guid', Name: 'wifi2', Type: 'WiFi'}, | 79 {GUID: 'wifi12_guid', Name: 'wifi2', Type: 'WiFi'}, |
| 80 ]); | 80 ]); |
| 81 networkingPrivateApi_.enableNetworkType('WiFi'); | 81 api_.enableNetworkType('WiFi'); |
| 82 Polymer.dom.flush(); | 82 Polymer.dom.flush(); |
| 83 var wifi = networkSummary_.$$('#WiFi'); | 83 var wifi = networkSummary_.$$('#WiFi'); |
| 84 assertTrue(!!wifi); | 84 assertTrue(!!wifi); |
| 85 assertEquals(2, wifi.networkStateList.length); | 85 assertEquals(2, wifi.networkStateList.length); |
| 86 }); | 86 }); |
| 87 | 87 |
| 88 test('WiFiToggle', function() { | 88 test('WiFiToggle', function() { |
| 89 var api = networkingPrivateApi_; | |
| 90 | |
| 91 // Make WiFi an available but disabled technology. | 89 // Make WiFi an available but disabled technology. |
| 92 api.disableNetworkType('WiFi'); | 90 api_.disableNetworkType('WiFi'); |
| 93 Polymer.dom.flush(); | 91 Polymer.dom.flush(); |
| 94 var wifi = networkSummary_.$$('#WiFi'); | 92 var wifi = networkSummary_.$$('#WiFi'); |
| 95 assertTrue(!!wifi); | 93 assertTrue(!!wifi); |
| 96 | 94 |
| 97 // Ensure that the initial state is disabled and the toggle is | 95 // Ensure that the initial state is disabled and the toggle is |
| 98 // enabled but unchecked. | 96 // enabled but unchecked. |
| 99 assertEquals('Disabled', api.getDeviceStateForTest('WiFi').State); | 97 assertEquals('Disabled', api_.getDeviceStateForTest('WiFi').State); |
| 100 var toggle = wifi.$$('#deviceEnabledButton'); | 98 var toggle = wifi.$$('#deviceEnabledButton'); |
| 101 assertTrue(!!toggle); | 99 assertTrue(!!toggle); |
| 102 assertTrue(toggle.enabled); | 100 assertTrue(toggle.enabled); |
| 103 assertFalse(toggle.checked); | 101 assertFalse(toggle.checked); |
| 104 | 102 |
| 105 // Tap the enable toggle button and ensure the state becomes enabled. | 103 // Tap the enable toggle button and ensure the state becomes enabled. |
| 106 MockInteractions.tap(toggle); | 104 MockInteractions.tap(toggle); |
| 107 Polymer.dom.flush(); | 105 Polymer.dom.flush(); |
| 108 assertTrue(toggle.checked); | 106 assertTrue(toggle.checked); |
| 109 assertEquals('Enabled', api.getDeviceStateForTest('WiFi').State); | 107 assertEquals('Enabled', api_.getDeviceStateForTest('WiFi').State); |
| 108 }); |
| 109 }); |
| 110 |
| 111 suite('SubPage', function() { |
| 112 test('WiFi', function() { |
| 113 api_.addNetworksForTest([ |
| 114 {GUID: 'wifi1_guid', Name: 'wifi1', Type: 'WiFi'}, |
| 115 {GUID: 'wifi12_guid', Name: 'wifi2', Type: 'WiFi'}, |
| 116 ]); |
| 117 api_.enableNetworkType('WiFi'); |
| 118 Polymer.dom.flush(); |
| 119 var wifi = networkSummary_.$$('#WiFi'); |
| 120 assertTrue(!!wifi); |
| 121 MockInteractions.tap(wifi.$$('button.subpage-arrow')); |
| 122 var subpage = internetPage.$$('settings-internet-subpage'); |
| 123 assertTrue(!!subpage); |
| 124 assertEquals(2, subpage.networkStateList_.length); |
| 125 var networkList = subpage.$$('#networkList'); |
| 126 assertTrue(!!networkList); |
| 127 assertEquals(2, networkList.networks.length); |
| 128 }); |
| 129 |
| 130 test('VPN', function() { |
| 131 api_.addNetworksForTest([ |
| 132 {GUID: 'vpn1_guid', Name: 'vpn1', Type: 'VPN'}, |
| 133 {GUID: 'vpn2_guid', Name: 'vpn1', Type: 'VPN'}, |
| 134 { |
| 135 GUID: 'third_party1_vpn1_guid', |
| 136 Name: 'vpn3', |
| 137 Type: 'VPN', |
| 138 VPN: { |
| 139 Type: 'ThirdPartyVPN', |
| 140 ThirdPartyVPN: {ExtensionID: 'id1', ProviderName: 'pname1'} |
| 141 } |
| 142 }, |
| 143 { |
| 144 GUID: 'third_party1_vpn2_guid', |
| 145 Name: 'vpn4', |
| 146 Type: 'VPN', |
| 147 VPN: { |
| 148 Type: 'ThirdPartyVPN', |
| 149 ThirdPartyVPN: {ExtensionID: 'id1', ProviderName: 'pname1'} |
| 150 } |
| 151 }, |
| 152 { |
| 153 GUID: 'third_party2_vpn1_guid', |
| 154 Name: 'vpn5', |
| 155 Type: 'VPN', |
| 156 VPN: { |
| 157 Type: 'ThirdPartyVPN', |
| 158 ThirdPartyVPN: {ExtensionID: 'id2', ProviderName: 'pname2'} |
| 159 } |
| 160 }, |
| 161 ]); |
| 162 api_.onNetworkListChanged.callListeners(); |
| 163 Polymer.dom.flush(); |
| 164 var vpn = networkSummary_.$$('#VPN'); |
| 165 assertTrue(!!vpn); |
| 166 MockInteractions.tap(vpn.$$('button.subpage-arrow')); |
| 167 var subpage = internetPage.$$('settings-internet-subpage'); |
| 168 assertTrue(!!subpage); |
| 169 assertEquals(2, subpage.networkStateList_.length); |
| 170 var networkList = subpage.$$('#networkList'); |
| 171 assertTrue(!!networkList); |
| 172 assertEquals(2, networkList.networks.length); |
| 173 // TODO(stevenjb): Implement fake management API and test third |
| 174 // party provider sections. |
| 110 }); | 175 }); |
| 111 }); | 176 }); |
| 112 }); | 177 }); |
| OLD | NEW |