Home | History | Annotate | Download | only in functional
      1 #!/usr/bin/env python
      2 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
      3 # Use of this source code is governed by a BSD-style license that can be
      4 # found in the LICENSE file.
      5 
      6 import pyauto_functional
      7 import chromeos_network  # pyauto_functional must come before chromeos_network
      8 
      9 
     10 class ChromeosWifiCompliance(chromeos_network.PyNetworkUITest):
     11   """Tests for ChromeOS wifi complaince.
     12 
     13   These tests should be run within vacinity of the power strip where the wifi
     14   routers are attached.
     15   """
     16 
     17   def _BasicConnectRouterCompliance(self, router_name):
     18     """Generic basic test routine for connecting to a router.
     19 
     20     Args:
     21       router_name: The name of the router.
     22     """
     23     self.InitWifiPowerStrip()
     24     router = self.GetRouterConfig(router_name)
     25     self.RouterPower(router_name, True)
     26 
     27     # If the wifi network is expected to be invisible, the following
     28     # line should timeout which is expected.
     29     wifi_visible = self.WaitUntilWifiNetworkAvailable(router['ssid'],
     30                                                  is_hidden=router.get('hidden'))
     31 
     32     # Note, we expect wifi_visible and 'hidden' status to be opposites.
     33     # The test fails if the network visibility is not as expected.
     34     if wifi_visible == router.get('hidden', False):
     35       self.fail('We expected wifi network "%s" to be %s, but it was not.' %
     36                 (router['ssid'],
     37                  {True: 'hidden', False: 'visible'}[router.get('hidden',
     38                  False)]))
     39 
     40     # Verify connect did not have any errors.
     41     error = self.ConnectToWifiRouter(router_name)
     42     self.assertFalse(error, 'Failed to connect to wifi network %s. '
     43                             'Reason: %s.' % (router['ssid'], error))
     44 
     45     # Verify the network we connected to.
     46     ssid = self.GetConnectedWifi()
     47     self.assertEqual(ssid, router['ssid'],
     48                      'Did not successfully connect to wifi network %s.' % ssid)
     49 
     50     self.DisconnectFromWifiNetwork()
     51 
     52   def testConnectBelkinG(self):
     53     """Test connecting to the Belkin G router."""
     54     self._BasicConnectRouterCompliance('Belkin_G')
     55 
     56   def testConnectBelkinNPlus(self):
     57     """Test connecting to the Belkin N+ router."""
     58     self._BasicConnectRouterCompliance('Belkin_N+')
     59 
     60   def testConnectDLinkN150(self):
     61     """Test connecting to the D-Link N150 router."""
     62     self._BasicConnectRouterCompliance('D-Link_N150')
     63 
     64   def testConnectLinksysE3000(self):
     65     """Test connecting to the Linksys E3000 router.
     66 
     67     The LinksysE3000 supports broadcasting of up to 2 SSID's.
     68     This test will try connecting to each of them one at a time.
     69     """
     70     self._BasicConnectRouterCompliance('LinksysE3000')
     71     self._BasicConnectRouterCompliance('LinksysE3000_2')
     72 
     73   def testConnectLinksysWRT54G2(self):
     74     """Test connecting to the Linksys WRT54G2 router."""
     75     self._BasicConnectRouterCompliance('Linksys_WRT54G2')
     76 
     77   def testConnectLinksysWRT54GL(self):
     78     """Test connecting to the LinksysWRT54GL router."""
     79     self._BasicConnectRouterCompliance('Linksys_WRT54GL')
     80 
     81   def testConnectNetgearN300(self):
     82     """Test connecting to the Netgear N300 router."""
     83     self._BasicConnectRouterCompliance('Netgear_N300')
     84 
     85   def testConnectNetgearWGR614(self):
     86     """Test connecting to the Netgear WGR 614 router."""
     87     self._BasicConnectRouterCompliance('Netgear_WGR614')
     88 
     89   def testConnectNfiniti(self):
     90     """Test connecting to the Nfiniti router."""
     91     self._BasicConnectRouterCompliance('Nfiniti')
     92 
     93   def testConnectSMCWBR145(self):
     94     """Test connecting to the SMC WBR 145 router."""
     95     self._BasicConnectRouterCompliance('SMC_WBR145')
     96 
     97   def testConnectTrendnet_639gr(self):
     98     """Test connecting to the Trendnet 639gr router.
     99 
    100     The LinksysE3000 supports broadcasting of up to 4 SSID's.
    101     This test will try connecting to each of them one at a time.
    102     """
    103     self._BasicConnectRouterCompliance('Trendnet_639gr')
    104     self._BasicConnectRouterCompliance('Trendnet_639gr_2')
    105     self._BasicConnectRouterCompliance('Trendnet_639gr_3')
    106     self._BasicConnectRouterCompliance('Trendnet_639gr_4')
    107 
    108 
    109 if __name__ == '__main__':
    110   pyauto_functional.Main()
    111