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