| 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; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 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 OncTypeTether: 'OncTypeTether', |
| 31 OncTypeVPN: 'OncTypeVPN', | 32 OncTypeVPN: 'OncTypeVPN', |
| 32 OncTypeWiFi: 'OncTypeWiFi', | 33 OncTypeWiFi: 'OncTypeWiFi', |
| 33 OncTypeWiMAX: 'OncTypeWiMAX', | 34 OncTypeWiMAX: 'OncTypeWiMAX', |
| 34 networkListItemConnected: 'networkListItemConnected', | 35 networkListItemConnected: 'networkListItemConnected', |
| 35 networkListItemConnecting: 'networkListItemConnecting', | 36 networkListItemConnecting: 'networkListItemConnecting', |
| 36 networkListItemConnectingTo: 'networkListItemConnectingTo', | 37 networkListItemConnectingTo: 'networkListItemConnectingTo', |
| 37 networkListItemNotConnected: 'networkListItemNotConnected', | 38 networkListItemNotConnected: 'networkListItemNotConnected', |
| 38 vpnNameTemplate: 'vpnNameTemplate', | 39 vpnNameTemplate: 'vpnNameTemplate', |
| 39 }; | 40 }; |
| 40 | 41 |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 api_.disableNetworkType('WiFi'); | 90 api_.disableNetworkType('WiFi'); |
| 90 Polymer.dom.flush(); | 91 Polymer.dom.flush(); |
| 91 var wifi = networkSummary_.$$('#WiFi'); | 92 var wifi = networkSummary_.$$('#WiFi'); |
| 92 assertTrue(!!wifi); | 93 assertTrue(!!wifi); |
| 93 | 94 |
| 94 // Ensure that the initial state is disabled and the toggle is | 95 // Ensure that the initial state is disabled and the toggle is |
| 95 // enabled but unchecked. | 96 // enabled but unchecked. |
| 96 assertEquals('Disabled', api_.getDeviceStateForTest('WiFi').State); | 97 assertEquals('Disabled', api_.getDeviceStateForTest('WiFi').State); |
| 97 var toggle = wifi.$$('#deviceEnabledButton'); | 98 var toggle = wifi.$$('#deviceEnabledButton'); |
| 98 assertTrue(!!toggle); | 99 assertTrue(!!toggle); |
| 99 assertTrue(toggle.enabled); | 100 assertFalse(toggle.disabled); |
| 100 assertFalse(toggle.checked); | 101 assertFalse(toggle.checked); |
| 101 | 102 |
| 102 // Tap the enable toggle button and ensure the state becomes enabled. | 103 // Tap the enable toggle button and ensure the state becomes enabled. |
| 103 MockInteractions.tap(toggle); | 104 MockInteractions.tap(toggle); |
| 104 Polymer.dom.flush(); | 105 Polymer.dom.flush(); |
| 105 assertTrue(toggle.checked); | 106 assertTrue(toggle.checked); |
| 106 assertEquals('Enabled', api_.getDeviceStateForTest('WiFi').State); | 107 assertEquals('Enabled', api_.getDeviceStateForTest('WiFi').State); |
| 107 }); | 108 }); |
| 108 }); | 109 }); |
| 109 | 110 |
| 111 function callAsync(resolve) { |
| 112 Polymer.Base.async(resolve); |
| 113 }; |
| 114 |
| 110 suite('SubPage', function() { | 115 suite('SubPage', function() { |
| 111 test('WiFi', function() { | 116 test('WiFi', function() { |
| 112 api_.addNetworksForTest([ | 117 api_.addNetworksForTest([ |
| 113 {GUID: 'wifi1_guid', Name: 'wifi1', Type: 'WiFi'}, | 118 {GUID: 'wifi1_guid', Name: 'wifi1', Type: 'WiFi'}, |
| 114 {GUID: 'wifi12_guid', Name: 'wifi2', Type: 'WiFi'}, | 119 {GUID: 'wifi12_guid', Name: 'wifi2', Type: 'WiFi'}, |
| 115 ]); | 120 ]); |
| 116 api_.enableNetworkType('WiFi'); | 121 api_.enableNetworkType('WiFi'); |
| 117 Polymer.dom.flush(); | 122 Polymer.dom.flush(); |
| 118 var wifi = networkSummary_.$$('#WiFi'); | 123 var wifi = networkSummary_.$$('#WiFi'); |
| 119 assertTrue(!!wifi); | 124 assertTrue(!!wifi); |
| 120 MockInteractions.tap(wifi.$$('button.subpage-arrow')); | 125 MockInteractions.tap(wifi.$$('button.subpage-arrow')); |
| 121 Polymer.dom.flush(); | 126 Polymer.dom.flush(); |
| 122 var subpage = internetPage.$$('settings-internet-subpage'); | 127 // Allow dom-if templates to resolve. |
| 123 assertTrue(!!subpage); | 128 return new Promise(callAsync).then(function() { |
| 124 assertEquals(2, subpage.networkStateList_.length); | 129 var subpage = internetPage.$$('settings-internet-subpage'); |
| 125 var networkList = subpage.$$('#networkList'); | 130 assertTrue(!!subpage); |
| 126 assertTrue(!!networkList); | 131 assertEquals(2, subpage.networkStateList_.length); |
| 127 assertEquals(2, networkList.networks.length); | 132 var toggle = wifi.$$('#deviceEnabledButton'); |
| 133 assertTrue(!!toggle); |
| 134 assertFalse(toggle.disabled); |
| 135 var networkList = subpage.$$('#networkList'); |
| 136 assertTrue(!!networkList); |
| 137 assertEquals(2, networkList.networks.length); |
| 138 }); |
| 139 }); |
| 140 |
| 141 test('Cellular', function() { |
| 142 api_.addNetworksForTest([ |
| 143 {GUID: 'cellular1_guid', Name: 'cellular1', Type: 'Cellular'}, |
| 144 ]); |
| 145 api_.enableNetworkType('Cellular'); |
| 146 Polymer.dom.flush(); |
| 147 // Allow dom-if templates to resolve. |
| 148 return new Promise(callAsync).then(function() { |
| 149 var mobile = networkSummary_.$$('#Cellular'); |
| 150 assertTrue(!!mobile); |
| 151 MockInteractions.tap(mobile.$$('button.subpage-arrow')); |
| 152 Polymer.dom.flush(); |
| 153 return new Promise(callAsync); |
| 154 }).then(function() { |
| 155 var detailPage = internetPage.$$('settings-internet-detail-page'); |
| 156 assertTrue(!!detailPage); |
| 157 }); |
| 158 }); |
| 159 |
| 160 test('Tether', function() { |
| 161 api_.addNetworksForTest([ |
| 162 {GUID: 'tether1_guid', Name: 'tether1', Type: 'Tether'}, |
| 163 {GUID: 'tether2_guid', Name: 'tether2', Type: 'Tether'}, |
| 164 ]); |
| 165 api_.enableNetworkType('Tether'); |
| 166 Polymer.dom.flush(); |
| 167 // Allow dom-if templates to resolve. |
| 168 return new Promise(callAsync).then(function() { |
| 169 var mobile = networkSummary_.$$('#Tether'); |
| 170 assertTrue(!!mobile); |
| 171 MockInteractions.tap(mobile.$$('button.subpage-arrow')); |
| 172 Polymer.dom.flush(); |
| 173 var subpage = internetPage.$$('settings-internet-subpage'); |
| 174 assertTrue(!!subpage); |
| 175 assertEquals(2, subpage.networkStateList_.length); |
| 176 var toggle = mobile.$$('#deviceEnabledButton'); |
| 177 assertTrue(!!toggle); |
| 178 assertFalse(toggle.disabled); |
| 179 var networkList = subpage.$$('#networkList'); |
| 180 assertTrue(!!networkList); |
| 181 assertEquals(2, networkList.networks.length); |
| 182 var tetherToggle = mobile.$$('#tetherEnabledButton'); |
| 183 // No separate tether toggle when Celular is not available; the |
| 184 // primary toggle enables or disables Tether in that case. |
| 185 assertFalse(!!tetherToggle); |
| 186 }); |
| 187 }); |
| 188 |
| 189 test('Tether plus Cellular', function() { |
| 190 api_.addNetworksForTest([ |
| 191 {GUID: 'cellular1_guid', Name: 'cellular1', Type: 'Cellular'}, |
| 192 {GUID: 'tether1_guid', Name: 'tether1', Type: 'Tether'}, |
| 193 {GUID: 'tether2_guid', Name: 'tether2', Type: 'Tether'}, |
| 194 ]); |
| 195 api_.enableNetworkType('Cellular'); |
| 196 api_.enableNetworkType('Tether'); |
| 197 Polymer.dom.flush(); |
| 198 // Allow dom-if templates to resolve. |
| 199 return new Promise(callAsync).then(function() { |
| 200 var mobile = networkSummary_.$$('#Cellular'); |
| 201 assertTrue(!!mobile); |
| 202 MockInteractions.tap(mobile.$$('button.subpage-arrow')); |
| 203 Polymer.dom.flush(); |
| 204 var subpage = internetPage.$$('settings-internet-subpage'); |
| 205 assertTrue(!!subpage); |
| 206 assertEquals(3, subpage.networkStateList_.length); |
| 207 var toggle = mobile.$$('#deviceEnabledButton'); |
| 208 assertTrue(!!toggle); |
| 209 assertFalse(toggle.disabled); |
| 210 var networkList = subpage.$$('#networkList'); |
| 211 assertTrue(!!networkList); |
| 212 assertEquals(3, networkList.networks.length); |
| 213 var tetherToggle = subpage.$$('#tetherEnabledButton'); |
| 214 assertTrue(!!tetherToggle); |
| 215 assertFalse(tetherToggle.disabled); |
| 216 }); |
| 128 }); | 217 }); |
| 129 | 218 |
| 130 test('VPN', function() { | 219 test('VPN', function() { |
| 131 api_.addNetworksForTest([ | 220 api_.addNetworksForTest([ |
| 132 {GUID: 'vpn1_guid', Name: 'vpn1', Type: 'VPN'}, | 221 {GUID: 'vpn1_guid', Name: 'vpn1', Type: 'VPN'}, |
| 133 {GUID: 'vpn2_guid', Name: 'vpn1', Type: 'VPN'}, | 222 {GUID: 'vpn2_guid', Name: 'vpn1', Type: 'VPN'}, |
| 134 { | 223 { |
| 135 GUID: 'third_party1_vpn1_guid', | 224 GUID: 'third_party1_vpn1_guid', |
| 136 Name: 'vpn3', | 225 Name: 'vpn3', |
| 137 Type: 'VPN', | 226 Type: 'VPN', |
| (...skipping 16 matching lines...) Expand all Loading... |
| 154 Name: 'vpn5', | 243 Name: 'vpn5', |
| 155 Type: 'VPN', | 244 Type: 'VPN', |
| 156 VPN: { | 245 VPN: { |
| 157 Type: 'ThirdPartyVPN', | 246 Type: 'ThirdPartyVPN', |
| 158 ThirdPartyVPN: {ExtensionID: 'id2', ProviderName: 'pname2'} | 247 ThirdPartyVPN: {ExtensionID: 'id2', ProviderName: 'pname2'} |
| 159 } | 248 } |
| 160 }, | 249 }, |
| 161 ]); | 250 ]); |
| 162 api_.onNetworkListChanged.callListeners(); | 251 api_.onNetworkListChanged.callListeners(); |
| 163 Polymer.dom.flush(); | 252 Polymer.dom.flush(); |
| 164 var vpn = networkSummary_.$$('#VPN'); | 253 // Allow dom-if templates to resolve. |
| 165 assertTrue(!!vpn); | 254 Polymer.Base.async(function() { |
| 166 MockInteractions.tap(vpn.$$('button.subpage-arrow')); | 255 var vpn = networkSummary_.$$('#VPN'); |
| 167 Polymer.dom.flush(); | 256 assertTrue(!!vpn); |
| 168 var subpage = internetPage.$$('settings-internet-subpage'); | 257 MockInteractions.tap(vpn.$$('button.subpage-arrow')); |
| 169 assertTrue(!!subpage); | 258 Polymer.dom.flush(); |
| 170 assertEquals(2, subpage.networkStateList_.length); | 259 var subpage = internetPage.$$('settings-internet-subpage'); |
| 171 var networkList = subpage.$$('#networkList'); | 260 assertTrue(!!subpage); |
| 172 assertTrue(!!networkList); | 261 assertEquals(2, subpage.networkStateList_.length); |
| 173 assertEquals(2, networkList.networks.length); | 262 var networkList = subpage.$$('#networkList'); |
| 174 // TODO(stevenjb): Implement fake management API and test third | 263 assertTrue(!!networkList); |
| 175 // party provider sections. | 264 assertEquals(2, networkList.networks.length); |
| 265 // TODO(stevenjb): Implement fake management API and test third |
| 266 // party provider sections. |
| 267 }); |
| 176 }); | 268 }); |
| 177 }); | 269 }); |
| 178 }); | 270 }); |
| OLD | NEW |