Index: chrome/test/data/extensions/api_test/networking/test.js |
diff --git a/chrome/test/data/extensions/api_test/networking/test.js b/chrome/test/data/extensions/api_test/networking/test.js |
index 5503ced293932998012d9546437436cd5d410326..8a0433a35a4d4d5e30f32d5878e67bfbddf06d97 100644 |
--- a/chrome/test/data/extensions/api_test/networking/test.js |
+++ b/chrome/test/data/extensions/api_test/networking/test.js |
@@ -7,92 +7,184 @@ var callbackFail = chrome.test.callbackFail; |
var assertTrue = chrome.test.assertTrue; |
var assertEq = chrome.test.assertEq; |
-chrome.test.runTests([ |
- function getVisibleNetworks() { |
- chrome.networkingPrivate.getVisibleNetworks( |
- "All", |
- callbackPass(function(result) { |
- assertTrue(!!result); |
- assertEq(4, result.length); |
- assertEq([{ "Name": "eth0", |
- "GUID": "stub_ethernet", |
- "ConnectionState": "Connected", |
- "Type": "Ethernet" |
- }, |
- { "Name": "wifi1", |
- "GUID": "stub_wifi1", |
- "ConnectionState": "Connected", |
- "Type": "WiFi", |
- "WiFi": { |
- "SSID": "stub_wifi1", |
- "Type": "WiFi" |
- } |
- }, |
- { "Name": "wifi2_PSK", |
- "GUID": "stub_wifi2", |
- "ConnectionState": "NotConnected", |
- "Type": "WiFi", |
- "WiFi": { |
- "SSID": "stub_wifi2", |
- "Type": "WiFi" |
- } |
- }, |
- { "Name": "cellular1", |
- "GUID": "stub_cellular1", |
- "ConnectionState": "NotConnected", |
- "Type": "Cellular" |
- }], result); |
- })); |
+var privateHelpers = { |
+ connectListener: function(network, done) { |
+ var self = this; |
+ var collectProperties = function(transition, properties) { |
+ var finishTest = function() { |
+ chrome.networkingPrivate.onNetworksChanged.removeListener( |
+ self.watchForConnect); |
+ done(); |
+ }; |
+ var startDisconnect = function() { |
+ chrome.networkingPrivate.startDisconnect( |
+ network, |
+ callbackPass(function() {})); |
+ }; |
+ var startConnect = function() { |
+ chrome.networkingPrivate.startConnect( |
+ network, |
+ callbackPass(function() {})); |
+ }; |
+ if (properties.ConnectionState == "NotConnected") { |
+ if (transition == "connect") |
+ finishTest(); |
+ else |
+ startConnect(); |
+ } |
+ if (properties.ConnectionState == "Connected") { |
+ if (transition == "connect") |
+ startDisconnect(); |
+ else |
+ finishTest(); |
+ } |
+ }; |
+ this.watchForConnect = function(changes) { |
+ assertEq([network], changes); |
+ chrome.networkingPrivate.getProperties( |
+ network, collectProperties.bind(undefined, "connect")); |
+ }; |
+ this.watchForDisconnect = function(changes) { |
+ assertEq([network], changes); |
+ chrome.networkingPrivate.getProperties( |
+ network, collectProperties.bind(undefined, "disconnect")); |
+ }; |
}, |
- function getVisibleNetworksWifi() { |
- chrome.networkingPrivate.getVisibleNetworks( |
- "WiFi", |
- callbackPass(function(result) { |
- assertTrue(!!result); |
- assertEq(2, result.length); |
- assertEq([{ "Name": "wifi1", |
- "GUID": "stub_wifi1", |
- "ConnectionState": "Connected", |
- "Type": "WiFi", |
- "WiFi": { |
- "SSID": "stub_wifi1", |
- "Type":"WiFi" |
- } |
- }, |
- { "Name": "wifi2_PSK", |
- "GUID": "stub_wifi2", |
- "ConnectionState": "NotConnected", |
- "Type": "WiFi", |
- "WiFi": { |
- "SSID": "stub_wifi2", |
- "Type": "WiFi" |
- } |
- }], result); |
- })); |
- }, |
- function getProperties() { |
- chrome.networkingPrivate.getProperties( |
- "stub_wifi2", |
- callbackPass(function(result) { |
- assertTrue(!!result); |
- assertEq("wifi2_PSK", result.Name); |
- assertEq("NotConnected", result.ConnectionState); |
- assertEq("WiFi", result.Type); |
- })); |
- }, |
- function startConnect() { |
- chrome.networkingPrivate.startConnect("stub_wifi2", |
- callbackPass(function() {})); |
- }, |
- function startDisconnect() { |
- chrome.networkingPrivate.startDisconnect("stub_wifi2", |
- callbackPass(function() {})); |
- }, |
- function startConnectNonexistent() { |
- // Make sure we get an error when we try to connect to a nonexistent |
- // network. |
- chrome.networkingPrivate.startConnect( |
- "nonexistent_path", |
- callbackFail("Error.InvalidService", function() {})); |
+ listListener: function(network, expected, done) { |
+ var self = this; |
+ this.listenForChanges = function(list) { |
+ assertEq(expected, list); |
+ chrome.networkingPrivate.onNetworkListChanged.removeListener( |
+ self.listenForChanges); |
+ done(); |
+ }; |
} |
-]); |
+}; |
+ |
+///////////////////////////////////////////////////// |
+// Tests |
+ |
+function startConnect() { |
+ chrome.networkingPrivate.startConnect("stub_wifi2", |
+ callbackPass(function() {})); |
+} |
+ |
+function startDisconnect() { |
+ chrome.networkingPrivate.startDisconnect("stub_wifi2", |
+ callbackPass(function() {})); |
+} |
+ |
+function startConnectNonexistent() { |
+ // Make sure we get an error when we try to connect to a nonexistent |
+ // network. |
+ chrome.networkingPrivate.startConnect( |
+ "nonexistent_path", |
+ callbackFail("Error.InvalidService", function() {})); |
+} |
+ |
+function getVisibleNetworks() { |
+ chrome.networkingPrivate.getVisibleNetworks( |
+ "All", |
+ callbackPass(function(result) { |
+ assertTrue(!!result); |
+ assertEq(4, result.length); |
+ assertEq([{ |
+ "ConnectionState": "Connected", |
+ "GUID": "stub_ethernet", |
+ "Name": "eth0", |
+ "Type": "Ethernet" |
+ }, |
+ { |
+ "ConnectionState": "Connected", |
+ "GUID": "stub_wifi1", |
+ "Name": "wifi1", |
+ "Type": "WiFi", |
+ "WiFi": { |
+ "SSID": "stub_wifi1", |
+ "Type": "WiFi" |
+ } |
+ }, |
+ { |
+ "ConnectionState": "NotConnected", |
+ "GUID": "stub_wifi2", |
+ "Name": "wifi2_PSK", |
+ "Type": "WiFi", |
+ "WiFi": { |
+ "SSID": "stub_wifi2", |
+ "Type": "WiFi" |
+ } |
+ }, |
+ { |
+ "ConnectionState": "NotConnected", |
+ "GUID": "stub_cellular1", |
+ "Name": "cellular1", |
+ "Type": "Cellular" |
+ } |
+ ], result); |
+ })); |
+} |
+ |
+function getVisibleNetworksWifi() { |
+ chrome.networkingPrivate.getVisibleNetworks( |
+ "WiFi", |
+ callbackPass(function(result) { |
+ assertTrue(!!result); |
+ assertEq(2, result.length); |
+ assertEq([{ |
+ "ConnectionState": "Connected", |
+ "GUID": "stub_wifi1", |
+ "Name": "wifi1", |
+ "Type": "WiFi", |
+ "WiFi": { |
+ "SSID": "stub_wifi1", |
+ "Type": "WiFi" |
+ } |
+ }, |
+ { |
+ "ConnectionState": "NotConnected", |
+ "GUID": "stub_wifi2", |
+ "Name": "wifi2_PSK", |
+ "Type": "WiFi", |
+ "WiFi": { |
+ "SSID": "stub_wifi2", |
+ "Type": "WiFi" |
+ } |
+ } |
+ ], result); |
+ })); |
+} |
+ |
+function getProperties() { |
+ chrome.networkingPrivate.getProperties( |
+ "stub_wifi2", |
+ callbackPass(function(result) { |
+ assertTrue(!!result); |
+ assertEq("wifi2_PSK", result.Name); |
+ assertEq("NotConnected", result.ConnectionState); |
+ assertEq("WiFi", result.Type); |
+ })); |
+} |
+ |
+function onNetworksChangedEvent() { |
+ var network = "stub_wifi2"; |
+ var done = chrome.test.callbackAdded(); |
+ var listener = new privateHelpers.connectListener(network, done); |
+ chrome.networkingPrivate.onNetworksChanged.addListener( |
+ listener.watchForConnect); |
+ chrome.networkingPrivate.startConnect(network, |
+ callbackPass(function() {})); |
+} |
+ |
+function onNetworkListChangedEvent() { |
+ var network = "stub_wifi2"; |
+ var expected = ["stub_wifi2","stub_ethernet", "stub_wifi1", "stub_cellular1"]; |
+ var done = chrome.test.callbackAdded(); |
+ var listener = new privateHelpers.listListener(network, expected, done); |
+ chrome.networkingPrivate.onNetworkListChanged.addListener( |
+ listener.listenForChanges); |
+ chrome.networkingPrivate.startConnect(network, |
+ callbackPass(function() {})); |
+} |
+ |
+var testToRun = window.location.search.substring(1); |
+chrome.test.runTests([window[testToRun]]); |