Index: chrome/test/functional/plugins_check.py |
=================================================================== |
--- chrome/test/functional/plugins_check.py (revision 153781) |
+++ chrome/test/functional/plugins_check.py (working copy) |
@@ -1,88 +0,0 @@ |
-#!/usr/bin/env python |
-# 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. |
- |
-import logging |
-import os |
-import sys |
- |
-import pyauto_functional # Must be imported before pyauto |
-import pyauto |
- |
- |
-class PluginsCheck(pyauto.PyUITest): |
- """TestCase for Plugins.""" |
- |
- def _ReadPluginsList(self, plugins_list_file): |
- """Read test plugins list from a file based on the test platform |
- |
- File contains list of plugins like, |
- [ |
- {u'name':'Shockwave Flash', u'enabled':True, u'version':u'10.2.154.9'} |
- {u'name':'Chrome PDF Viewer', u'enabled':True, u'version':u''} |
- ... |
- ] |
- """ |
- file_path = os.path.join(self.DataDir(), plugins_list_file) |
- return self.EvalDataFrom(file_path) |
- |
- def _RemoveNonApplicablePlugins(self, plugins_list): |
- """Removes plugins that do not apply to the given ChromeOS board. |
- Note: This function is only run on ChromeOS. |
- """ |
- new_list = [] |
- for plugin in plugins_list: |
- if self.ChromeOSBoard() in set(plugin['boards']): |
- plugin.pop('boards') |
- new_list.append(plugin) |
- return new_list |
- |
- def testPluginsStates(self): |
- """Verify plugins' versions and states.""" |
- if self.GetBrowserInfo()['properties']['branding'] != 'Google Chrome': |
- return |
- if self.IsWin(): |
- plugins_list = self._ReadPluginsList('win_plugins_list.txt') |
- elif self.IsMac(): |
- plugins_list = self._ReadPluginsList('mac_plugins_list.txt') |
- elif self.IsChromeOS(): |
- plugins_list = self._ReadPluginsList('chromeos_plugins_list.txt') |
- plugins_list = self._RemoveNonApplicablePlugins(plugins_list) |
- elif self.IsLinux(): |
- # TODO(rohitbm) |
- # Add plugins_check support for Linux |
- logging.debug('Not performing plugins check on linux') |
- return |
- |
- browser_plugins_list = self.GetPluginsInfo().Plugins() |
- for plugin in plugins_list: |
- # We will compare the keys available in the plugin list |
- found_plugin = False |
- for browser_plugin in browser_plugins_list: |
- whitelist_keys = plugin.keys() |
- if 'unique_key' in plugin: |
- unique_key = plugin['unique_key'] |
- whitelist_keys.remove('unique_key') |
- else: |
- unique_key = 'name' |
- if browser_plugin[unique_key] == plugin[unique_key]: |
- found_plugin = True |
- for key in whitelist_keys: |
- if browser_plugin[key] != plugin[key]: |
- self.assertEqual(browser_plugin[key], plugin[key], 'The following' |
- ' plugin attributes do not match the whitelist:' |
- '\n\tplugin:\n%s\n\tlist:\n%s' |
- % (self.pformat(browser_plugin), self.pformat(plugin))) |
- break; |
- self.assertTrue(found_plugin, 'The following plugin in the whitelist ' |
- 'does not match any on the system:\n%s' % self.pformat(plugin)) |
- if self.IsChromeOS(): |
- self.assertEqual(len(plugins_list), len(browser_plugins_list), |
- 'The number of plugins on the system do not match the number in the ' |
- 'whitelist.\n\tSystem list: %s\n\tWhitelist: %s' % |
- (self.pformat(browser_plugins_list), self.pformat(plugins_list))) |
- |
- |
-if __name__ == '__main__': |
- pyauto_functional.Main() |