Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(115)

Side by Side Diff: chrome/test/data/extensions/api_test/networking/test.js

Issue 12319145: Using the new Network*Handlers in networkingPrivate Extension API. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Initial patch. Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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();
Greg Spencer (Chromium) 2013/03/02 00:09:11 I like this: more flexible.
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",
110 "Type": "WiFi" 95 "SignalStrength": 0
111 } 96 }
112 }, 97 },
113 { 98 {
114 "ConnectionState": "NotConnected", 99 "ConnectionState": "NotConnected",
115 "GUID": "stub_wifi2", 100 "GUID": "stub_wifi2",
116 "Name": "wifi2_PSK", 101 "Name": "wifi2_PSK",
117 "Type": "WiFi", 102 "Type": "WiFi",
118 "WiFi": { 103 "WiFi": {
119 "SSID": "stub_wifi2", 104 "Security": "WPA-PSK",
120 "Type": "WiFi" 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",
145 "Type": "WiFi" 134 "SignalStrength": 0
146 } 135 }
147 }, 136 },
148 { 137 {
149 "ConnectionState": "NotConnected", 138 "ConnectionState": "NotConnected",
150 "GUID": "stub_wifi2", 139 "GUID": "stub_wifi2",
151 "Name": "wifi2_PSK", 140 "Name": "wifi2_PSK",
152 "Type": "WiFi", 141 "Type": "WiFi",
153 "WiFi": { 142 "WiFi": {
154 "SSID": "stub_wifi2", 143 "Security": "WPA-PSK",
155 "Type": "WiFi" 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 verifyAndSignCredentials() { 203 function verifyAndSignCredentials() {
201 chrome.networkingPrivate.verifyAndSignCredentials( 204 chrome.networkingPrivate.verifyAndSignCredentials(
(...skipping 10 matching lines...) Expand all
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 }));
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698