| Index: functional/plugins.py
|
| ===================================================================
|
| --- functional/plugins.py (revision 71402)
|
| +++ functional/plugins.py (working copy)
|
| @@ -139,6 +139,69 @@
|
| re.search(plugin_name, x['name'])])
|
| self.assertTrue(self._IsEnabled(plugin_name), plugin_name)
|
|
|
| + def testBlockAllPlugins(self):
|
| + """Verify that all the plugins can be blocked.
|
| + Verifying by checking that flash plugin was blocked.
|
| + """
|
| + flash_url = self.GetFileURLForPath(os.path.join(
|
| + self.DataDir(), 'plugin', 'flash-clicktoplay.html'))
|
| + self.NavigateToURL(flash_url)
|
| + flash_pid = self._GetPluginPID('Shockwave Flash')
|
| + self.assertTrue(flash_pid, msg='No plugin process for Shockwave Flash')
|
| + # Killing the flash process as it takes a while before the plugin
|
| + # process is terminated even though there are no tabs using it.
|
| + self.Kill(flash_pid)
|
| + self.assertTrue(self.WaitUntil(
|
| + lambda: self._GetPluginPID('Shockwave Flash') is None),
|
| + msg='Expected Shockwave Flash plugin to die after killing')
|
|
|
| + # Set the preference to block all plugins.
|
| + self.SetPrefs(pyauto.kDefaultContentSettings, {'plugins': 2})
|
| +
|
| + self.GetBrowserWindow(0).GetTab(0).Reload()
|
| + self.assertFalse(self._GetPluginPID('Shockwave Flash'),
|
| + msg='Plug-in not blocked.')
|
| +
|
| + def testAllowPluginException(self):
|
| + """Verify that plugins can be allowed on a domain by adding
|
| + an exception(s)."""
|
| + # Set the preference to block all plugins.
|
| + self.SetPrefs(pyauto.kDefaultContentSettings, {'plugins': 2})
|
| +
|
| + flash_url = self.GetFileURLForPath(os.path.join(
|
| + self.DataDir(), 'plugin', 'flash-clicktoplay.html'))
|
| + self.NavigateToURL(flash_url)
|
| + # Check that plugins are blocked.
|
| + self.assertFalse(self._GetPluginPID('Shockwave Flash'),
|
| + msg='Plug-in not blocked.')
|
| +
|
| + # Add an exception to allow plugins on hulu.com.
|
| + self.SetPrefs(pyauto.kContentSettingsPatterns,
|
| + {'[*.]hulu.com': {'plugins': 1}})
|
| + self.AppendTab(pyauto.GURL('http://www.hulu.com'))
|
| + self.assertTrue(self._GetPluginPID('Shockwave Flash'),
|
| + msg='No plugin process for Shockwave Flash')
|
| +
|
| + def testBlockPluginException(self):
|
| + """Verify that plugins can be blocked on a domain by adding
|
| + an exception(s)."""
|
| + # We are using the same live site in order to detect if the web page
|
| + # is using shockwave flash process
|
| + self.NavigateToURL('http://www.hulu.com')
|
| + pid = self._GetPluginPID('Shockwave Flash')
|
| + self.assertTrue(pid, msg='No plugin process for Shockwave Flash')
|
| + self.Kill(pid)
|
| + self.assertTrue(self.WaitUntil(
|
| + lambda: self._GetPluginPID('Shockwave Flash') is None),
|
| + msg='Expected Shockwave Flash plugin to die after killing')
|
| +
|
| + # Add an exception to block plugins on hulu.com.
|
| + self.SetPrefs(pyauto.kContentSettingsPatterns,
|
| + {'[*.]hulu.com': {'plugins': 2}})
|
| + self.GetBrowserWindow(0).GetTab(0).Reload()
|
| + self.assertFalse(self._GetPluginPID('Shockwave Flash'),
|
| + msg='Plug-in not blocked.')
|
| +
|
| +
|
| if __name__ == '__main__':
|
| pyauto_functional.Main()
|
|
|