| Index: chrome/test/pyautolib/prefs_info.py
|
| ===================================================================
|
| --- chrome/test/pyautolib/prefs_info.py (revision 261231)
|
| +++ chrome/test/pyautolib/prefs_info.py (working copy)
|
| @@ -1,99 +0,0 @@
|
| -# Copyright (c) 2011 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.
|
| -
|
| -"""Python representation for Chromium Preferences.
|
| -
|
| -Obtain one of these from a call to PyUITest::GetPrefsInfo() or
|
| -PyUITest::GetLocalStatePrefsInfo().
|
| -
|
| -Example:
|
| -class MyTest(pyauto.PyUITest):
|
| - def testBasic(self):
|
| - info = self.GetPrefsInfo() # fetch prefs snapshot
|
| - print info.Prefs() # all prefs
|
| - print info.Prefs('session.restore_on_startup') # a single pref
|
| -
|
| -See more tests in chrome/test/functional/prefs.py.
|
| -"""
|
| -
|
| -import simplejson as json
|
| -
|
| -from pyauto_errors import JSONInterfaceError
|
| -
|
| -
|
| -class PrefsInfo(object):
|
| - """Represent info for Chromium preferences.
|
| -
|
| - The info is represented as a hierarchy of prefs values.
|
| - The values could be plain (integer, bool, float) or complex (like
|
| - dictionary, list).
|
| - """
|
| - def __init__(self, prefs_dict):
|
| - """Initialize a PrefsInfo from a json string.
|
| -
|
| - Args:
|
| - prefs_dict: a dictionary as returned by the IPC command 'GetPrefsInfo'.
|
| - A typical dict representing prefs snapshot looks like:
|
| - { u'prefs':
|
| - { u'alternate_error_pages': {u'enabled': True},
|
| - u'autofill': { u'auxiliary_profiles_enabled': False,
|
| - u'default_creditcard': u'',
|
| - u'default_profile': u'',
|
| - u'enabled': True,
|
| - u'infobar_shown': False,
|
| - u'negative_upload_rate': 0.01,
|
| - u'positive_upload_rate': 0.01},
|
| - u'bookmark_bar': {u'show_on_all_tabs': False},
|
| - ...
|
| - ...
|
| - }
|
| - }
|
| -
|
| - Raises:
|
| - pyauto_errors.JSONInterfaceError if the automation call returns an error.
|
| - """
|
| - # JSON string prepared in PrefsInfo() in automation_provider.cc
|
| - self.prefsdict = prefs_dict
|
| - if self.prefsdict.has_key('error'):
|
| - raise JSONInterfaceError(self.prefsdict['error'])
|
| -
|
| - def Prefs(self, path=None):
|
| - """Get preferences.
|
| -
|
| - The preference dictionary (when using path=None) looks like:
|
| -
|
| - { u'alternate_error_pages': {u'enabled': True},
|
| - u'autofill': { u'auxiliary_profiles_enabled': False,
|
| - u'default_creditcard': u'',
|
| - u'default_profile': u'',
|
| - u'enabled': True,
|
| - u'infobar_shown': False,
|
| - u'negative_upload_rate': 0.01,
|
| - u'positive_upload_rate': 0.01},
|
| - u'bookmark_bar': {u'show_on_all_tabs': False},
|
| - ...
|
| - ...
|
| - }
|
| -
|
| - In this case, to fetch the preference value for autofill enabled, use
|
| - 'autofill.enabled' as the path.
|
| -
|
| - Args:
|
| - path: If specified, return the preference item for the given path.
|
| - path is a dot-separated string like "session.restore_on_startup".
|
| - One of the equivalent names in chrome/common/pref_names.h could
|
| - also be used.
|
| -
|
| - Returns:
|
| - preference value. It could be a dictionary (like the example above), a
|
| - list or a plain value.
|
| - None, if prefernece for path not found (if path is given).
|
| - """
|
| - all = self.prefsdict.get('prefs', {})
|
| - if not path: # No path given. Return all prefs.
|
| - return all
|
| - for part in path.split('.'): # Narrow down to the requested prefs path.
|
| - all = all.get(part)
|
| - if all is None: return None
|
| - return all
|
|
|