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(); |
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 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 |