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

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: Added pyauto tests. 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
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 #input('Pause')
Nirnimesh 2012/04/16 21:10:29 remove
Ivan Korotkov 2012/04/17 09:54:10 Done.
197
183 def _AssertSingleTabOpen(self, url): 198 def _AssertSingleTabOpen(self, url):
184 """Asserts that a single tab with given url is open. 199 """Asserts that a single tab with given url is open.
185 200
186 Args: 201 Args:
187 url: URL of the single tab. 202 url: URL of the single tab.
188 """ 203 """
189 info = self.GetBrowserInfo() 204 info = self.GetBrowserInfo()
190 self.assertEqual(1, len(info['windows'])) # one window 205 self.assertEqual(1, len(info['windows'])) # one window
191 self.assertEqual(1, len(info['windows'][0]['tabs'])) # one tab 206 self.assertEqual(1, len(info['windows'][0]['tabs'])) # one tab
192 self.assertEqual(url, info['windows'][0]['tabs'][0]['url']) 207 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)) 407 self.GetPrefsInfo().Prefs(pyauto.kRestoreOnStartup))
393 # Verify that open tabs are consistent with restored prefs. 408 # Verify that open tabs are consistent with restored prefs.
394 self._AssertSingleTabOpen(previous_url) 409 self._AssertSingleTabOpen(previous_url)
395 self.ApplyProtectorChange() 410 self.ApplyProtectorChange()
396 # Now the new preference values are active. 411 # Now the new preference values are active.
397 self.assertEqual(self._SESSION_STARTUP_URLS, 412 self.assertEqual(self._SESSION_STARTUP_URLS,
398 self.GetPrefsInfo().Prefs(pyauto.kRestoreOnStartup)) 413 self.GetPrefsInfo().Prefs(pyauto.kRestoreOnStartup))
399 # No longer showing the change. 414 # No longer showing the change.
400 self.assertFalse(self.GetProtectorState()['showing_change']) 415 self.assertFalse(self.GetProtectorState()['showing_change'])
401 416
402 def testDetectSessionStartupChangeAndApply(self): 417 def testDetectSessionStartupChangeAndDiscard(self):
403 """Test for detecting and discarding a session startup pref change.""" 418 """Test for detecting and discarding a session startup pref change."""
404 # Set startup prefs to restoring last open tabs. 419 # Set startup prefs to restoring last open tabs.
405 self.SetPrefs(pyauto.kRestoreOnStartup, self._SESSION_STARTUP_LAST) 420 self.SetPrefs(pyauto.kRestoreOnStartup, self._SESSION_STARTUP_LAST)
406 # Restart browser with startup prefs set to open google.com. 421 # Restart browser with startup prefs set to open google.com.
407 self.RestartBrowser( 422 self.RestartBrowser(
408 clear_profile=False, 423 clear_profile=False,
409 pre_launch_hook=lambda: self._ChangeSessionStartupPrefs( 424 pre_launch_hook=lambda: self._ChangeSessionStartupPrefs(
410 self._SESSION_STARTUP_URLS, 425 self._SESSION_STARTUP_URLS,
411 startup_urls=['http://www.google.com'])) 426 startup_urls=['http://www.google.com']))
412 # The change must be detected by Protector. 427 # The change must be detected by Protector.
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
521 self.DiscardProtectorChange() 536 self.DiscardProtectorChange()
522 # No longer showing the change. 537 # No longer showing the change.
523 self.assertFalse(self.GetProtectorState()['showing_change']) 538 self.assertFalse(self.GetProtectorState()['showing_change'])
524 # Pinned tabs are not opened after another restart. 539 # Pinned tabs are not opened after another restart.
525 self.RestartBrowser(clear_profile=False) 540 self.RestartBrowser(clear_profile=False)
526 self._AssertSingleTabOpen('chrome://newtab/') 541 self._AssertSingleTabOpen('chrome://newtab/')
527 # Not showing the change after a restart. 542 # Not showing the change after a restart.
528 self.assertFalse(self.GetProtectorState()['showing_change']) 543 self.assertFalse(self.GetProtectorState()['showing_change'])
529 544
530 545
546 class ProtectorHomepageTest(BaseProtectorTest):
547 """Test suite for homepage changes with Protector enabled."""
548
549 def testDetectHomepageChangeWhenButtonNotShown(self):
550 """Test that homepage change is detected and reverted when homepage button
551 is set to not be shown.
552 """
553 previous_homepage = 'http://example.com/'
554 self.SetPrefs(pyauto.kHomePage, previous_homepage)
555 self.SetPrefs(pyauto.kHomePageIsNewTabPage, False)
556 self.SetPrefs(pyauto.kShowHomeButton, False)
557 self.RestartBrowser(
558 clear_profile=False,
559 pre_launch_hook=lambda: self._ChangeHomepage(
560 'http://example.info/', False, False))
561 # Change has been automatically reverted, no bubble shown.
562 self.assertFalse(self.GetProtectorState()['showing_change'])
563 self.assertEquals(previous_homepage,
564 self.GetPrefsInfo().Prefs(pyauto.kHomePage))
565
566 def testDetectHomepageChangeAndApply(self):
567 """Test that homepage change is detected and can be applied."""
568 previous_homepage = 'http://example.com/'
569 new_homepage = 'http://example.info/'
570 self.SetPrefs(pyauto.kHomePage, previous_homepage)
571 self.SetPrefs(pyauto.kHomePageIsNewTabPage, False)
572 self.SetPrefs(pyauto.kShowHomeButton, False)
573 self.RestartBrowser(
574 clear_profile=False,
575 pre_launch_hook=lambda: self._ChangeHomepage(new_homepage, False, True))
576 # The change must be detected by Protector.
577 self.assertTrue(self.GetProtectorState()['showing_change'])
578 # Protector must restore old preference values.
579 self.assertEquals(previous_homepage,
580 self.GetPrefsInfo().Prefs(pyauto.kHomePage))
581 self.assertEquals(False, self.GetPrefsInfo().Prefs(pyauto.kShowHomeButton))
582 self.ApplyProtectorChange()
583 # Now new values are active.
584 self.assertEquals(new_homepage, self.GetPrefsInfo().Prefs(pyauto.kHomePage))
585 self.assertEquals(True, self.GetPrefsInfo().Prefs(pyauto.kShowHomeButton))
586 # No longer showing the change
587 self.assertFalse(self.GetProtectorState()['showing_change'])
588
589 def testDetectHomepageChangeAndDiscard(self):
590 """Test that homepage change is detected and can be discarded."""
591 previous_homepage = 'http://example.com/'
592 new_homepage = 'http://example.info/'
593 self.SetPrefs(pyauto.kHomePage, previous_homepage)
594 self.SetPrefs(pyauto.kHomePageIsNewTabPage, False)
595 self.SetPrefs(pyauto.kShowHomeButton, False)
596 self.RestartBrowser(
597 clear_profile=False,
598 pre_launch_hook=lambda: self._ChangeHomepage(new_homepage, False, True))
599 # The change must be detected by Protector.
600 self.assertTrue(self.GetProtectorState()['showing_change'])
601 # Protector must restore old preference values.
602 self.assertEquals(previous_homepage,
603 self.GetPrefsInfo().Prefs(pyauto.kHomePage))
604 self.assertEquals(False, self.GetPrefsInfo().Prefs(pyauto.kShowHomeButton))
605 self.DiscardProtectorChange()
606 # Nothing changed
607 self.assertEquals(previous_homepage,
608 self.GetPrefsInfo().Prefs(pyauto.kHomePage))
609 self.assertEquals(False, self.GetPrefsInfo().Prefs(pyauto.kShowHomeButton))
610 # No longer showing the change
611 self.assertFalse(self.GetProtectorState()['showing_change'])
612
613
531 class ProtectorDisabledTest(BaseProtectorTest): 614 class ProtectorDisabledTest(BaseProtectorTest):
532 """Test suite for Protector in disabled state.""" 615 """Test suite for Protector in disabled state."""
533 616
534 def ExtraChromeFlags(self): 617 def ExtraChromeFlags(self):
535 """Ensures Protector is disabled. 618 """Ensures Protector is disabled.
536 619
537 Returns: 620 Returns:
538 A list of extra flags to pass to Chrome when it is launched. 621 A list of extra flags to pass to Chrome when it is launched.
539 """ 622 """
540 return super(ProtectorDisabledTest, self).ExtraChromeFlags() + [ 623 return super(ProtectorDisabledTest, self).ExtraChromeFlags() + [
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
599 self.assertFalse(self.GetProtectorState()['showing_change']) 682 self.assertFalse(self.GetProtectorState()['showing_change'])
600 # New preference values must be active. 683 # New preference values must be active.
601 self.assertEqual(self._SESSION_STARTUP_URLS, 684 self.assertEqual(self._SESSION_STARTUP_URLS,
602 self.GetPrefsInfo().Prefs(pyauto.kRestoreOnStartup)) 685 self.GetPrefsInfo().Prefs(pyauto.kRestoreOnStartup))
603 # Verify that open tabs are consistent with new prefs. 686 # Verify that open tabs are consistent with new prefs.
604 info = self.GetBrowserInfo() 687 info = self.GetBrowserInfo()
605 self.assertEqual(1, len(info['windows'])) # one window 688 self.assertEqual(1, len(info['windows'])) # one window
606 self.assertEqual(1, len(info['windows'][0]['tabs'])) # one tab 689 self.assertEqual(1, len(info['windows'][0]['tabs'])) # one tab
607 self.assertEqual(new_url, info['windows'][0]['tabs'][0]['url']) 690 self.assertEqual(new_url, info['windows'][0]['tabs'][0]['url'])
608 691
692 def testNoHomepageChangeReported(self):
693 """Test that homepage change is neither reported nor reverted."""
694 new_homepage = 'http://example.info/'
695 self.SetPrefs(pyauto.kHomePage, 'http://example.com/')
696 self.SetPrefs(pyauto.kHomePageIsNewTabPage, False)
697 self.SetPrefs(pyauto.kShowHomeButton, False)
698 self.RestartBrowser(
699 clear_profile=False,
700 pre_launch_hook=lambda: self._ChangeHomepage(new_homepage, False, True))
701 # Not showing the change.
702 self.assertFalse(self.GetProtectorState()['showing_change'])
703 # New values must be active.
704 self.assertEquals(new_homepage, self.GetPrefsInfo().Prefs(pyauto.kHomePage))
705 self.assertEquals(True, self.GetPrefsInfo().Prefs(pyauto.kShowHomeButton))
706
609 707
610 if __name__ == '__main__': 708 if __name__ == '__main__':
611 pyauto_functional.Main() 709 pyauto_functional.Main()
OLDNEW
« chrome/browser/search_engines/template_url_service.cc ('K') | « chrome/chrome_tests.gypi ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698