| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 var callbackPass = chrome.test.callbackPass; | 5 var callbackPass = chrome.test.callbackPass; |
| 6 var callbackFail = chrome.test.callbackFail; | 6 var callbackFail = chrome.test.callbackFail; |
| 7 var assertTrue = chrome.test.assertTrue; | 7 var assertTrue = chrome.test.assertTrue; |
| 8 var assertEq = chrome.test.assertEq; | 8 var assertEq = chrome.test.assertEq; |
| 9 | 9 |
| 10 // Test properties for the verification API. | 10 // Test properties for the verification API. |
| 11 var verificationProperties = { | 11 var verificationProperties = { |
| 12 "certificate": "certificate", | 12 "certificate": "certificate", |
| 13 "publicKey": "public_key", | 13 "publicKey": "public_key", |
| 14 "nonce": "nonce", | 14 "nonce": "nonce", |
| 15 "signedData": "signed_data", | 15 "signedData": "signed_data", |
| 16 "deviceSerial": "device_serial" | 16 "deviceSerial": "device_serial" |
| 17 }; | 17 }; |
| 18 | 18 |
| 19 var privateHelpers = { | 19 var privateHelpers = { |
| 20 connectListener: function(network, done) { | 20 // Watches for the states |expectedStates| in reverse order. If all states |
| 21 // were observed in the right order, succeeds and calls |done|. If any |
| 22 // unexpected state is observed, fails. |
| 23 watchForStateChanges: function(network, expectedStates, done) { |
| 21 var self = this; | 24 var self = this; |
| 22 var collectProperties = function(transition, properties) { | 25 var collectProperties = function(properties) { |
| 23 var finishTest = function() { | 26 var finishTest = function() { |
| 24 chrome.networkingPrivate.onNetworksChanged.removeListener( | 27 chrome.networkingPrivate.onNetworksChanged.removeListener( |
| 25 self.watchForConnect); | 28 self.watchForConnect); |
| 26 done(); | 29 done(); |
| 27 }; | 30 }; |
| 28 var startDisconnect = function() { | 31 var expectedState = expectedStates.pop(); |
| 29 chrome.networkingPrivate.startDisconnect( | 32 assertEq(expectedState, properties.ConnectionState); |
| 30 network, | 33 if (expectedStates.length == 0) |
| 31 callbackPass(function() {})); | 34 finishTest(); |
| 32 }; | |
| 33 var startConnect = function() { | |
| 34 chrome.networkingPrivate.startConnect( | |
| 35 network, | |
| 36 callbackPass(function() {})); | |
| 37 }; | |
| 38 if (properties.ConnectionState == "NotConnected") { | |
| 39 if (transition == "connect") | |
| 40 finishTest(); | |
| 41 else | |
| 42 startConnect(); | |
| 43 } | |
| 44 if (properties.ConnectionState == "Connected") { | |
| 45 if (transition == "connect") | |
| 46 startDisconnect(); | |
| 47 else | |
| 48 finishTest(); | |
| 49 } | |
| 50 }; | 35 }; |
| 51 this.watchForConnect = function(changes) { | 36 this.onNetworkChange = function(changes) { |
| 52 assertEq([network], changes); | 37 assertEq([network], changes); |
| 53 chrome.networkingPrivate.getProperties( | 38 chrome.networkingPrivate.getProperties(network, |
| 54 network, collectProperties.bind(undefined, "connect")); | 39 collectProperties.bind(undefined)); |
| 55 }; | 40 }; |
| 56 this.watchForDisconnect = function(changes) { | 41 chrome.networkingPrivate.onNetworksChanged.addListener( |
| 57 assertEq([network], changes); | 42 this.onNetworkChange); |
| 58 chrome.networkingPrivate.getProperties( | |
| 59 network, collectProperties.bind(undefined, "disconnect")); | |
| 60 }; | |
| 61 }, | 43 }, |
| 62 listListener: function(network, expected, done) { | 44 listListener: function(network, expected, done) { |
| 63 var self = this; | 45 var self = this; |
| 64 this.listenForChanges = function(list) { | 46 this.listenForChanges = function(list) { |
| 65 assertEq(expected, list); | 47 assertEq(expected, list); |
| 66 chrome.networkingPrivate.onNetworkListChanged.removeListener( | 48 chrome.networkingPrivate.onNetworkListChanged.removeListener( |
| 67 self.listenForChanges); | 49 self.listenForChanges); |
| 68 done(); | 50 done(); |
| 69 }; | 51 }; |
| 70 } | 52 } |
| 71 }; | 53 }; |
| 72 | 54 |
| 73 ///////////////////////////////////////////////////// | |
| 74 // Tests | |
| 75 var availableTests = [ | 55 var availableTests = [ |
| 76 function startConnect() { | 56 function startConnect() { |
| 77 chrome.networkingPrivate.startConnect("stub_wifi2", | 57 chrome.networkingPrivate.startConnect("stub_wifi2", callbackPass()); |
| 78 callbackPass(function() {})); | |
| 79 }, | 58 }, |
| 80 function startDisconnect() { | 59 function startDisconnect() { |
| 81 chrome.networkingPrivate.startDisconnect("stub_wifi2", | 60 chrome.networkingPrivate.startDisconnect("stub_wifi2", callbackPass()); |
| 82 callbackPass(function() {})); | |
| 83 }, | 61 }, |
| 84 function startConnectNonexistent() { | 62 function startConnectNonexistent() { |
| 85 // Make sure we get an error when we try to connect to a nonexistent | |
| 86 // network. | |
| 87 chrome.networkingPrivate.startConnect( | 63 chrome.networkingPrivate.startConnect( |
| 88 "nonexistent_path", | 64 "nonexistent_path", |
| 89 callbackFail("Error.InvalidService", function() {})); | 65 callbackFail("Error.InvalidService")); |
| 66 }, |
| 67 function startDisconnectNonexistent() { |
| 68 chrome.networkingPrivate.startDisconnect( |
| 69 "nonexistent_path", |
| 70 callbackFail("Error.InvalidService")); |
| 71 }, |
| 72 function startGetPropertiesNonexistent() { |
| 73 chrome.networkingPrivate.getProperties( |
| 74 "nonexistent_path", |
| 75 callbackFail("Error.DBusFailed")); |
| 90 }, | 76 }, |
| 91 function getVisibleNetworks() { | 77 function getVisibleNetworks() { |
| 92 chrome.networkingPrivate.getVisibleNetworks( | 78 chrome.networkingPrivate.getVisibleNetworks( |
| 93 "All", | 79 "All", |
| 94 callbackPass(function(result) { | 80 callbackPass(function(result) { |
| 95 assertTrue(!!result); | 81 assertTrue(!!result); |
| 96 assertEq(4, result.length); | |
| 97 assertEq([{ | 82 assertEq([{ |
| 98 "ConnectionState": "Connected", | 83 "ConnectionState": "Connected", |
| 99 "GUID": "stub_ethernet", | 84 "GUID": "stub_ethernet", |
| 100 "Name": "eth0", | 85 "Name": "eth0", |
| 101 "Type": "Ethernet" | 86 "Type": "Ethernet" |
| 102 }, | 87 }, |
| 103 { | 88 { |
| 104 "ConnectionState": "Connected", | 89 "ConnectionState": "Connected", |
| 105 "GUID": "stub_wifi1", | 90 "GUID": "stub_wifi1", |
| 106 "Name": "wifi1", | 91 "Name": "wifi1", |
| 107 "Type": "WiFi", | 92 "Type": "WiFi", |
| 108 "WiFi": { | 93 "WiFi": { |
| 109 "SSID": "stub_wifi1", | 94 "Security": "WEP-PSK", |
| 95 "SignalStrength": 0 |
| 110 } | 96 } |
| 111 }, | 97 }, |
| 112 { | 98 { |
| 113 "ConnectionState": "NotConnected", | 99 "ConnectionState": "NotConnected", |
| 114 "GUID": "stub_wifi2", | 100 "GUID": "stub_wifi2", |
| 115 "Name": "wifi2_PSK", | 101 "Name": "wifi2_PSK", |
| 116 "Type": "WiFi", | 102 "Type": "WiFi", |
| 117 "WiFi": { | 103 "WiFi": { |
| 118 "SSID": "stub_wifi2", | |
| 119 "Security": "WPA-PSK", | 104 "Security": "WPA-PSK", |
| 120 "SignalStrength": 80 | 105 "SignalStrength": 80 |
| 121 } | 106 } |
| 122 }, | 107 }, |
| 123 { | 108 { |
| 109 "Cellular": { |
| 110 "ActivationState": "not-activated", |
| 111 "NetworkTechnology": "GSM", |
| 112 "RoamingState": "home" |
| 113 }, |
| 124 "ConnectionState": "NotConnected", | 114 "ConnectionState": "NotConnected", |
| 125 "GUID": "stub_cellular1", | 115 "GUID": "stub_cellular1", |
| 126 "Name": "cellular1", | 116 "Name": "cellular1", |
| 127 "Type": "Cellular" | 117 "Type": "Cellular" |
| 128 } | 118 } |
| 129 ], result); | 119 ], result); |
| 130 })); | 120 })); |
| 131 }, | 121 }, |
| 132 function getVisibleNetworksWifi() { | 122 function getVisibleNetworksWifi() { |
| 133 chrome.networkingPrivate.getVisibleNetworks( | 123 chrome.networkingPrivate.getVisibleNetworks( |
| 134 "WiFi", | 124 "WiFi", |
| 135 callbackPass(function(result) { | 125 callbackPass(function(result) { |
| 136 assertTrue(!!result); | 126 assertTrue(!!result); |
| 137 assertEq(2, result.length); | |
| 138 assertEq([{ | 127 assertEq([{ |
| 139 "ConnectionState": "Connected", | 128 "ConnectionState": "Connected", |
| 140 "GUID": "stub_wifi1", | 129 "GUID": "stub_wifi1", |
| 141 "Name": "wifi1", | 130 "Name": "wifi1", |
| 142 "Type": "WiFi", | 131 "Type": "WiFi", |
| 143 "WiFi": { | 132 "WiFi": { |
| 144 "SSID": "stub_wifi1" | 133 "Security": "WEP-PSK", |
| 134 "SignalStrength": 0 |
| 145 } | 135 } |
| 146 }, | 136 }, |
| 147 { | 137 { |
| 148 "ConnectionState": "NotConnected", | 138 "ConnectionState": "NotConnected", |
| 149 "GUID": "stub_wifi2", | 139 "GUID": "stub_wifi2", |
| 150 "Name": "wifi2_PSK", | 140 "Name": "wifi2_PSK", |
| 151 "Type": "WiFi", | 141 "Type": "WiFi", |
| 152 "WiFi": { | 142 "WiFi": { |
| 153 "SSID": "stub_wifi2", | |
| 154 "Security": "WPA-PSK", | 143 "Security": "WPA-PSK", |
| 155 "SignalStrength": 80 | 144 "SignalStrength": 80 |
| 156 } | 145 } |
| 157 } | 146 } |
| 158 ], result); | 147 ], result); |
| 159 })); | 148 })); |
| 160 }, | 149 }, |
| 161 function getProperties() { | 150 function getProperties() { |
| 162 chrome.networkingPrivate.getProperties( | 151 chrome.networkingPrivate.getProperties( |
| 163 "stub_wifi2", | 152 "stub_wifi2", |
| 164 callbackPass(function(result) { | 153 callbackPass(function(result) { |
| 165 assertTrue(!!result); | 154 assertTrue(!!result); |
| 166 assertEq("wifi2_PSK", result.Name); | 155 assertEq({ |
| 167 assertEq("NotConnected", result.ConnectionState); | 156 "ConnectionState": "NotConnected", |
| 168 assertEq("WiFi", result.Type); | 157 "GUID": "stub_wifi2", |
| 158 "Name": "wifi2_PSK", |
| 159 "Type": "WiFi", |
| 160 "WiFi": { |
| 161 "SSID": "stub_wifi2", |
| 162 "Security": "WPA-PSK", |
| 163 "SignalStrength": 80 |
| 164 } |
| 165 }, result); |
| 169 })); | 166 })); |
| 170 }, | 167 }, |
| 171 function onNetworksChangedEvent() { | 168 function onNetworksChangedEventConnect() { |
| 172 var network = "stub_wifi2"; | 169 var network = "stub_wifi2"; |
| 173 var done = chrome.test.callbackAdded(); | 170 var done = chrome.test.callbackAdded(); |
| 174 var listener = new privateHelpers.connectListener(network, done); | 171 var expectedStates = ["Connected", "Connecting"]; |
| 175 chrome.networkingPrivate.onNetworksChanged.addListener( | 172 var listener = |
| 176 listener.watchForConnect); | 173 new privateHelpers.watchForStateChanges(network, expectedStates, done); |
| 177 chrome.networkingPrivate.startConnect(network, | 174 chrome.networkingPrivate.startConnect(network, callbackPass()); |
| 178 callbackPass(function() {})); | 175 }, |
| 176 function onNetworksChangedEventDisconnect() { |
| 177 var network = "stub_wifi1"; |
| 178 var done = chrome.test.callbackAdded(); |
| 179 var expectedStates = ["NotConnected"]; |
| 180 var listener = |
| 181 new privateHelpers.watchForStateChanges(network, expectedStates, done); |
| 182 chrome.networkingPrivate.startDisconnect(network, callbackPass()); |
| 179 }, | 183 }, |
| 180 function onNetworkListChangedEvent() { | 184 function onNetworkListChangedEvent() { |
| 181 var network = "stub_wifi2"; | 185 var network = "stub_wifi2"; |
| 182 var expected = ["stub_wifi2", | 186 var expected = ["stub_wifi2", |
| 183 "stub_ethernet", | 187 "stub_ethernet", |
| 184 "stub_wifi1", | 188 "stub_wifi1", |
| 185 "stub_cellular1"]; | 189 "stub_cellular1"]; |
| 186 var done = chrome.test.callbackAdded(); | 190 var done = chrome.test.callbackAdded(); |
| 187 var listener = new privateHelpers.listListener(network, expected, done); | 191 var listener = new privateHelpers.listListener(network, expected, done); |
| 188 chrome.networkingPrivate.onNetworkListChanged.addListener( | 192 chrome.networkingPrivate.onNetworkListChanged.addListener( |
| 189 listener.listenForChanges); | 193 listener.listenForChanges); |
| 190 chrome.networkingPrivate.startConnect(network, | 194 chrome.networkingPrivate.startConnect(network, callbackPass()); |
| 191 callbackPass(function() {})); | |
| 192 }, | 195 }, |
| 193 function verifyDestination() { | 196 function verifyDestination() { |
| 194 chrome.networkingPrivate.verifyDestination( | 197 chrome.networkingPrivate.verifyDestination( |
| 195 verificationProperties, | 198 verificationProperties, |
| 196 callbackPass(function(isValid) { | 199 callbackPass(function(isValid) { |
| 197 assertTrue(isValid); | 200 assertTrue(isValid); |
| 198 })); | 201 })); |
| 199 }, | 202 }, |
| 200 function verifyAndEncryptCredentials() { | 203 function verifyAndEncryptCredentials() { |
| 201 chrome.networkingPrivate.verifyAndEncryptCredentials( | 204 chrome.networkingPrivate.verifyAndEncryptCredentials( |
| (...skipping 10 matching lines...) Expand all Loading... |
| 212 callbackPass(function(result) { | 215 callbackPass(function(result) { |
| 213 assertEq("encrypted_data", result); | 216 assertEq("encrypted_data", result); |
| 214 })); | 217 })); |
| 215 } | 218 } |
| 216 ]; | 219 ]; |
| 217 | 220 |
| 218 var testToRun = window.location.search.substring(1); | 221 var testToRun = window.location.search.substring(1); |
| 219 chrome.test.runTests(availableTests.filter(function(op) { | 222 chrome.test.runTests(availableTests.filter(function(op) { |
| 220 return op.name == testToRun; | 223 return op.name == testToRun; |
| 221 })); | 224 })); |
| OLD | NEW |