| Index: chrome/test/pyautolib/omnibox_info.py
|
| ===================================================================
|
| --- chrome/test/pyautolib/omnibox_info.py (revision 261231)
|
| +++ chrome/test/pyautolib/omnibox_info.py (working copy)
|
| @@ -1,140 +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 Omnibox.
|
| -
|
| -Obtain one of these from PyUITestSuite::GetOmniboxInfo() call.
|
| -
|
| -Example:
|
| -class MyTest(pyauto.PyUITest):
|
| - def testBasic(self):
|
| - info = self.OmniboxInfo() # fetch omnibox snapshot
|
| - print info.Matches()
|
| -
|
| -See more tests in chrome/test/functional/omnibox.py.
|
| -"""
|
| -
|
| -import simplejson as json
|
| -
|
| -from pyauto_errors import JSONInterfaceError
|
| -
|
| -
|
| -class OmniboxInfo(object):
|
| - """Represent info for Chromium Omnibox.
|
| -
|
| - Info contains:
|
| - - a list of matches in the same order as you'd see in the omnibox,
|
| - - a dictionary of properties related to the omnibox.
|
| -
|
| - Sample info text:
|
| -
|
| - { u'matches': [
|
| - {
|
| - u'contents': u'google',
|
| - u'description': u'Google Search',
|
| - u'destination_url': u'http://www.google.com/search?aq=f&'
|
| - 'sourceid=chrome&ie=UTF-8&q=google',
|
| - u'starred': False,
|
| - u'type': u'search-what-you-typed'},
|
| - {
|
| - u'contents': u'maps.google.com/',
|
| - u'description': u'Google Maps',
|
| - u'destination_url': u'http://maps.google.com/',
|
| - u'starred': False,
|
| - u'type': u'navsuggest'},
|
| - { u'contents': u'google maps',
|
| - u'description': u'',
|
| - u'destination_url': u'http://www.google.com/search?aq=0&oq=google&'
|
| - 'sourceid=chrome&ie=UTF-8&q=google+maps',
|
| - u'starred': False,
|
| - u'type': u'search-suggest'},
|
| - { u'contents': u'google earth',
|
| - u'description': u'',
|
| - u'destination_url': u'http://www.google.com/search?aq=1&oq=google&'
|
| - 'sourceid=chrome&ie=UTF-8&q=google+earth',
|
| - u'starred': False,
|
| - u'type': u'search-suggest'},
|
| - { u'contents': u'Search Google for <enter query>',
|
| - u'description': u'(Keyword: google.com)',
|
| - u'destination_url': u'',
|
| - u'starred': False,
|
| - u'type': u'search-other-engine'}],
|
| -
|
| - u'properties': { u'has_focus': True,
|
| - u'keyword': u'',
|
| - u'query_in_progress': False,
|
| - u'text': u'google'}}
|
| - """
|
| - def __init__(self, omnibox_dict):
|
| - """Initialize a OmniboxInfo from a json string.
|
| -
|
| - Args:
|
| - omnibox_dict: returned by an IPC call for the command 'GetOmniboxInfo'.
|
| -
|
| - Raises:
|
| - pyauto_errors.JSONInterfaceError if the automation call returns an error.
|
| - """
|
| - # JSON string prepared in GetOmniboxInfo() in automation_provider.cc
|
| - self.omniboxdict = omnibox_dict
|
| - if self.omniboxdict.has_key('error'):
|
| - raise JSONInterfaceError(self.omniboxdict['error'])
|
| -
|
| - def Matches(self):
|
| - """Get omnibox matches.
|
| -
|
| - Returns:
|
| - a list of omnibox match items.
|
| - """
|
| - return self.omniboxdict.get('matches', [])
|
| -
|
| - def MatchesWithAttributes(self, attr_dict):
|
| - """Find all omnibox matches which match the attributes in |attr_dict|.
|
| -
|
| - Args:
|
| - attr_dict: a dictionary of attributes to be satisfied.
|
| - All attributes in the given dictionary should be satisfied.
|
| - example:
|
| - { 'destiantion_url': 'http://www.google.com/',
|
| - 'description': 'Google' }
|
| -
|
| - Returns:
|
| - a list of omnibox match items.
|
| - """
|
| - out = []
|
| - for item in self.Matches():
|
| - matched = True
|
| - for key, val in attr_dict.iteritems():
|
| - if not item.has_key(key) or item[key] != val:
|
| - matched = False
|
| - if matched:
|
| - out.append(item)
|
| - return out
|
| -
|
| - def Properties(self, key=None):
|
| - """Get the properties
|
| -
|
| - Args:
|
| - key: if specified, value for the given property is returned.
|
| -
|
| - Returns:
|
| - a dictionary of properties if no key is given, OR
|
| - value corresponding to a particular property if key is given
|
| - """
|
| - all = self.omniboxdict.get('properties')
|
| - if not key:
|
| - return all
|
| - return all.get(key)
|
| -
|
| - def Text(self):
|
| - """Get the text in the omnibox.
|
| -
|
| - This need not be the same as the user-inputted text, since omnibox may
|
| - autocomplete some URLs, or the user may move omnibox popup selection
|
| - up/down.
|
| - """
|
| - return self.Properties('text')
|
| -
|
| - def IsQueryInProgress(self):
|
| - """Determine if a query is in progress."""
|
| - return self.Properties('query_in_progress')
|
|
|