# Copyright (c) 2014 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 ap_spec import linksys_ap_configurator class LinksysWRT54GS2APConfigurator( linksys_ap_configurator.LinksysAPConfigurator): """Derived class to control Linksys WRT54GS2 router.""" def get_supported_modes(self): return [{'band': ap_spec.BAND_2GHZ, 'modes': [ap_spec.MODE_B, ap_spec.MODE_G, ap_spec.MODE_M]}] def _set_mode(self, mode): mode_mapping = {ap_spec.MODE_B: 'B-Only', ap_spec.MODE_G: 'G-Only', ap_spec.MODE_M: 'Mixed', 'Disabled' : 'Disabled'} mode_name = None if mode in self.get_supported_modes()[0]['modes']: mode_name = mode_mapping.get(mode) else: mode_name = mode if not mode_name: raise RuntimeError('The mode selected %d is not supported by router' ' %s.', hex(mode), self.name) xpath = ('//select[@name="wl_net_mode"]') self.select_item_from_popup_by_xpath(mode_name, xpath)