| Index: chrome/test/pyautolib/chromeos_network.py
|
| ===================================================================
|
| --- chrome/test/pyautolib/chromeos_network.py (revision 261231)
|
| +++ chrome/test/pyautolib/chromeos_network.py (working copy)
|
| @@ -1,100 +0,0 @@
|
| -# Copyright (c) 2012 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 copy
|
| -import dbus
|
| -import logging
|
| -import os
|
| -import time
|
| -
|
| -from chromeos.power_strip import PowerStrip
|
| -import pyauto
|
| -import pyauto_errors
|
| -
|
| -class PyNetworkUITest(pyauto.PyUITest):
|
| - """A subclass of PyUITest for Chrome OS network tests.
|
| -
|
| - A subclass of PyUITest that automatically sets the flimflam
|
| - priorities to put wifi connections first before starting tests.
|
| - This is for convenience when writing wifi tests.
|
| - """
|
| - _ROUTER_CONFIG_FILE = os.path.join(pyauto.PyUITest.DataDir(),
|
| - 'pyauto_private', 'chromeos', 'network',
|
| - 'wifi_testbed_config')
|
| - _FLIMFLAM_PATH = 'org.chromium.flimflam'
|
| -
|
| - def setUp(self):
|
| - self.CleanupFlimflamDirsOnChromeOS()
|
| - # Move ethernet to the end of the flimflam priority list,
|
| - # effectively hiding any ssh connections that the
|
| - # test harness might be using and putting wifi ahead.
|
| - self._PushServiceOrder('wifi,ethernet')
|
| - self._ParseDefaultRoutingTable()
|
| - pyauto.PyUITest.setUp(self)
|
| -
|
| - def tearDown(self):
|
| - pyauto.PyUITest.tearDown(self)
|
| - self._PopServiceOrder()
|
| - # Remove the route entry for the power strip.
|
| - if hasattr(self, 'ps_route_entry'):
|
| - os.system('route del -net %(ipaddress)s gateway %(gateway)s netmask '
|
| - '%(netmask)s dev %(iface)s' % self.ps_route_entry)
|
| -
|
| - def _GetFlimflamManager(self):
|
| - _proxy = dbus.SystemBus().get_object(self._FLIMFLAM_PATH, '/')
|
| - return dbus.Interface(_proxy, self._FLIMFLAM_PATH + '.Manager')
|
| -
|
| - def _ParseDefaultRoutingTable(self):
|
| - """Creates and stores a dictionary of the default routing paths."""
|
| - route_table_headers = ['destination', 'gateway', 'genmask', 'flags',
|
| - 'metric', 'ref', 'use', 'iface']
|
| - routes = os.popen('route -n | egrep "^0.0.0.0"').read()
|
| - routes = [interface.split() for interface in routes.split('\n')][:-1]
|
| - self.default_routes = {}
|
| - for iface in routes:
|
| - self.default_routes[iface[-1]] = dict(zip(route_table_headers, iface))
|
| -
|
| - def _SetServiceOrder(self, service_order):
|
| - self._GetFlimflamManager().SetServiceOrder(service_order)
|
| - # Flimflam throws a dbus exception if device is already disabled. This
|
| - # is not an error.
|
| - try:
|
| - self._GetFlimflamManager().DisableTechnology('wifi')
|
| - except dbus.DBusException as e:
|
| - if 'org.chromium.flimflam.Error.AlreadyDisabled' not in str(e):
|
| - raise e
|
| - self._GetFlimflamManager().EnableTechnology('wifi')
|
| -
|
| - def _PushServiceOrder(self, service_order):
|
| - self._old_service_order = self._GetFlimflamManager().GetServiceOrder()
|
| - self._SetServiceOrder(service_order)
|
| - service_order = service_order.split(',')
|
| -
|
| - # Verify services that are present in both the service_order
|
| - # we set and the one retrieved from device are in the correct order.
|
| - set_service_order = self._GetFlimflamManager().GetServiceOrder().split(',')
|
| - common_service = set(service_order) & set(set_service_order)
|
| -
|
| - service_order = [s for s in service_order if s in common_service]
|
| - set_service_order = [s for s in set_service_order if s in common_service]
|
| -
|
| - assert service_order == set_service_order, \
|
| - 'Flimflam service order not set properly. %s != %s' % \
|
| - (service_order, set_service_order)
|
| -
|
| - def _PopServiceOrder(self):
|
| - self._SetServiceOrder(self._old_service_order)
|
| -
|
| - # Verify services that are present in both the service_order
|
| - # we set and the one retrieved from device are in the correct order.
|
| - old_service_order = self._old_service_order.split(',')
|
| - set_service_order = self._GetFlimflamManager().GetServiceOrder().split(',')
|
| - common_service = set(old_service_order) & set(set_service_order)
|
| -
|
| - old_service_order = [s for s in old_service_order if s in common_service]
|
| - set_service_order = [s for s in set_service_order if s in common_service]
|
| -
|
| - assert old_service_order == set_service_order, \
|
| - 'Flimflam service order not set properly. %s != %s' % \
|
| - (old_service_order, set_service_order)
|
|
|