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 5import logging 6 7from autotest_lib.client.bin import test 8from autotest_lib.client.common_lib import error 9from autotest_lib.client.cros.networking.chrome_testing \ 10 import chrome_networking_test_context as cntc 11from autotest_lib.client.cros.networking.chrome_testing import test_utils 12 13class network_ChromeWifiConfigure(test.test): 14 """ 15 Tests wifi configuration using chrome.networkingPrivate. 16 This test appears fairly trivial, but actually tests that Shill and Chrome 17 are communicating successfully, and that Shill can successfully configure 18 a WiFi network and retreive the properties of that network. 19 20 """ 21 version = 1 22 23 def _test_property(self, network, property_name, expected_value): 24 value = test_utils.get_ui_property(network, property_name) 25 if value != expected_value: 26 raise error.TestFail('Expected value for "' + property_name + 27 '" to be "' + str(expected_value) + 28 '", found "' + str(value)) + '"' 29 30 def _create_wifi(self, ssid, security): 31 logging.info('create_wifi') 32 shared = 'true' 33 properties = { 34 'Type': 'WiFi', 35 'WiFi': { 36 'SSID': ssid, 37 'Security': security 38 } 39 } 40 logging.info('Calling createNetwork') 41 guid = test_utils.call_test_function_check_success( 42 self._chrome_testing, 43 'createNetwork', 44 (shared, properties)) 45 logging.info(' guid: ' + guid) 46 47 logging.info('Calling getNetworkInfo') 48 network = test_utils.call_test_function_check_success( 49 self._chrome_testing, 50 'getNetworkInfo', 51 ('"' + guid + '"',)) 52 logging.info(' result: ' + str(network)) 53 54 self._test_property(network, 'Type', 'WiFi') 55 self._test_property(network, 'WiFi.Security', security) 56 57 58 def _run_once_internal(self): 59 logging.info('run_once_internal') 60 self._create_wifi('test_wifi1', 'WEP-PSK') 61 62 63 def run_once(self): 64 with cntc.ChromeNetworkingTestContext() as testing_context: 65 self._chrome_testing = testing_context 66 self._run_once_internal() 67