Index: functional/chromeos_wifi_functional.py |
=================================================================== |
--- functional/chromeos_wifi_functional.py (revision 110222) |
+++ functional/chromeos_wifi_functional.py (working copy) |
@@ -17,10 +17,14 @@ |
routers are attached. |
""" |
- def _LoginDevice(self): |
- """Logs into the device and cleans up flimflam profile.""" |
+ def _LoginDevice(self, test_account='test_google_account'): |
+ """Logs into the device and cleans up flimflam profile. |
+ |
+ Args: |
+ test_account: The account used to login to the device. |
+ """ |
if not self.GetLoginInfo()['is_logged_in']: |
- credentials = self.GetPrivateInfo()['test_google_account'] |
+ credentials = self.GetPrivateInfo()[test_account] |
self.Login(credentials['username'], credentials['password']) |
login_info = self.GetLoginInfo() |
self.assertTrue(login_info['is_logged_in'], msg='Login failed.') |
@@ -58,6 +62,30 @@ |
is_hidden=router.get('hidden')) |
return router |
+ def _VerifyIfConnectedToNetwork(self, network_ssid, status='Online state'): |
+ """Verify if we are connected to the network. |
+ |
stanleyw
2011/11/21 19:32:45
What do the function arguments mean?
deepakg
2011/11/21 23:49:44
Done.
|
+ The test calling this function will fail for one of these three reasons: |
stanleyw
2011/11/21 19:32:45
extra space between will and fail
deepakg
2011/11/21 23:49:44
Done.
|
+ 1. The server path for the SSID is not found. |
+ 2. If we are not connected to the network. |
+ 3. If we did not find the network in the wifi_networks list. |
+ """ |
+ service_path = self.GetServicePath(network_ssid) |
+ self.assertTrue(service_path is not None, |
+ msg='Could not find a service path for the given ssid %s.' % |
+ network_ssid) |
+ network_available = False |
+ for path in self.NetworkScan()['wifi_networks']: |
+ if path == service_path: |
+ network_available = True |
stanleyw
2011/11/21 19:32:45
We can get rid of the network_available variable i
deepakg
2011/11/21 23:49:44
Thanks, didn't know this was possible.
|
+ self.assertTrue( |
+ self.NetworkScan()['wifi_networks'][path]['status'] == status, |
+ msg='Not connected to the network %s.' % network_ssid) |
+ break; |
+ self.assertTrue(network_available, |
+ msg='Did not find the network %s in the wifi_networks' |
+ ' list.' % network_ssid) |
+ |
def testConnectShareEncryptedNetwork(self): |
"""A shared encrypted network can connect and is remembered. |
@@ -96,6 +124,79 @@ |
self.assertFalse(service_path in self.GetNetworkInfo()['remembered_wifi'], |
'Connected wifi was not removed from the remembered list.') |
+ def testConnectToSharedOpenNetwork(self): |
+ """Can connect to a shared open network. |
+ Verify that the connected network is in the remembered network list |
+ for all the users. |
+ """ |
+ router_name = 'Trendnet_639gr_4' |
+ self._LoginDevice() |
+ router = self._SetupRouter(router_name) |
+ error = self.ConnectToWifiRouter(router_name) |
+ self.assertFalse(error, msg='Failed to connect to wifi network %s. ' |
+ 'Reason: %s.' % (router['ssid'], error)) |
+ service_path = self.GetServicePath(router['ssid']) |
+ self.assertTrue(service_path in self.GetNetworkInfo()['remembered_wifi'], |
+ msg='Open wifi is not remembered for the current user.') |
+ self.Logout() |
+ self._LoginDevice(test_account='test_google_account_2') |
+ self.assertTrue(service_path in self.NetworkScan()['remembered_wifi'], |
+ msg='Open network is not shared with other users.') |
+ |
+ def testConnectToSharedHiddenNetwork(self): |
+ """Can connect to shared hidden network and verify that it's shared.""" |
+ router_name = "Netgear_WGR614" |
+ self._LoginDevice() |
+ router = self._SetupRouter(router_name) |
+ error = self.ConnectToWifiRouter(router_name) |
+ self.assertFalse(error, msg='Failed to connect to hidden network %s. ' |
+ 'Reason: %s.' % (router['ssid'], error)) |
+ service_path = self.GetServicePath(router['ssid']) |
+ self.assertTrue(service_path in self.NetworkScan()['remembered_wifi'], |
+ msg='Hidden network is not added to the remembered list.') |
+ self.Logout() |
+ self._LoginDevice(test_account='test_google_account_2') |
+ self.assertTrue(service_path in self.NetworkScan()['remembered_wifi'], |
+ msg='Shared hidden network is not in other user\'s ' |
+ 'remembered list.') |
+ |
+ def testConnectToNonSharedHiddenNetwork(self): |
+ """Can connect to a non-shared hidden network. |
+ |
+ Verify that it is not shared with other users. |
+ """ |
+ router_name = "Linksys_WRT54GL" |
+ self._LoginDevice() |
+ router = self._SetupRouter(router_name) |
+ error = self.ConnectToWifiRouter(router_name, shared=False) |
+ self.assertFalse(error, msg='Failed to connect to hidden network %s. ' |
+ 'Reason: %s.' % (router['ssid'], error)) |
+ service_path = self.GetServicePath(router['ssid']) |
+ self.assertTrue(service_path in self.NetworkScan()['remembered_wifi'], |
+ msg='Hidden network is not added to the remembered list.') |
+ self.Logout() |
+ self._LoginDevice(test_account='test_google_account_2') |
+ self.assertFalse(service_path in self.NetworkScan()['remembered_wifi'], |
+ msg='Non-shared hidden network %s is shared.' |
+ % router['ssid']) |
+ |
+ def testConnectToEncryptedNetworkInLoginScreen(self): |
+ """Can connect to encrypted network in login screen. |
+ |
+ Verify that this network is in the remembered list after login. |
+ """ |
+ router_name = 'Belkin_G' |
stanleyw
2011/11/21 19:32:45
We should probably check that if we're logged in,
deepakg
2011/11/21 23:49:44
Done.
|
+ router = self._SetupRouter(router_name) |
+ error = self.ConnectToWifiRouter(router_name) |
+ self.assertFalse(error, 'Failed to connect to wifi network %s. ' |
+ 'Reason: %s.' % (router['ssid'], error)) |
+ service_path = self.GetServicePath(router['ssid']) |
+ self._VerifyIfConnectedToNetwork(router['ssid'], 'Connected') |
+ self._LoginDevice() |
+ self.assertTrue(service_path in self.NetworkScan()['remembered_wifi'], |
+ msg='Network is not added to the remembered list.') |
+ |
+ |
if __name__ == '__main__': |
pyauto_functional.Main() |