102571fc97293dfe69c0586a927d117e33e198641Viral Modi# Copyright (c) 2012 The Chromium Authors. All rights reserved. 202571fc97293dfe69c0586a927d117e33e198641Viral Modi# Use of this source code is governed by a BSD-style license that can be 302571fc97293dfe69c0586a927d117e33e198641Viral Modi# found in the LICENSE file. 402571fc97293dfe69c0586a927d117e33e198641Viral Modi 5260447745330298d0b1eacb5ff5f663f08c40739Viral Modi"""Base class for objects to configure Linksys single band access points 6260447745330298d0b1eacb5ff5f663f08c40739Viral Modi using webdriver.""" 7260447745330298d0b1eacb5ff5f663f08c40739Viral Modi 802571fc97293dfe69c0586a927d117e33e198641Viral Modiimport logging 902571fc97293dfe69c0586a927d117e33e198641Viral Modiimport urlparse 1002571fc97293dfe69c0586a927d117e33e198641Viral Modi 1194c3721324b55d312dc3087068ac4da454ef6c25Jason Abeleimport dynamic_ap_configurator 12d751a4f5e86c0e5f8a984d7fe21a4f74c7caa761Kris Rambishimport ap_spec 1302571fc97293dfe69c0586a927d117e33e198641Viral Modi 1402571fc97293dfe69c0586a927d117e33e198641Viral Modifrom selenium.common.exceptions import WebDriverException 1502571fc97293dfe69c0586a927d117e33e198641Viral Modi 1602571fc97293dfe69c0586a927d117e33e198641Viral Modi 1794c3721324b55d312dc3087068ac4da454ef6c25Jason Abeleclass LinksyseSingleBandAPConfigurator( 1894c3721324b55d312dc3087068ac4da454ef6c25Jason Abele dynamic_ap_configurator.DynamicAPConfigurator): 1902571fc97293dfe69c0586a927d117e33e198641Viral Modi """Base class for objects to configure Linksys single band access points 2002571fc97293dfe69c0586a927d117e33e198641Viral Modi using webdriver.""" 2102571fc97293dfe69c0586a927d117e33e198641Viral Modi 226a3e86be3c3c5d2b195f1195aa81383c31d18bcbKris Rambish def __init__(self, ap_config): 236a3e86be3c3c5d2b195f1195aa81383c31d18bcbKris Rambish super(LinksyseSingleBandAPConfigurator, self).__init__(ap_config) 246a3e86be3c3c5d2b195f1195aa81383c31d18bcbKris Rambish self._dhcp_delay = 30 256a3e86be3c3c5d2b195f1195aa81383c31d18bcbKris Rambish 266a3e86be3c3c5d2b195f1195aa81383c31d18bcbKris Rambish 2702571fc97293dfe69c0586a927d117e33e198641Viral Modi def _sec_alert(self, alert): 2802571fc97293dfe69c0586a927d117e33e198641Viral Modi text = alert.text 2902571fc97293dfe69c0586a927d117e33e198641Viral Modi if 'Your wireless security mode is not compatible with' in text: 3002571fc97293dfe69c0586a927d117e33e198641Viral Modi alert.accept() 3102571fc97293dfe69c0586a927d117e33e198641Viral Modi elif 'WARNING: Your Wireless-N devices will only operate' in text: 3202571fc97293dfe69c0586a927d117e33e198641Viral Modi alert.accept() 3302571fc97293dfe69c0586a927d117e33e198641Viral Modi elif 'Wireless security is currently disabled.' in text: 3402571fc97293dfe69c0586a927d117e33e198641Viral Modi alert.accept() 3500b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish self.click_button_by_id('divBT1', alert_handler=self._sec_alert) 3602571fc97293dfe69c0586a927d117e33e198641Viral Modi elif 'Your new setting will disable Wi-Fi Protected Setup.' in text: 3702571fc97293dfe69c0586a927d117e33e198641Viral Modi alert.accept() 38608e591b1dae88376ac48b6c28f4163df7fca1f4Deepak Gopal elif 'Illegal characters [ acceptable characters: 0 to 9 ]' in text: 39608e591b1dae88376ac48b6c28f4163df7fca1f4Deepak Gopal alert.accept() 40608e591b1dae88376ac48b6c28f4163df7fca1f4Deepak Gopal raise RuntimeError('Invalid characters used for key renewal. ' 41608e591b1dae88376ac48b6c28f4163df7fca1f4Deepak Gopal 'Error: %s' % text) 42618e213871d591fbea23a168af746a0a212dca41bmahadev elif 'The Key must be between 8 and 63 ASCII characters' in text: 43618e213871d591fbea23a168af746a0a212dca41bmahadev alert.accept() 4402571fc97293dfe69c0586a927d117e33e198641Viral Modi else: 45618e213871d591fbea23a168af746a0a212dca41bmahadev raise RuntimeError('Unhandled alert message: %s' % text) 4602571fc97293dfe69c0586a927d117e33e198641Viral Modi 4702571fc97293dfe69c0586a927d117e33e198641Viral Modi 4802571fc97293dfe69c0586a927d117e33e198641Viral Modi def get_number_of_pages(self): 4902571fc97293dfe69c0586a927d117e33e198641Viral Modi return 2 5002571fc97293dfe69c0586a927d117e33e198641Viral Modi 5102571fc97293dfe69c0586a927d117e33e198641Viral Modi 5202571fc97293dfe69c0586a927d117e33e198641Viral Modi def get_supported_modes(self): 53d751a4f5e86c0e5f8a984d7fe21a4f74c7caa761Kris Rambish return [{'band': ap_spec.BAND_2GHZ, 54d751a4f5e86c0e5f8a984d7fe21a4f74c7caa761Kris Rambish 'modes': [ap_spec.MODE_M, ap_spec.MODE_B | ap_spec.MODE_G, 5577e15c016f5f9a44d7cad8b8644c0c5515bb0e6fbmahadev ap_spec.MODE_G, ap_spec.MODE_B, ap_spec.MODE_N]}] 5602571fc97293dfe69c0586a927d117e33e198641Viral Modi 5702571fc97293dfe69c0586a927d117e33e198641Viral Modi 5802571fc97293dfe69c0586a927d117e33e198641Viral Modi def get_supported_bands(self): 59d751a4f5e86c0e5f8a984d7fe21a4f74c7caa761Kris Rambish return [{'band': ap_spec.BAND_2GHZ, 6000b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish 'channels': ['Auto', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]}] 6102571fc97293dfe69c0586a927d117e33e198641Viral Modi 6202571fc97293dfe69c0586a927d117e33e198641Viral Modi 6302571fc97293dfe69c0586a927d117e33e198641Viral Modi def is_security_mode_supported(self, security_mode): 646a3e86be3c3c5d2b195f1195aa81383c31d18bcbKris Rambish """Returns if the passes security mode is supported. 656a3e86be3c3c5d2b195f1195aa81383c31d18bcbKris Rambish 666a3e86be3c3c5d2b195f1195aa81383c31d18bcbKris Rambish @param security_mode: a valid ap_spec security mode 676a3e86be3c3c5d2b195f1195aa81383c31d18bcbKris Rambish 686a3e86be3c3c5d2b195f1195aa81383c31d18bcbKris Rambish @returns True if the mode is supported; False otherwise 696a3e86be3c3c5d2b195f1195aa81383c31d18bcbKris Rambish 706a3e86be3c3c5d2b195f1195aa81383c31d18bcbKris Rambish """ 71d751a4f5e86c0e5f8a984d7fe21a4f74c7caa761Kris Rambish return security_mode in (ap_spec.SECURITY_TYPE_DISABLED, 72d751a4f5e86c0e5f8a984d7fe21a4f74c7caa761Kris Rambish ap_spec.SECURITY_TYPE_WPAPSK, 73d751a4f5e86c0e5f8a984d7fe21a4f74c7caa761Kris Rambish ap_spec.SECURITY_TYPE_WPA2PSK, 74d751a4f5e86c0e5f8a984d7fe21a4f74c7caa761Kris Rambish ap_spec.SECURITY_TYPE_WEP) 7502571fc97293dfe69c0586a927d117e33e198641Viral Modi 7602571fc97293dfe69c0586a927d117e33e198641Viral Modi 7702571fc97293dfe69c0586a927d117e33e198641Viral Modi def navigate_to_page(self, page_number): 786a3e86be3c3c5d2b195f1195aa81383c31d18bcbKris Rambish """Navigates to the passed in page. 796a3e86be3c3c5d2b195f1195aa81383c31d18bcbKris Rambish 806a3e86be3c3c5d2b195f1195aa81383c31d18bcbKris Rambish @param page_number: the page number as an integer 816a3e86be3c3c5d2b195f1195aa81383c31d18bcbKris Rambish 826a3e86be3c3c5d2b195f1195aa81383c31d18bcbKris Rambish """ 8302571fc97293dfe69c0586a927d117e33e198641Viral Modi if page_number == 1: 8402571fc97293dfe69c0586a927d117e33e198641Viral Modi page_url = urlparse.urljoin(self.admin_interface_url, 8502571fc97293dfe69c0586a927d117e33e198641Viral Modi 'Wireless_Basic.asp') 860d1264acafb16ee523d17e7eabe2b049be04e20aDeepak Gopal self.get_url(page_url, page_title='Settings') 8702571fc97293dfe69c0586a927d117e33e198641Viral Modi elif page_number == 2: 8802571fc97293dfe69c0586a927d117e33e198641Viral Modi page_url = urlparse.urljoin(self.admin_interface_url, 8902571fc97293dfe69c0586a927d117e33e198641Viral Modi 'WL_WPATable.asp') 90608e591b1dae88376ac48b6c28f4163df7fca1f4Deepak Gopal self.get_url(page_url, page_title='Security') 9102571fc97293dfe69c0586a927d117e33e198641Viral Modi else: 9202571fc97293dfe69c0586a927d117e33e198641Viral Modi raise RuntimeError('Invalid page number passed. Number of pages ' 9302571fc97293dfe69c0586a927d117e33e198641Viral Modi '%d, page value sent was %d' % 9402571fc97293dfe69c0586a927d117e33e198641Viral Modi (self.get_number_of_pages(), page_number)) 9502571fc97293dfe69c0586a927d117e33e198641Viral Modi 9602571fc97293dfe69c0586a927d117e33e198641Viral Modi 9702571fc97293dfe69c0586a927d117e33e198641Viral Modi def save_page(self, page_number): 986a3e86be3c3c5d2b195f1195aa81383c31d18bcbKris Rambish """Save the given page. 996a3e86be3c3c5d2b195f1195aa81383c31d18bcbKris Rambish 1006a3e86be3c3c5d2b195f1195aa81383c31d18bcbKris Rambish @param page_number: the page number as an integer 1016a3e86be3c3c5d2b195f1195aa81383c31d18bcbKris Rambish 1026a3e86be3c3c5d2b195f1195aa81383c31d18bcbKris Rambish """ 10377e15c016f5f9a44d7cad8b8644c0c5515bb0e6fbmahadev try: 10477e15c016f5f9a44d7cad8b8644c0c5515bb0e6fbmahadev self.click_button_by_id('divBT1', alert_handler=self._sec_alert) 10577e15c016f5f9a44d7cad8b8644c0c5515bb0e6fbmahadev except: 10677e15c016f5f9a44d7cad8b8644c0c5515bb0e6fbmahadev self._handle_alert('//input[@id="divBT1"]', self._sec_alert) 10787330193c8648cd9d75e8fa38e613aba1f19937fbmahadev xpath_continue = '//input[@value="Continue"]' 10887330193c8648cd9d75e8fa38e613aba1f19937fbmahadev self.wait_for_object_by_xpath(xpath_continue, wait_time=20) 1092057368d8619d01f7f6fa6ac70a3c0d89b238a0eDeepak Gopal self.click_button_by_xpath(xpath_continue, 1102057368d8619d01f7f6fa6ac70a3c0d89b238a0eDeepak Gopal alert_handler=self._sec_alert) 11102571fc97293dfe69c0586a927d117e33e198641Viral Modi 11202571fc97293dfe69c0586a927d117e33e198641Viral Modi 11302571fc97293dfe69c0586a927d117e33e198641Viral Modi def set_mode(self, mode, band=None): 11402571fc97293dfe69c0586a927d117e33e198641Viral Modi self.add_item_to_command_list(self._set_mode, (mode,), 1, 900) 11502571fc97293dfe69c0586a927d117e33e198641Viral Modi 11602571fc97293dfe69c0586a927d117e33e198641Viral Modi 11702571fc97293dfe69c0586a927d117e33e198641Viral Modi def _set_mode(self, mode, band=None): 118d751a4f5e86c0e5f8a984d7fe21a4f74c7caa761Kris Rambish mode_mapping = {ap_spec.MODE_M:'Mixed', 119d751a4f5e86c0e5f8a984d7fe21a4f74c7caa761Kris Rambish ap_spec.MODE_B | ap_spec.MODE_G:'Wireless-B/G Only', 120d751a4f5e86c0e5f8a984d7fe21a4f74c7caa761Kris Rambish ap_spec.MODE_G:'Wireless-G Only', 121d751a4f5e86c0e5f8a984d7fe21a4f74c7caa761Kris Rambish ap_spec.MODE_B:'Wireless-B Only', 1222e13a3dc8f3024975a63a6595eecfffdaddf0aafDeepak Gopal ap_spec.MODE_N:'Wireless-N Only', 1232e13a3dc8f3024975a63a6595eecfffdaddf0aafDeepak Gopal 'Disabled':'Disabled'} 12402571fc97293dfe69c0586a927d117e33e198641Viral Modi mode_name = mode_mapping.get(mode) 12502571fc97293dfe69c0586a927d117e33e198641Viral Modi if not mode_name: 12602571fc97293dfe69c0586a927d117e33e198641Viral Modi raise RuntimeError('The mode %d not supported by router %s. ', 127b02e1744df2907cc4c0e7167cd8a52c43a73b155Jason Abele hex(mode), self.name) 12802571fc97293dfe69c0586a927d117e33e198641Viral Modi xpath = '//select[@name="net_mode_24g"]' 12902571fc97293dfe69c0586a927d117e33e198641Viral Modi self.select_item_from_popup_by_xpath(mode_name, xpath, 13002571fc97293dfe69c0586a927d117e33e198641Viral Modi alert_handler=self._sec_alert) 13102571fc97293dfe69c0586a927d117e33e198641Viral Modi 13202571fc97293dfe69c0586a927d117e33e198641Viral Modi 13302571fc97293dfe69c0586a927d117e33e198641Viral Modi def set_ssid(self, ssid): 13402571fc97293dfe69c0586a927d117e33e198641Viral Modi self.add_item_to_command_list(self._set_ssid, (ssid,), 1, 900) 13502571fc97293dfe69c0586a927d117e33e198641Viral Modi 13602571fc97293dfe69c0586a927d117e33e198641Viral Modi 13702571fc97293dfe69c0586a927d117e33e198641Viral Modi def _set_ssid(self, ssid): 13802571fc97293dfe69c0586a927d117e33e198641Viral Modi xpath = '//input[@maxlength="32" and @name="ssid_24g"]' 13902571fc97293dfe69c0586a927d117e33e198641Viral Modi self.set_content_of_text_field_by_xpath(ssid, xpath, abort_check=False) 14000b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish # If security is off leaving focus from the field will throw 14100b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish # a alert dialog. 14200b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish ssid_field = self.driver.find_element_by_xpath(xpath) 143506a99d582456eff2f6d5e534cbf00a62990e97dKris Rambish self._ssid = ssid 14400b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish try: 145260447745330298d0b1eacb5ff5f663f08c40739Viral Modi ssid_field.send_keys('\t') 14600b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish return 14700b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish except WebDriverException, e: 14800b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish message = str(e) 14900b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish if message.find('An open modal dialog blocked the operation') == -1: 15000b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish return 15100b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish self._sec_alert(self.driver.switch_to_alert()) 15202571fc97293dfe69c0586a927d117e33e198641Viral Modi 15302571fc97293dfe69c0586a927d117e33e198641Viral Modi 15402571fc97293dfe69c0586a927d117e33e198641Viral Modi def set_channel(self, channel): 15502571fc97293dfe69c0586a927d117e33e198641Viral Modi self.add_item_to_command_list(self._set_channel, (channel,), 1, 900) 15602571fc97293dfe69c0586a927d117e33e198641Viral Modi 15702571fc97293dfe69c0586a927d117e33e198641Viral Modi 15802571fc97293dfe69c0586a927d117e33e198641Viral Modi def _set_channel(self, channel): 15900857090713b50f971e1a863e02c7d61812a483bKris Rambish position = self._get_channel_popup_position(channel) 16002571fc97293dfe69c0586a927d117e33e198641Viral Modi xpath = '//select[@name="_wl0_channel"]' 16100b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish channels = ['Auto', 16200b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish '1 - 2.412GHZ', '2 - 2.417GHZ', '3 - 2.422GHZ', 16300b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish '4 - 2.427GHZ', '5 - 2.432GHZ', '6 - 2.437GHZ', 16400b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish '7 - 2.442GHZ', '8 - 2.447GHZ', '9 - 2.452GHZ', 16500b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish '10 - 2.457GHZ', '11 - 2.462GHZ'] 16600857090713b50f971e1a863e02c7d61812a483bKris Rambish self.select_item_from_popup_by_xpath(channels[position], xpath) 16702571fc97293dfe69c0586a927d117e33e198641Viral Modi 16802571fc97293dfe69c0586a927d117e33e198641Viral Modi 16902571fc97293dfe69c0586a927d117e33e198641Viral Modi def set_channel_width(self, channel_wid): 170260447745330298d0b1eacb5ff5f663f08c40739Viral Modi """ 171260447745330298d0b1eacb5ff5f663f08c40739Viral Modi Adjusts the channel channel width. 172260447745330298d0b1eacb5ff5f663f08c40739Viral Modi 173260447745330298d0b1eacb5ff5f663f08c40739Viral Modi @param channel_width: the channel width 174260447745330298d0b1eacb5ff5f663f08c40739Viral Modi """ 17502571fc97293dfe69c0586a927d117e33e198641Viral Modi self.add_item_to_command_list(self._set_channel_width,(channel_wid,), 17602571fc97293dfe69c0586a927d117e33e198641Viral Modi 1, 900) 17702571fc97293dfe69c0586a927d117e33e198641Viral Modi 17802571fc97293dfe69c0586a927d117e33e198641Viral Modi 17902571fc97293dfe69c0586a927d117e33e198641Viral Modi def _set_channel_width(self, channel_wid): 18002571fc97293dfe69c0586a927d117e33e198641Viral Modi channel_width_choice = ['Auto (20 MHz or 40 MHz)', '20 MHz Only'] 18102571fc97293dfe69c0586a927d117e33e198641Viral Modi xpath = '//select[@name="_wl0_nbw"]' 18202571fc97293dfe69c0586a927d117e33e198641Viral Modi self.select_item_from_popup_by_xpath(channel_width_choice[channel_wid], 18302571fc97293dfe69c0586a927d117e33e198641Viral Modi xpath) 18402571fc97293dfe69c0586a927d117e33e198641Viral Modi 18502571fc97293dfe69c0586a927d117e33e198641Viral Modi 18602571fc97293dfe69c0586a927d117e33e198641Viral Modi def set_radio(self, enabled=True): 1872e13a3dc8f3024975a63a6595eecfffdaddf0aafDeepak Gopal weight = 1 if enabled else 1000 1882e13a3dc8f3024975a63a6595eecfffdaddf0aafDeepak Gopal self.add_item_to_command_list(self._set_radio, (enabled,), 1, weight) 1892e13a3dc8f3024975a63a6595eecfffdaddf0aafDeepak Gopal 1902e13a3dc8f3024975a63a6595eecfffdaddf0aafDeepak Gopal 1912e13a3dc8f3024975a63a6595eecfffdaddf0aafDeepak Gopal def _set_radio(self, enabled=True): 1922e13a3dc8f3024975a63a6595eecfffdaddf0aafDeepak Gopal if not enabled: 1932e13a3dc8f3024975a63a6595eecfffdaddf0aafDeepak Gopal self._set_mode('Disabled') 1942e13a3dc8f3024975a63a6595eecfffdaddf0aafDeepak Gopal else: 1952e13a3dc8f3024975a63a6595eecfffdaddf0aafDeepak Gopal self._set_mode(ap_spec.MODE_G) 19602571fc97293dfe69c0586a927d117e33e198641Viral Modi 19702571fc97293dfe69c0586a927d117e33e198641Viral Modi 19802571fc97293dfe69c0586a927d117e33e198641Viral Modi def set_band(self, enabled=True): 199260447745330298d0b1eacb5ff5f663f08c40739Viral Modi logging.debug('set_band is not supported in Linksys single band AP.') 20002571fc97293dfe69c0586a927d117e33e198641Viral Modi return None 20102571fc97293dfe69c0586a927d117e33e198641Viral Modi 20202571fc97293dfe69c0586a927d117e33e198641Viral Modi 20302571fc97293dfe69c0586a927d117e33e198641Viral Modi def set_security_disabled(self): 20402571fc97293dfe69c0586a927d117e33e198641Viral Modi self.add_item_to_command_list(self._set_security_disabled, (), 2, 1000) 20502571fc97293dfe69c0586a927d117e33e198641Viral Modi 20602571fc97293dfe69c0586a927d117e33e198641Viral Modi 20702571fc97293dfe69c0586a927d117e33e198641Viral Modi def _set_security_disabled(self): 20802571fc97293dfe69c0586a927d117e33e198641Viral Modi xpath = '//select[@name="wl0_security_mode"]' 209608e591b1dae88376ac48b6c28f4163df7fca1f4Deepak Gopal self.select_item_from_popup_by_xpath('Disabled', xpath, 21002571fc97293dfe69c0586a927d117e33e198641Viral Modi alert_handler=self._sec_alert) 21102571fc97293dfe69c0586a927d117e33e198641Viral Modi 21202571fc97293dfe69c0586a927d117e33e198641Viral Modi 21302571fc97293dfe69c0586a927d117e33e198641Viral Modi def set_security_wep(self, key_value, authentication): 21402571fc97293dfe69c0586a927d117e33e198641Viral Modi self.add_item_to_command_list(self._set_security_wep, 21502571fc97293dfe69c0586a927d117e33e198641Viral Modi (key_value, authentication), 2, 1000) 21602571fc97293dfe69c0586a927d117e33e198641Viral Modi 21702571fc97293dfe69c0586a927d117e33e198641Viral Modi 21802571fc97293dfe69c0586a927d117e33e198641Viral Modi def _set_security_wep(self, key_value, authentication): 21902571fc97293dfe69c0586a927d117e33e198641Viral Modi # WEP and WPA-Personal are not supported for Wireless-N only mode 22002571fc97293dfe69c0586a927d117e33e198641Viral Modi # and Mixed mode. 22102571fc97293dfe69c0586a927d117e33e198641Viral Modi # WEP and WPA-Personal do not show up in the list, no alert is thrown. 22202571fc97293dfe69c0586a927d117e33e198641Viral Modi popup = '//select[@name="wl0_security_mode"]' 223608e591b1dae88376ac48b6c28f4163df7fca1f4Deepak Gopal if not self.item_in_popup_by_xpath_exist('WEP', popup): 22400b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish raise RuntimeError('The popup %s did not contain the item %s. ' 22500b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish 'Is the mode N?' % (popup, self.security_wep)) 226608e591b1dae88376ac48b6c28f4163df7fca1f4Deepak Gopal self.select_item_from_popup_by_xpath('WEP', popup, 22702571fc97293dfe69c0586a927d117e33e198641Viral Modi alert_handler=self._sec_alert) 22802571fc97293dfe69c0586a927d117e33e198641Viral Modi text = '//input[@name="wl0_passphrase"]' 22902571fc97293dfe69c0586a927d117e33e198641Viral Modi self.set_content_of_text_field_by_xpath(key_value, text, 23002571fc97293dfe69c0586a927d117e33e198641Viral Modi abort_check=True) 23102571fc97293dfe69c0586a927d117e33e198641Viral Modi xpath = '//input[@value="Generate"]' 23202571fc97293dfe69c0586a927d117e33e198641Viral Modi self.click_button_by_xpath(xpath, alert_handler=self._sec_alert) 23302571fc97293dfe69c0586a927d117e33e198641Viral Modi 23402571fc97293dfe69c0586a927d117e33e198641Viral Modi 235618e213871d591fbea23a168af746a0a212dca41bmahadev def set_security_wpapsk(self, security, shared_key, update_interval=None): 23602571fc97293dfe69c0586a927d117e33e198641Viral Modi # WEP and WPA-Personal are not supported for Wireless-N only mode, 237618e213871d591fbea23a168af746a0a212dca41bmahadev self.add_item_to_command_list(self._set_security_wpapsk, 238618e213871d591fbea23a168af746a0a212dca41bmahadev (security, shared_key, update_interval), 239618e213871d591fbea23a168af746a0a212dca41bmahadev 2, 900) 240608e591b1dae88376ac48b6c28f4163df7fca1f4Deepak Gopal 241260447745330298d0b1eacb5ff5f663f08c40739Viral Modi 242618e213871d591fbea23a168af746a0a212dca41bmahadev def _set_security_wpapsk(self, security, shared_key, upadate_interval=None): 243608e591b1dae88376ac48b6c28f4163df7fca1f4Deepak Gopal """Common method to set wpapsk and wpa2psk modes.""" 24402571fc97293dfe69c0586a927d117e33e198641Viral Modi popup = '//select[@name="wl0_security_mode"]' 2453370d8cab2a28129d68a1cd126afee6a1b001fbdbmahadev self.wait_for_object_by_xpath(popup) 246618e213871d591fbea23a168af746a0a212dca41bmahadev if security == ap_spec.SECURITY_TYPE_WPAPSK: 247618e213871d591fbea23a168af746a0a212dca41bmahadev wpa_item = 'WPA Personal' 248618e213871d591fbea23a168af746a0a212dca41bmahadev else: 249618e213871d591fbea23a168af746a0a212dca41bmahadev wpa_item = 'WPA2 Personal' 250618e213871d591fbea23a168af746a0a212dca41bmahadev self.select_item_from_popup_by_xpath(wpa_item, popup, 25102571fc97293dfe69c0586a927d117e33e198641Viral Modi alert_handler=self._sec_alert) 25202571fc97293dfe69c0586a927d117e33e198641Viral Modi text = '//input[@name="wl0_wpa_psk"]' 25302571fc97293dfe69c0586a927d117e33e198641Viral Modi self.set_content_of_text_field_by_xpath(shared_key, text, 25402571fc97293dfe69c0586a927d117e33e198641Viral Modi abort_check=False) 25502571fc97293dfe69c0586a927d117e33e198641Viral Modi 25602571fc97293dfe69c0586a927d117e33e198641Viral Modi 257a81406ffca248d86cc8a441960ed3517fc179b8fDeepak Gopal def is_update_interval_supported(self): 258a81406ffca248d86cc8a441960ed3517fc179b8fDeepak Gopal """ 259a81406ffca248d86cc8a441960ed3517fc179b8fDeepak Gopal Returns True if setting the PSK refresh interval is supported. 260a81406ffca248d86cc8a441960ed3517fc179b8fDeepak Gopal 261a81406ffca248d86cc8a441960ed3517fc179b8fDeepak Gopal @return True is supported; False otherwise 262a81406ffca248d86cc8a441960ed3517fc179b8fDeepak Gopal """ 263a81406ffca248d86cc8a441960ed3517fc179b8fDeepak Gopal return False 264a81406ffca248d86cc8a441960ed3517fc179b8fDeepak Gopal 265a81406ffca248d86cc8a441960ed3517fc179b8fDeepak Gopal 26602571fc97293dfe69c0586a927d117e33e198641Viral Modi def set_visibility(self, visible=True): 26700b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish self.add_item_to_command_list(self._set_visibility, (visible,), 1, 900) 26800b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish 26900b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish 27000b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish def _set_visibility(self, visible=True): 27100b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish int_value = 0 if visible else 1 27200b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish xpath = ('//input[@value="%d" and @name="closed_24g"]' % int_value) 27300b1beaed2e82b70b80b551276d38323c7ec6775Kris Rambish self.click_button_by_xpath(xpath, alert_handler=self._sec_alert) 274