| # Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import logging |
| import urlparse |
| |
| import linksyse2100_ap_configurator |
| |
| |
| class LinksysWRT160APConfigurator(linksyse2100_ap_configurator. |
| Linksyse2100APConfigurator): |
| """Derived class to control Linksys WRT160Nv3 router.""" |
| |
| def navigate_to_page(self, page_number): |
| if page_number == 1: |
| page_url = urlparse.urljoin(self.admin_interface_url, |
| 'Wireless_Basic.asp') |
| self.get_url(page_url, page_title='Settngs') |
| elif page_number == 2: |
| page_url = urlparse.urljoin(self.admin_interface_url, |
| 'WL_WPATable.asp') |
| self.get_url(page_url, page_title='Security') |
| else: |
| raise RuntimeError('Invalid page number passed. Number of pages ' |
| '%d, page value sent was %d' % |
| (self.get_number_of_pages(), page_number)) |
| |
| |
| def _set_channel(self, channel): |
| position = self._get_channel_popup_position(channel) |
| xpath = '//select[@name="wl_schannel"]' |
| channels = ['Auto', '1', '2', '3', '4', '5', '6', '7', '8', |
| '9', '10', '11'] |
| self.select_item_from_popup_by_xpath(channels[position], xpath) |
| |
| |
| def _set_channel_width(self, channel_wid): |
| channel_width_choice = ['Auto (20 MHz or 40 MHz)', '20MHz only'] |
| xpath = '//select[@name="_wl_nbw"]' |
| self.select_item_from_popup_by_xpath(channel_width_choice[channel_wid], |
| xpath) |
| |
| |
| def _set_security_wpapsk(self, security, shared_key, update_interval=3600): |
| if update_interval not in range(600, 7201): |
| logging.info('The update interval should be between 600 and 7200.' |
| 'Setting the interval to default (3600)') |
| update_interval = 3600 |
| super(LinksysWRT160APConfigurator, self)._set_security_wpapsk(security, |
| shared_key, update_interval) |
| text = '//input[@name="wl_wpa_gtk_rekey"]' |
| self.set_content_of_text_field_by_xpath(update_interval, text, |
| abort_check=True) |