| Index: chrome/test/functional/protector.py
|
| diff --git a/chrome/test/functional/protector.py b/chrome/test/functional/protector.py
|
| index 5fca89f35d07d183b4d0d3a6e054bff61ae928cb..c7f432d03b66f5b3f843a6905683699209a1d0af 100644
|
| --- a/chrome/test/functional/protector.py
|
| +++ b/chrome/test/functional/protector.py
|
| @@ -180,6 +180,20 @@ class BaseProtectorTest(pyauto.PyUITest):
|
| prefs['pinned_tabs'].append({'url': tab})
|
| self._WritePreferences(prefs)
|
|
|
| + def _ChangeHomepage(self, homepage, homepage_is_ntp, show_homepage_button):
|
| + """Changes homepage settings.
|
| +
|
| + Args:
|
| + homepage: new homepage URL (str),
|
| + homepage_is_ntp: whether homepage is NTP.
|
| + show_homepage_button: whether homepage button is visible.
|
| + """
|
| + prefs = self._LoadPreferences()
|
| + prefs['homepage'] = homepage
|
| + prefs['homepage_is_newtabpage'] = homepage_is_ntp
|
| + prefs['browser']['show_home_button'] = show_homepage_button
|
| + self._WritePreferences(prefs)
|
| +
|
| def _AssertSingleTabOpen(self, url):
|
| """Asserts that a single tab with given url is open.
|
|
|
| @@ -399,7 +413,7 @@ class ProtectorSessionStartupTest(BaseProtectorTest):
|
| # No longer showing the change.
|
| self.assertFalse(self.GetProtectorState()['showing_change'])
|
|
|
| - def testDetectSessionStartupChangeAndApply(self):
|
| + def testDetectSessionStartupChangeAndDiscard(self):
|
| """Test for detecting and discarding a session startup pref change."""
|
| # Set startup prefs to restoring last open tabs.
|
| self.SetPrefs(pyauto.kRestoreOnStartup, self._SESSION_STARTUP_LAST)
|
| @@ -528,6 +542,74 @@ class ProtectorSessionStartupTest(BaseProtectorTest):
|
| self.assertFalse(self.GetProtectorState()['showing_change'])
|
|
|
|
|
| +class ProtectorHomepageTest(BaseProtectorTest):
|
| + """Test suite for homepage changes with Protector enabled."""
|
| +
|
| + def testDetectHomepageChangeWhenButtonNotShown(self):
|
| + """Test that homepage change is detected and reverted when homepage button
|
| + is set to not be shown.
|
| + """
|
| + previous_homepage = 'http://example.com/'
|
| + self.SetPrefs(pyauto.kHomePage, previous_homepage)
|
| + self.SetPrefs(pyauto.kHomePageIsNewTabPage, False)
|
| + self.SetPrefs(pyauto.kShowHomeButton, False)
|
| + self.RestartBrowser(
|
| + clear_profile=False,
|
| + pre_launch_hook=lambda: self._ChangeHomepage(
|
| + 'http://example.info/', False, False))
|
| + # Change has been automatically reverted, no bubble shown.
|
| + self.assertFalse(self.GetProtectorState()['showing_change'])
|
| + self.assertEquals(previous_homepage,
|
| + self.GetPrefsInfo().Prefs(pyauto.kHomePage))
|
| +
|
| + def testDetectHomepageChangeAndApply(self):
|
| + """Test that homepage change is detected and can be applied."""
|
| + previous_homepage = 'http://example.com/'
|
| + new_homepage = 'http://example.info/'
|
| + self.SetPrefs(pyauto.kHomePage, previous_homepage)
|
| + self.SetPrefs(pyauto.kHomePageIsNewTabPage, False)
|
| + self.SetPrefs(pyauto.kShowHomeButton, False)
|
| + self.RestartBrowser(
|
| + clear_profile=False,
|
| + pre_launch_hook=lambda: self._ChangeHomepage(new_homepage, False, True))
|
| + # The change must be detected by Protector.
|
| + self.assertTrue(self.GetProtectorState()['showing_change'])
|
| + # Protector must restore old preference values.
|
| + self.assertEquals(previous_homepage,
|
| + self.GetPrefsInfo().Prefs(pyauto.kHomePage))
|
| + self.assertEquals(False, self.GetPrefsInfo().Prefs(pyauto.kShowHomeButton))
|
| + self.ApplyProtectorChange()
|
| + # Now new values are active.
|
| + self.assertEquals(new_homepage, self.GetPrefsInfo().Prefs(pyauto.kHomePage))
|
| + self.assertEquals(True, self.GetPrefsInfo().Prefs(pyauto.kShowHomeButton))
|
| + # No longer showing the change
|
| + self.assertFalse(self.GetProtectorState()['showing_change'])
|
| +
|
| + def testDetectHomepageChangeAndDiscard(self):
|
| + """Test that homepage change is detected and can be discarded."""
|
| + previous_homepage = 'http://example.com/'
|
| + new_homepage = 'http://example.info/'
|
| + self.SetPrefs(pyauto.kHomePage, previous_homepage)
|
| + self.SetPrefs(pyauto.kHomePageIsNewTabPage, False)
|
| + self.SetPrefs(pyauto.kShowHomeButton, False)
|
| + self.RestartBrowser(
|
| + clear_profile=False,
|
| + pre_launch_hook=lambda: self._ChangeHomepage(new_homepage, False, True))
|
| + # The change must be detected by Protector.
|
| + self.assertTrue(self.GetProtectorState()['showing_change'])
|
| + # Protector must restore old preference values.
|
| + self.assertEquals(previous_homepage,
|
| + self.GetPrefsInfo().Prefs(pyauto.kHomePage))
|
| + self.assertEquals(False, self.GetPrefsInfo().Prefs(pyauto.kShowHomeButton))
|
| + self.DiscardProtectorChange()
|
| + # Nothing changed
|
| + self.assertEquals(previous_homepage,
|
| + self.GetPrefsInfo().Prefs(pyauto.kHomePage))
|
| + self.assertEquals(False, self.GetPrefsInfo().Prefs(pyauto.kShowHomeButton))
|
| + # No longer showing the change
|
| + self.assertFalse(self.GetProtectorState()['showing_change'])
|
| +
|
| +
|
| class ProtectorDisabledTest(BaseProtectorTest):
|
| """Test suite for Protector in disabled state."""
|
|
|
| @@ -606,6 +688,21 @@ class ProtectorDisabledTest(BaseProtectorTest):
|
| self.assertEqual(1, len(info['windows'][0]['tabs'])) # one tab
|
| self.assertEqual(new_url, info['windows'][0]['tabs'][0]['url'])
|
|
|
| + def testNoHomepageChangeReported(self):
|
| + """Test that homepage change is neither reported nor reverted."""
|
| + new_homepage = 'http://example.info/'
|
| + self.SetPrefs(pyauto.kHomePage, 'http://example.com/')
|
| + self.SetPrefs(pyauto.kHomePageIsNewTabPage, False)
|
| + self.SetPrefs(pyauto.kShowHomeButton, False)
|
| + self.RestartBrowser(
|
| + clear_profile=False,
|
| + pre_launch_hook=lambda: self._ChangeHomepage(new_homepage, False, True))
|
| + # Not showing the change.
|
| + self.assertFalse(self.GetProtectorState()['showing_change'])
|
| + # New values must be active.
|
| + self.assertEquals(new_homepage, self.GetPrefsInfo().Prefs(pyauto.kHomePage))
|
| + self.assertEquals(True, self.GetPrefsInfo().Prefs(pyauto.kShowHomeButton))
|
| +
|
|
|
| if __name__ == '__main__':
|
| pyauto_functional.Main()
|
|
|