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 { |
| 120 "ConnectionState": "Connected", |
| 121 "GUID": "stub_vpn1", |
| 122 "Name": "vpn1", |
| 123 "Type": "VPN" |
| 124 }], result); |
130 })); | 125 })); |
131 }, | 126 }, |
132 function getVisibleNetworksWifi() { | 127 function getVisibleNetworksWifi() { |
133 chrome.networkingPrivate.getVisibleNetworks( | 128 chrome.networkingPrivate.getVisibleNetworks( |
134 "WiFi", | 129 "WiFi", |
135 callbackPass(function(result) { | 130 callbackPass(function(result) { |
136 assertTrue(!!result); | 131 assertTrue(!!result); |
137 assertEq(2, result.length); | |
138 assertEq([{ | 132 assertEq([{ |
139 "ConnectionState": "Connected", | 133 "ConnectionState": "Connected", |
140 "GUID": "stub_wifi1", | 134 "GUID": "stub_wifi1", |
141 "Name": "wifi1", | 135 "Name": "wifi1", |
142 "Type": "WiFi", | 136 "Type": "WiFi", |
143 "WiFi": { | 137 "WiFi": { |
144 "SSID": "stub_wifi1" | 138 "Security": "WEP-PSK", |
| 139 "SignalStrength": 0 |
145 } | 140 } |
146 }, | 141 }, |
147 { | 142 { |
148 "ConnectionState": "NotConnected", | 143 "ConnectionState": "NotConnected", |
149 "GUID": "stub_wifi2", | 144 "GUID": "stub_wifi2", |
150 "Name": "wifi2_PSK", | 145 "Name": "wifi2_PSK", |
151 "Type": "WiFi", | 146 "Type": "WiFi", |
152 "WiFi": { | 147 "WiFi": { |
153 "SSID": "stub_wifi2", | |
154 "Security": "WPA-PSK", | 148 "Security": "WPA-PSK", |
155 "SignalStrength": 80 | 149 "SignalStrength": 80 |
156 } | 150 } |
157 } | 151 } |
158 ], result); | 152 ], result); |
159 })); | 153 })); |
160 }, | 154 }, |
161 function getProperties() { | 155 function getProperties() { |
162 chrome.networkingPrivate.getProperties( | 156 chrome.networkingPrivate.getProperties( |
163 "stub_wifi2", | 157 "stub_wifi2", |
164 callbackPass(function(result) { | 158 callbackPass(function(result) { |
165 assertTrue(!!result); | 159 assertTrue(!!result); |
166 assertEq("wifi2_PSK", result.Name); | 160 assertEq({ |
167 assertEq("NotConnected", result.ConnectionState); | 161 "ConnectionState": "NotConnected", |
168 assertEq("WiFi", result.Type); | 162 "GUID": "stub_wifi2", |
| 163 "Name": "wifi2_PSK", |
| 164 "Type": "WiFi", |
| 165 "WiFi": { |
| 166 "SSID": "stub_wifi2", |
| 167 "Security": "WPA-PSK", |
| 168 "SignalStrength": 80 |
| 169 } |
| 170 }, result); |
169 })); | 171 })); |
170 }, | 172 }, |
171 function onNetworksChangedEvent() { | 173 function onNetworksChangedEventConnect() { |
172 var network = "stub_wifi2"; | 174 var network = "stub_wifi2"; |
173 var done = chrome.test.callbackAdded(); | 175 var done = chrome.test.callbackAdded(); |
174 var listener = new privateHelpers.connectListener(network, done); | 176 var expectedStates = ["Connected", "Connecting"]; |
175 chrome.networkingPrivate.onNetworksChanged.addListener( | 177 var listener = |
176 listener.watchForConnect); | 178 new privateHelpers.watchForStateChanges(network, expectedStates, done); |
177 chrome.networkingPrivate.startConnect(network, | 179 chrome.networkingPrivate.startConnect(network, callbackPass()); |
178 callbackPass(function() {})); | 180 }, |
| 181 function onNetworksChangedEventDisconnect() { |
| 182 var network = "stub_wifi1"; |
| 183 var done = chrome.test.callbackAdded(); |
| 184 var expectedStates = ["NotConnected"]; |
| 185 var listener = |
| 186 new privateHelpers.watchForStateChanges(network, expectedStates, done); |
| 187 chrome.networkingPrivate.startDisconnect(network, callbackPass()); |
179 }, | 188 }, |
180 function onNetworkListChangedEvent() { | 189 function onNetworkListChangedEvent() { |
181 var network = "stub_wifi2"; | 190 var network = "stub_wifi2"; |
182 var expected = ["stub_wifi2", | 191 var expected = ["stub_wifi2", |
183 "stub_ethernet", | 192 "stub_ethernet", |
184 "stub_wifi1", | 193 "stub_wifi1", |
185 "stub_cellular1"]; | 194 "stub_cellular1", |
| 195 "stub_vpn1"]; |
186 var done = chrome.test.callbackAdded(); | 196 var done = chrome.test.callbackAdded(); |
187 var listener = new privateHelpers.listListener(network, expected, done); | 197 var listener = new privateHelpers.listListener(network, expected, done); |
188 chrome.networkingPrivate.onNetworkListChanged.addListener( | 198 chrome.networkingPrivate.onNetworkListChanged.addListener( |
189 listener.listenForChanges); | 199 listener.listenForChanges); |
190 chrome.networkingPrivate.startConnect(network, | 200 chrome.networkingPrivate.startConnect(network, callbackPass()); |
191 callbackPass(function() {})); | |
192 }, | 201 }, |
193 function verifyDestination() { | 202 function verifyDestination() { |
194 chrome.networkingPrivate.verifyDestination( | 203 chrome.networkingPrivate.verifyDestination( |
195 verificationProperties, | 204 verificationProperties, |
196 callbackPass(function(isValid) { | 205 callbackPass(function(isValid) { |
197 assertTrue(isValid); | 206 assertTrue(isValid); |
198 })); | 207 })); |
199 }, | 208 }, |
200 function verifyAndEncryptCredentials() { | 209 function verifyAndEncryptCredentials() { |
201 chrome.networkingPrivate.verifyAndEncryptCredentials( | 210 chrome.networkingPrivate.verifyAndEncryptCredentials( |
(...skipping 10 matching lines...) Expand all Loading... |
212 callbackPass(function(result) { | 221 callbackPass(function(result) { |
213 assertEq("encrypted_data", result); | 222 assertEq("encrypted_data", result); |
214 })); | 223 })); |
215 } | 224 } |
216 ]; | 225 ]; |
217 | 226 |
218 var testToRun = window.location.search.substring(1); | 227 var testToRun = window.location.search.substring(1); |
219 chrome.test.runTests(availableTests.filter(function(op) { | 228 chrome.test.runTests(availableTests.filter(function(op) { |
220 return op.name == testToRun; | 229 return op.name == testToRun; |
221 })); | 230 })); |
OLD | NEW |