Home | History | Annotate | Download | only in network_WiFi_SecChange
      1 # Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 from autotest_lib.client.common_lib.cros.network import xmlrpc_datatypes
      6 from autotest_lib.client.common_lib.cros.network  import xmlrpc_security_types
      7 from autotest_lib.server.cros.network import hostap_config
      8 from autotest_lib.server.cros.network import wifi_cell_test_base
      9 
     10 
     11 class network_WiFi_SecChange(wifi_cell_test_base.WiFiCellTestBase):
     12     """Test that we can connect to a BSS despite security changes."""
     13 
     14     version = 1
     15 
     16     TEST_SSID = 'My_security_changes'
     17 
     18 
     19     def run_once(self):
     20         """Test body."""
     21         wpa_config = xmlrpc_security_types.WPAConfig(
     22                 psk='chromeos',
     23                 wpa_mode=xmlrpc_security_types.WPAConfig.MODE_MIXED_WPA,
     24                 wpa_ciphers=[xmlrpc_security_types.WPAConfig.CIPHER_TKIP,
     25                              xmlrpc_security_types.WPAConfig.CIPHER_CCMP],
     26                 wpa2_ciphers=[xmlrpc_security_types.WPAConfig.CIPHER_CCMP])
     27         ap_config = hostap_config.HostapConfig(
     28                     ssid=self.TEST_SSID,
     29                     frequency=2412,
     30                     mode=hostap_config.HostapConfig.MODE_11B,
     31                     security_config=wpa_config)
     32         self.context.configure(ap_config)
     33         assoc_params = xmlrpc_datatypes.AssociationParameters(
     34                 ssid=self.context.router.get_ssid(),
     35                 security_config=wpa_config)
     36         self.context.assert_connect_wifi(assoc_params)
     37         self.context.assert_ping_from_dut()
     38         self.context.client.shill.disconnect(assoc_params.ssid)
     39         # This deconfig erases the state stored in the router around WPA.
     40         self.context.router.deconfig()
     41         # Now we change the same SSID to be an open network.
     42         ap_config = hostap_config.HostapConfig(
     43                     ssid=self.TEST_SSID,
     44                     frequency=2412,
     45                     mode=hostap_config.HostapConfig.MODE_11B)
     46         self.context.configure(ap_config)
     47         assoc_params = xmlrpc_datatypes.AssociationParameters(
     48                 ssid=self.context.router.get_ssid())
     49         self.context.assert_connect_wifi(assoc_params)
     50         self.context.assert_ping_from_dut()
     51         self.context.client.shill.disconnect(assoc_params.ssid)
     52         self.context.router.deconfig()
     53