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] |