| Index: chrome/test/pyautolib/plugins_info.py
|
| ===================================================================
|
| --- chrome/test/pyautolib/plugins_info.py (revision 261231)
|
| +++ chrome/test/pyautolib/plugins_info.py (working copy)
|
| @@ -1,112 +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 Plugins info.
|
| -
|
| -This is the info available at about:plugins.
|
| -Obtain one of these from PyUITestSuite::GetPluginsInfo() call.
|
| -
|
| -Example:
|
| -class MyTest(pyauto.PyUITest):
|
| - def testBasic(self):
|
| - info = self.GetPluginsInfo() # fetch plugins snapshot
|
| - print info.Plugins()
|
| -
|
| -See more examples in chrome/test/functional/plugins.py.
|
| -"""
|
| -
|
| -import simplejson as json
|
| -
|
| -from pyauto_errors import JSONInterfaceError
|
| -
|
| -
|
| -class PluginsInfo(object):
|
| - """Represent info for Chromium plugins.
|
| -
|
| - The info is represented as a list of dictionaries, one for each plugin.
|
| - """
|
| - def __init__(self, plugins_dict):
|
| - """Initialize a PluginsInfo from a json string.
|
| -
|
| - Args:
|
| - plugins_dict: a dictionary returned by the automation command
|
| - 'GetPluginsInfo'.
|
| -
|
| - Raises:
|
| - pyauto_errors.JSONInterfaceError if the automation call returns an error.
|
| - """
|
| - # JSON string prepared in GetPluginsInfo() in automation_provider.cc
|
| - self.pluginsdict = plugins_dict
|
| - if self.pluginsdict.has_key('error'):
|
| - raise JSONInterfaceError(self.pluginsdict['error'])
|
| -
|
| - def Plugins(self):
|
| - """Get plugins.
|
| -
|
| - Returns:
|
| - a list of plugins info
|
| - Sample:
|
| - [ { u'desc': u'Shockwave Flash 10.0 r45',
|
| - u'enabled': True,
|
| - u'mimeTypes': [ { u'description': u'Shockwave Flash',
|
| - u'fileExtensions': [u'swf'],
|
| - u'mimeType': u'application/x-shockwave-flash'},
|
| - { u'description': u'FutureSplash Player',
|
| - u'fileExtensions': [u'spl'],
|
| - u'mimeType': u'application/futuresplash'}],
|
| - u'name': u'Shockwave Flash',
|
| - u'path': u'/Library/Internet Plug-Ins/Flash Player.plugin',
|
| - u'version': u'10.0.45.2'},
|
| - { u'desc': u'Version 1.1.2.9282',
|
| - u'enabled': True,
|
| - u'mimeTypes': [ { u'description': u'Google voice and video chat',
|
| - u'fileExtensions': [u'googletalk'],
|
| - u'mimeType': u'application/googletalk'}],
|
| - u'name': u'Google Talk NPAPI Plugin',
|
| - u'path': u'/Library/Internet Plug-Ins/googletalkbrowserplugin.plugin',
|
| - u'version': u'1.1.2.9282'},
|
| - ...,
|
| - ...,
|
| - ]
|
| - """
|
| - return self.pluginsdict.get('plugins', [])
|
| -
|
| - def PluginForPath(self, path):
|
| - """Get plugin info for the given plugin path.
|
| -
|
| - Returns:
|
| - a dictionary of info for the plugin.
|
| - """
|
| - got = filter(lambda x: x['path'] == path, self.Plugins())
|
| - if not got: return None
|
| - return got[0]
|
| -
|
| - def PluginForName(self, name):
|
| - """Get plugin info for the given name.
|
| -
|
| - There might be several plugins with the same name.
|
| -
|
| - Args:
|
| - name: the name for which to look for.
|
| -
|
| - Returns:
|
| - a list of info dictionaries for each plugin found with the given name.
|
| - """
|
| - return filter(lambda x: x['name'] == name, self.Plugins())
|
| -
|
| - def FirstPluginForName(self, name):
|
| - """Get plugin info for the first plugin with the given name.
|
| -
|
| - This is useful in case there are multiple plugins for a name.
|
| -
|
| - Args:
|
| - name: the name for which to look for.
|
| -
|
| - Returns:
|
| - a plugin info dictionary
|
| - None, if not found
|
| - """
|
| - all = self.PluginForName(name)
|
| - if not all: return None
|
| - return all[0]
|
|
|