Home | History | Annotate | Download | only in ap_configurators
      1 # Copyright (c) 2013 The Chromium 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 import logging
      6 import urlparse
      7 
      8 import linksyse2100_ap_configurator
      9 
     10 
     11 class LinksysWRT160APConfigurator(linksyse2100_ap_configurator.
     12                                    Linksyse2100APConfigurator):
     13     """Derived class to control Linksys WRT160Nv3 router."""
     14 
     15     def navigate_to_page(self, page_number):
     16         if page_number == 1:
     17             page_url = urlparse.urljoin(self.admin_interface_url,
     18                                         'Wireless_Basic.asp')
     19             self.get_url(page_url, page_title='Settngs')
     20         elif page_number == 2:
     21             page_url = urlparse.urljoin(self.admin_interface_url,
     22                                         'WL_WPATable.asp')
     23             self.get_url(page_url, page_title='Security')
     24         else:
     25             raise RuntimeError('Invalid page number passed. Number of pages '
     26                                '%d, page value sent was %d' %
     27                                (self.get_number_of_pages(), page_number))
     28 
     29 
     30     def _set_channel(self, channel):
     31         position = self._get_channel_popup_position(channel)
     32         xpath = '//select[@name="wl_schannel"]'
     33         channels = ['Auto', '1', '2', '3', '4', '5', '6', '7', '8',
     34                     '9', '10', '11']
     35         self.select_item_from_popup_by_xpath(channels[position], xpath)
     36 
     37 
     38     def _set_channel_width(self, channel_wid):
     39         channel_width_choice = ['Auto (20 MHz or 40 MHz)', '20MHz only']
     40         xpath = '//select[@name="_wl_nbw"]'
     41         self.select_item_from_popup_by_xpath(channel_width_choice[channel_wid],
     42                                              xpath)
     43 
     44 
     45     def _set_security_wpapsk(self, security, shared_key, update_interval=3600):
     46         if update_interval not in range(600, 7201):
     47            logging.info('The update interval should be between 600 and 7200.'
     48                        'Setting the interval to default (3600)')
     49            update_interval = 3600
     50         super(LinksysWRT160APConfigurator, self)._set_security_wpapsk(security,
     51                                           shared_key, update_interval)
     52         text = '//input[@name="wl_wpa_gtk_rekey"]'
     53         self.set_content_of_text_field_by_xpath(update_interval, text,
     54                                                 abort_check=True)
     55