• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2013 The Chromium OS 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
5import os
6
7from autotest_lib.client.bin import test
8from autotest_lib.client.common_lib import error
9from autotest_lib.client.cros.networking import shill_context
10from autotest_lib.client.cros.networking import shill_proxy
11
12class network_DefaultProfileServices(test.test):
13    """The Default Profile Services class.
14
15    Wipe the default profile, start shill, configure a service, restart
16    shill, and check that the service exists.
17
18    The service name is chosen such that it is unlikely match any SSID
19    that is present over-the-air.
20
21    """
22    DEFAULT_PROFILE_PATH = '/var/cache/shill/default.profile'
23    OUR_SSID = 'org.chromium.DfltPrflSrvcsTest'
24    version = 1
25
26
27    def run_once(self):
28        """Test main loop."""
29        with shill_context.stopped_shill():
30            os.remove(self.DEFAULT_PROFILE_PATH)
31        shill = shill_proxy.ShillProxy.get_proxy()
32        if shill is None:
33            raise error.TestFail('Could not connect to shill')
34
35        shill.manager.PopAllUserProfiles()
36        path = shill.configure_service({
37                shill.SERVICE_PROPERTY_TYPE: 'wifi',
38                shill.SERVICE_PROPERTY_MODE: 'managed',
39                shill.SERVICE_PROPERTY_SSID: self.OUR_SSID,
40                shill.SERVICE_PROPERTY_HIDDEN: True,
41                shill.SERVICE_PROPERTY_SECURITY_CLASS: 'none',
42                })
43
44        with shill_context.stopped_shill():
45            # We don't actually need to do anything while shill is
46            # stopped. We just want shill to be restarted.
47            pass
48        shill = shill_proxy.ShillProxy.get_proxy()
49        if shill is None:
50            raise error.TestFail('Could not connect to shill')
51
52        shill.manager.PopAllUserProfiles()
53        service = shill.find_object('AnyService',
54                                    {'Name': self.OUR_SSID})
55        if not service:
56            raise error.TestFail('Network not found after restart.')
57