Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Side by Side Diff: chrome/test/functional/protector.py

Issue 10066013: [protector] Homepage UI. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: License update. Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/chrome_tests.gypi ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 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 pyauto_functional # Must be imported first 6 import pyauto_functional # Must be imported first
7 import pyauto 7 import pyauto
8 import test_utils 8 import test_utils
9 9
10 import json 10 import json
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 173
174 Args: 174 Args:
175 pinned_tabs: list(str) with a list of pinned tabs URLs. 175 pinned_tabs: list(str) with a list of pinned tabs URLs.
176 """ 176 """
177 prefs = self._LoadPreferences() 177 prefs = self._LoadPreferences()
178 prefs['pinned_tabs'] = [] 178 prefs['pinned_tabs'] = []
179 for tab in pinned_tabs: 179 for tab in pinned_tabs:
180 prefs['pinned_tabs'].append({'url': tab}) 180 prefs['pinned_tabs'].append({'url': tab})
181 self._WritePreferences(prefs) 181 self._WritePreferences(prefs)
182 182
183 def _ChangeHomepage(self, homepage, homepage_is_ntp, show_homepage_button):
184 """Changes homepage settings.
185
186 Args:
187 homepage: new homepage URL (str),
188 homepage_is_ntp: whether homepage is NTP.
189 show_homepage_button: whether homepage button is visible.
190 """
191 prefs = self._LoadPreferences()
192 prefs['homepage'] = homepage
193 prefs['homepage_is_newtabpage'] = homepage_is_ntp
194 prefs['browser']['show_home_button'] = show_homepage_button
195 self._WritePreferences(prefs)
196
183 def _AssertSingleTabOpen(self, url): 197 def _AssertSingleTabOpen(self, url):
184 """Asserts that a single tab with given url is open. 198 """Asserts that a single tab with given url is open.
185 199
186 Args: 200 Args:
187 url: URL of the single tab. 201 url: URL of the single tab.
188 """ 202 """
189 info = self.GetBrowserInfo() 203 info = self.GetBrowserInfo()
190 self.assertEqual(1, len(info['windows'])) # one window 204 self.assertEqual(1, len(info['windows'])) # one window
191 self.assertEqual(1, len(info['windows'][0]['tabs'])) # one tab 205 self.assertEqual(1, len(info['windows'][0]['tabs'])) # one tab
192 self.assertEqual(url, info['windows'][0]['tabs'][0]['url']) 206 self.assertEqual(url, info['windows'][0]['tabs'][0]['url'])
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 self.GetPrefsInfo().Prefs(pyauto.kRestoreOnStartup)) 406 self.GetPrefsInfo().Prefs(pyauto.kRestoreOnStartup))
393 # Verify that open tabs are consistent with restored prefs. 407 # Verify that open tabs are consistent with restored prefs.
394 self._AssertSingleTabOpen(previous_url) 408 self._AssertSingleTabOpen(previous_url)
395 self.ApplyProtectorChange() 409 self.ApplyProtectorChange()
396 # Now the new preference values are active. 410 # Now the new preference values are active.
397 self.assertEqual(self._SESSION_STARTUP_URLS, 411 self.assertEqual(self._SESSION_STARTUP_URLS,
398 self.GetPrefsInfo().Prefs(pyauto.kRestoreOnStartup)) 412 self.GetPrefsInfo().Prefs(pyauto.kRestoreOnStartup))
399 # No longer showing the change. 413 # No longer showing the change.
400 self.assertFalse(self.GetProtectorState()['showing_change']) 414 self.assertFalse(self.GetProtectorState()['showing_change'])
401 415
402 def testDetectSessionStartupChangeAndApply(self): 416 def testDetectSessionStartupChangeAndDiscard(self):
403 """Test for detecting and discarding a session startup pref change.""" 417 """Test for detecting and discarding a session startup pref change."""
404 # Set startup prefs to restoring last open tabs. 418 # Set startup prefs to restoring last open tabs.
405 self.SetPrefs(pyauto.kRestoreOnStartup, self._SESSION_STARTUP_LAST) 419 self.SetPrefs(pyauto.kRestoreOnStartup, self._SESSION_STARTUP_LAST)
406 # Restart browser with startup prefs set to open google.com. 420 # Restart browser with startup prefs set to open google.com.
407 self.RestartBrowser( 421 self.RestartBrowser(
408 clear_profile=False, 422 clear_profile=False,
409 pre_launch_hook=lambda: self._ChangeSessionStartupPrefs( 423 pre_launch_hook=lambda: self._ChangeSessionStartupPrefs(
410 self._SESSION_STARTUP_URLS, 424 self._SESSION_STARTUP_URLS,
411 startup_urls=['http://www.google.com'])) 425 startup_urls=['http://www.google.com']))
412 # The change must be detected by Protector. 426 # The change must be detected by Protector.
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
521 self.DiscardProtectorChange() 535 self.DiscardProtectorChange()
522 # No longer showing the change. 536 # No longer showing the change.
523 self.assertFalse(self.GetProtectorState()['showing_change']) 537 self.assertFalse(self.GetProtectorState()['showing_change'])
524 # Pinned tabs are not opened after another restart. 538 # Pinned tabs are not opened after another restart.
525 self.RestartBrowser(clear_profile=False) 539 self.RestartBrowser(clear_profile=False)
526 self._AssertSingleTabOpen('chrome://newtab/') 540 self._AssertSingleTabOpen('chrome://newtab/')
527 # Not showing the change after a restart. 541 # Not showing the change after a restart.
528 self.assertFalse(self.GetProtectorState()['showing_change']) 542 self.assertFalse(self.GetProtectorState()['showing_change'])
529 543
530 544
545 class ProtectorHomepageTest(BaseProtectorTest):
546 """Test suite for homepage changes with Protector enabled."""
547
548 def testDetectHomepageChangeWhenButtonNotShown(self):
549 """Test that homepage change is detected and reverted when homepage button
550 is set to not be shown.
551 """
552 previous_homepage = 'http://example.com/'
553 self.SetPrefs(pyauto.kHomePage, previous_homepage)
554 self.SetPrefs(pyauto.kHomePageIsNewTabPage, False)
555 self.SetPrefs(pyauto.kShowHomeButton, False)
556 self.RestartBrowser(
557 clear_profile=False,
558 pre_launch_hook=lambda: self._ChangeHomepage(
559 'http://example.info/', False, False))
560 # Change has been automatically reverted, no bubble shown.
561 self.assertFalse(self.GetProtectorState()['showing_change'])
562 self.assertEquals(previous_homepage,
563 self.GetPrefsInfo().Prefs(pyauto.kHomePage))
564
565 def testDetectHomepageChangeAndApply(self):
566 """Test that homepage change is detected and can be applied."""
567 previous_homepage = 'http://example.com/'
568 new_homepage = 'http://example.info/'
569 self.SetPrefs(pyauto.kHomePage, previous_homepage)
570 self.SetPrefs(pyauto.kHomePageIsNewTabPage, False)
571 self.SetPrefs(pyauto.kShowHomeButton, False)
572 self.RestartBrowser(
573 clear_profile=False,
574 pre_launch_hook=lambda: self._ChangeHomepage(new_homepage, False, True))
575 # The change must be detected by Protector.
576 self.assertTrue(self.GetProtectorState()['showing_change'])
577 # Protector must restore old preference values.
578 self.assertEquals(previous_homepage,
579 self.GetPrefsInfo().Prefs(pyauto.kHomePage))
580 self.assertEquals(False, self.GetPrefsInfo().Prefs(pyauto.kShowHomeButton))
581 self.ApplyProtectorChange()
582 # Now new values are active.
583 self.assertEquals(new_homepage, self.GetPrefsInfo().Prefs(pyauto.kHomePage))
584 self.assertEquals(True, self.GetPrefsInfo().Prefs(pyauto.kShowHomeButton))
585 # No longer showing the change
586 self.assertFalse(self.GetProtectorState()['showing_change'])
587
588 def testDetectHomepageChangeAndDiscard(self):
589 """Test that homepage change is detected and can be discarded."""
590 previous_homepage = 'http://example.com/'
591 new_homepage = 'http://example.info/'
592 self.SetPrefs(pyauto.kHomePage, previous_homepage)
593 self.SetPrefs(pyauto.kHomePageIsNewTabPage, False)
594 self.SetPrefs(pyauto.kShowHomeButton, False)
595 self.RestartBrowser(
596 clear_profile=False,
597 pre_launch_hook=lambda: self._ChangeHomepage(new_homepage, False, True))
598 # The change must be detected by Protector.
599 self.assertTrue(self.GetProtectorState()['showing_change'])
600 # Protector must restore old preference values.
601 self.assertEquals(previous_homepage,
602 self.GetPrefsInfo().Prefs(pyauto.kHomePage))
603 self.assertEquals(False, self.GetPrefsInfo().Prefs(pyauto.kShowHomeButton))
604 self.DiscardProtectorChange()
605 # Nothing changed
606 self.assertEquals(previous_homepage,
607 self.GetPrefsInfo().Prefs(pyauto.kHomePage))
608 self.assertEquals(False, self.GetPrefsInfo().Prefs(pyauto.kShowHomeButton))
609 # No longer showing the change
610 self.assertFalse(self.GetProtectorState()['showing_change'])
611
612
531 class ProtectorDisabledTest(BaseProtectorTest): 613 class ProtectorDisabledTest(BaseProtectorTest):
532 """Test suite for Protector in disabled state.""" 614 """Test suite for Protector in disabled state."""
533 615
534 def ExtraChromeFlags(self): 616 def ExtraChromeFlags(self):
535 """Ensures Protector is disabled. 617 """Ensures Protector is disabled.
536 618
537 Returns: 619 Returns:
538 A list of extra flags to pass to Chrome when it is launched. 620 A list of extra flags to pass to Chrome when it is launched.
539 """ 621 """
540 return super(ProtectorDisabledTest, self).ExtraChromeFlags() + [ 622 return super(ProtectorDisabledTest, self).ExtraChromeFlags() + [
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
599 self.assertFalse(self.GetProtectorState()['showing_change']) 681 self.assertFalse(self.GetProtectorState()['showing_change'])
600 # New preference values must be active. 682 # New preference values must be active.
601 self.assertEqual(self._SESSION_STARTUP_URLS, 683 self.assertEqual(self._SESSION_STARTUP_URLS,
602 self.GetPrefsInfo().Prefs(pyauto.kRestoreOnStartup)) 684 self.GetPrefsInfo().Prefs(pyauto.kRestoreOnStartup))
603 # Verify that open tabs are consistent with new prefs. 685 # Verify that open tabs are consistent with new prefs.
604 info = self.GetBrowserInfo() 686 info = self.GetBrowserInfo()
605 self.assertEqual(1, len(info['windows'])) # one window 687 self.assertEqual(1, len(info['windows'])) # one window
606 self.assertEqual(1, len(info['windows'][0]['tabs'])) # one tab 688 self.assertEqual(1, len(info['windows'][0]['tabs'])) # one tab
607 self.assertEqual(new_url, info['windows'][0]['tabs'][0]['url']) 689 self.assertEqual(new_url, info['windows'][0]['tabs'][0]['url'])
608 690
691 def testNoHomepageChangeReported(self):
692 """Test that homepage change is neither reported nor reverted."""
693 new_homepage = 'http://example.info/'
694 self.SetPrefs(pyauto.kHomePage, 'http://example.com/')
695 self.SetPrefs(pyauto.kHomePageIsNewTabPage, False)
696 self.SetPrefs(pyauto.kShowHomeButton, False)
697 self.RestartBrowser(
698 clear_profile=False,
699 pre_launch_hook=lambda: self._ChangeHomepage(new_homepage, False, True))
700 # Not showing the change.
701 self.assertFalse(self.GetProtectorState()['showing_change'])
702 # New values must be active.
703 self.assertEquals(new_homepage, self.GetPrefsInfo().Prefs(pyauto.kHomePage))
704 self.assertEquals(True, self.GetPrefsInfo().Prefs(pyauto.kShowHomeButton))
705
609 706
610 if __name__ == '__main__': 707 if __name__ == '__main__':
611 pyauto_functional.Main() 708 pyauto_functional.Main()
OLDNEW
« no previous file with comments | « chrome/chrome_tests.gypi ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698