| OLD | NEW |
| 1 #!/usr/bin/python | 1 #!/usr/bin/python |
| 2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 import glob | 6 import glob |
| 7 import logging | 7 import logging |
| 8 import os | 8 import os |
| 9 | 9 |
| 10 import pyauto_functional # Must be imported before pyauto | 10 import pyauto_functional # Must be imported before pyauto |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 pp = pprint.PrettyPrinter(indent=2) | 23 pp = pprint.PrettyPrinter(indent=2) |
| 24 while True: | 24 while True: |
| 25 raw_input('Hit <enter> to dump info.. ') | 25 raw_input('Hit <enter> to dump info.. ') |
| 26 pp.pprint(self.GetThemeInfo()) | 26 pp.pprint(self.GetThemeInfo()) |
| 27 | 27 |
| 28 def testSetTheme(self): | 28 def testSetTheme(self): |
| 29 """Verify theme install.""" | 29 """Verify theme install.""" |
| 30 self.assertFalse(self.GetThemeInfo()) # Verify there's no theme at startup | 30 self.assertFalse(self.GetThemeInfo()) # Verify there's no theme at startup |
| 31 crx_file = os.path.abspath( | 31 crx_file = os.path.abspath( |
| 32 os.path.join(self.DataDir(), 'extensions', 'theme.crx')) | 32 os.path.join(self.DataDir(), 'extensions', 'theme.crx')) |
| 33 self.assertTrue(self.SetTheme(pyauto.FilePath(crx_file))) | 33 self.assertTrue(self.SetTheme(crx_file)) |
| 34 # Verify "theme installed" infobar shows up | 34 # Verify "theme installed" infobar shows up |
| 35 self.assertTrue(self.WaitForInfobarCount(1)) | 35 self.assertTrue(self.WaitForInfobarCount(1)) |
| 36 theme = self.GetThemeInfo() | 36 theme = self.GetThemeInfo() |
| 37 self.assertEqual('camo theme', theme['name']) | 37 self.assertEqual('camo theme', theme['name']) |
| 38 self.assertTrue(self.GetBrowserInfo()['windows'][0]['tabs'][0]['infobars']) | 38 self.assertTrue(self.GetBrowserInfo()['windows'][0]['tabs'][0]['infobars']) |
| 39 | 39 |
| 40 def testThemeInFullScreen(self): | 40 def testThemeInFullScreen(self): |
| 41 """Verify theme can be installed in FullScreen mode.""" | 41 """Verify theme can be installed in FullScreen mode.""" |
| 42 self.ApplyAccelerator(pyauto.IDC_FULLSCREEN ) | 42 self.ApplyAccelerator(pyauto.IDC_FULLSCREEN ) |
| 43 self.assertFalse(self.GetThemeInfo()) # Verify there's no theme at startup | 43 self.assertFalse(self.GetThemeInfo()) # Verify there's no theme at startup |
| 44 crx_file = os.path.abspath( | 44 crx_file = os.path.abspath( |
| 45 os.path.join(self.DataDir(), 'extensions', 'theme.crx')) | 45 os.path.join(self.DataDir(), 'extensions', 'theme.crx')) |
| 46 self.assertTrue(self.SetTheme(pyauto.FilePath(crx_file))) | 46 self.assertTrue(self.SetTheme(crx_file)) |
| 47 # Verify "theme installed" infobar shows up | 47 # Verify "theme installed" infobar shows up |
| 48 self.assertTrue(self.WaitForInfobarCount(1)) | 48 self.assertTrue(self.WaitForInfobarCount(1)) |
| 49 theme = self.GetThemeInfo() | 49 theme = self.GetThemeInfo() |
| 50 self.assertEqual('camo theme', theme['name']) | 50 self.assertEqual('camo theme', theme['name']) |
| 51 | 51 |
| 52 def testThemeReset(self): | 52 def testThemeReset(self): |
| 53 """Verify theme reset.""" | 53 """Verify theme reset.""" |
| 54 crx_file = os.path.abspath( | 54 crx_file = os.path.abspath( |
| 55 os.path.join(self.DataDir(), 'extensions', 'theme.crx')) | 55 os.path.join(self.DataDir(), 'extensions', 'theme.crx')) |
| 56 self.assertTrue(self.SetTheme(pyauto.FilePath(crx_file))) | 56 self.assertTrue(self.SetTheme(crx_file)) |
| 57 self.assertTrue(self.ResetToDefaultTheme()) | 57 self.assertTrue(self.ResetToDefaultTheme()) |
| 58 self.assertFalse(self.GetThemeInfo()) | 58 self.assertFalse(self.GetThemeInfo()) |
| 59 | 59 |
| 60 def _ReturnCrashingThemes(self, themes, group_size, urls): | 60 def _ReturnCrashingThemes(self, themes, group_size, urls): |
| 61 """Install the given themes in groups of group_size and return the | 61 """Install the given themes in groups of group_size and return the |
| 62 group of themes that crashes (if any). | 62 group of themes that crashes (if any). |
| 63 | 63 |
| 64 Note: restarts the browser at the beginning of the function. | 64 Note: restarts the browser at the beginning of the function. |
| 65 | 65 |
| 66 Args: | 66 Args: |
| 67 themes: A list of themes to install. | 67 themes: A list of themes to install. |
| 68 group_size: The number of themes to install at one time. | 68 group_size: The number of themes to install at one time. |
| 69 urls: The list of urls to visit. | 69 urls: The list of urls to visit. |
| 70 """ | 70 """ |
| 71 self.RestartBrowser() | 71 self.RestartBrowser() |
| 72 curr_theme = 0 | 72 curr_theme = 0 |
| 73 num_themes = len(themes) | 73 num_themes = len(themes) |
| 74 | 74 |
| 75 while curr_theme < num_themes: | 75 while curr_theme < num_themes: |
| 76 logging.debug('New group of %d themes.' % group_size) | 76 logging.debug('New group of %d themes.' % group_size) |
| 77 group_end = curr_theme + group_size | 77 group_end = curr_theme + group_size |
| 78 this_group = themes[curr_theme:group_end] | 78 this_group = themes[curr_theme:group_end] |
| 79 | 79 |
| 80 # Apply each theme in this group. | 80 # Apply each theme in this group. |
| 81 for theme in this_group: | 81 for theme in this_group: |
| 82 logging.debug('Applying theme: %s' % theme) | 82 logging.debug('Applying theme: %s' % theme) |
| 83 self.assertTrue(self.SetTheme(pyauto.FilePath(theme)), | 83 self.assertTrue(self.SetTheme(theme), |
| 84 'Theme %s not installed.' % theme) | 84 'Theme %s not installed.' % theme) |
| 85 | 85 |
| 86 for url in urls: | 86 for url in urls: |
| 87 self.NavigateToURL(url) | 87 self.NavigateToURL(url) |
| 88 | 88 |
| 89 def _LogAndReturnCrashing(): | 89 def _LogAndReturnCrashing(): |
| 90 logging.debug('Crashing themes: %s' % this_group) | 90 logging.debug('Crashing themes: %s' % this_group) |
| 91 return this_group | 91 return this_group |
| 92 | 92 |
| 93 # Assert that there is at least 1 browser window. | 93 # Assert that there is at least 1 browser window. |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 131 failed_themes = self._ReturnCrashingThemes(failed_themes, group_size, | 131 failed_themes = self._ReturnCrashingThemes(failed_themes, group_size, |
| 132 urls) | 132 urls) |
| 133 group_size = group_size // 2 | 133 group_size = group_size // 2 |
| 134 | 134 |
| 135 self.assertFalse(failed_themes, | 135 self.assertFalse(failed_themes, |
| 136 'Theme(s) in failing group: %s' % failed_themes) | 136 'Theme(s) in failing group: %s' % failed_themes) |
| 137 | 137 |
| 138 | 138 |
| 139 if __name__ == '__main__': | 139 if __name__ == '__main__': |
| 140 pyauto_functional.Main() | 140 pyauto_functional.Main() |
| 141 | |
| OLD | NEW |