Index: chrome/test/functional/cookies.py |
diff --git a/chrome/test/functional/cookies.py b/chrome/test/functional/cookies.py |
index 890a2cd4baa42ea11f7f26ccc7038fb81639c182..1078a0a374dd1dc0facd110affd116db2f3a4eb4 100755 |
--- a/chrome/test/functional/cookies.py |
+++ b/chrome/test/functional/cookies.py |
@@ -12,27 +12,48 @@ import pyauto |
class CookiesTest(pyauto.PyUITest): |
"""Tests for Cookies.""" |
- def _CookieCheckIncognitoWindow(self, url): |
+ def __init__(self, methodName='runTest'): |
+ super(CookiesTest, self).__init__(methodName) |
+ self.test_host = os.environ.get('COOKIES_TEST_HOST', 'www.google.com') |
+ |
+ def _CookieCheckIncognitoWindow(self, url, cookies_enabled=True): |
"""Check the cookie for the given URL in an incognito window.""" |
# Navigate to the URL in an incognito window and verify no cookie is set. |
+ self.assertFalse(self.GetCookie(pyauto.GURL(url)), |
+ msg='Cannot run with pre-existing cookies') |
self.RunCommand(pyauto.IDC_NEW_INCOGNITO_WINDOW) |
+ self.assertFalse(self.GetCookie(pyauto.GURL(url), 1), |
+ msg='Fresh incognito window should not have cookies') |
self.NavigateToURL(url, 1, 0) |
+ if cookies_enabled: |
+ self.assertTrue(self.GetCookie(pyauto.GURL(url), 1), |
+ msg='Cookies not set in incognito window') |
+ else: |
+ self.assertFalse(self.GetCookie(pyauto.GURL(url), 1), |
+ msg='Cookies not blocked in incognito window') |
self.assertFalse(self.GetCookie(pyauto.GURL(url)), |
- msg='Unable to get cookie in incognito window.') |
+ msg='Incognito mode cookies leaking to regular profile') |
+ self.CloseBrowserWindow(1); |
+ self.RunCommand(pyauto.IDC_NEW_INCOGNITO_WINDOW) |
+ self.assertFalse(self.GetCookie(pyauto.GURL(url), 1), |
+ msg='Cookies persisting between incognito sessions') |
+ self.CloseBrowserWindow(1); |
def testSetCookies(self): |
"""Test setting cookies and getting the value.""" |
cookie_url = pyauto.GURL(self.GetFileURLForDataPath('title1.html')) |
cookie_val = 'foo=bar' |
+ self.assertFalse(self.GetCookie(cookie_url), |
+ msg='There should be no cookies for %s' % cookie_url) |
self.SetCookie(cookie_url, cookie_val) |
self.assertEqual(cookie_val, self.GetCookie(cookie_url), |
msg='Could not find the cookie value foo=bar') |
def testCookiesHttp(self): |
"""Test cookies set over HTTP for incognito and regular windows.""" |
- http_url = 'http://www.google.com' |
+ http_url = 'http://%s' % self.test_host |
self.assertFalse(self.GetCookie(pyauto.GURL(http_url)), |
- msg='No cookies found after navigating to %s' % http_url) |
+ msg='There should be no cookies for %s' % http_url) |
# Incognito window |
self._CookieCheckIncognitoWindow(http_url) |
# Regular window |
@@ -41,30 +62,32 @@ class CookiesTest(pyauto.PyUITest): |
self.assertTrue(cookie_data, |
msg='Cookie did not exist after loading %s' % http_url) |
# Restart and verify that the cookie persists. |
- self.assertEqual(cookie_data, self.GetCookie(pyauto.GURL(http_url)), |
- msg='Cookie did not persist after restarting session.') |
+ self.RestartBrowser(clear_profile=False) |
Nirnimesh
2012/03/02 19:23:27
Hmm.. I guess I am to blame for this mischief. tha
|
+ self.assertTrue(self.GetCookie(pyauto.GURL(http_url)), |
+ msg='Cookie did not persist after restarting session.') |
def testCookiesHttps(self): |
"""Test cookies set over HTTPS for incognito and regular windows.""" |
- https_url = 'https://www.google.com' |
+ https_url = 'https://%s' % self.test_host |
self.assertFalse(self.GetCookie(pyauto.GURL(https_url)), |
- msg='No cookies found after navigating to %s' % https_url) |
+ msg='There should be no cookies for %s' % https_url) |
# Incognito window |
self._CookieCheckIncognitoWindow(https_url) |
# Regular window |
self.NavigateToURL(https_url) |
cookie_data = self.GetCookie(pyauto.GURL(https_url)) |
self.assertTrue(cookie_data, |
- msg='Unable to get cookie after navigating to page') |
+ msg='Cookie did not exist after loading %s' % https_url) |
# Restart and verify that the cookie persists. |
- self.assertEqual(cookie_data, self.GetCookie(pyauto.GURL(https_url)), |
- msg='Cookie did not persist after restarting session.') |
+ self.RestartBrowser(clear_profile=False) |
+ self.assertTrue(cookie_data, self.GetCookie(pyauto.GURL(https_url)), |
+ msg='Cookie did not persist after restarting session.') |
def testCookiesFile(self): |
"""Test cookies set from file:// url for incognito and regular windows.""" |
file_url = self.GetFileURLForDataPath('setcookie.html') |
self.assertFalse(self.GetCookie(pyauto.GURL(file_url)), |
- msg='Did not find cookie for file url %s' % file_url) |
+ msg='There should be no cookie for file url %s' % file_url) |
# Incognito window |
self._CookieCheckIncognitoWindow(file_url) |
# Regular window |
@@ -79,30 +102,39 @@ class CookiesTest(pyauto.PyUITest): |
def testBlockCookies(self): |
"""Verify that cookies are being blocked.""" |
file_url = self.GetFileURLForDataPath('setcookie.html') |
+ http_url = 'http://%s' % self.test_host |
+ https_url = 'https://%s' % self.test_host |
self.assertFalse(self.GetCookie(pyauto.GURL(file_url)), |
- msg='Did not find cookie for url %s' % file_url) |
+ msg='There should be no cookie for file url %s' % file_url) |
# Set the preference to block all cookies. |
self.SetPrefs(pyauto.kDefaultContentSettings, {u'cookies': 2}) |
# Regular window |
- self.NavigateToURL('http://www.google.com') |
- self.AppendTab(pyauto.GURL('https://www.google.com')) |
+ self.NavigateToURL(http_url) |
+ self.AppendTab(pyauto.GURL(https_url)) |
self.AppendTab(pyauto.GURL(file_url)) |
self.assertFalse(self.GetCookie(pyauto.GURL(file_url)), |
msg='Cookies are not blocked.') |
+ self.assertFalse(self.GetCookie(pyauto.GURL(http_url)), |
+ msg='Cookies are not blocked.') |
+ self.assertFalse(self.GetCookie(pyauto.GURL(https_url)), |
+ msg='Cookies are not blocked.') |
# Incognito window |
- self._CookieCheckIncognitoWindow('http://www.google.com') |
- self.GetBrowserWindow(1).GetTab(0).Close(True) |
+ self._CookieCheckIncognitoWindow(http_url, cookies_enabled=False) |
# Restart and verify that cookie setting persists and there are no cookies. |
self.SetPrefs(pyauto.kRestoreOnStartup, 1) |
self.RestartBrowser(clear_profile=False) |
self.assertEquals({u'cookies': 2}, |
- self.GetPrefsInfo().Prefs(pyauto.kDefaultContentSettings)) |
+ self.GetPrefsInfo().Prefs(pyauto.kDefaultContentSettings), |
+ msg='Cookie setting did not persist after restarting session.') |
self.assertFalse(self.GetCookie(pyauto.GURL(file_url)), |
- msg='Cookie setting did not persist after restarting ' |
- 'session.') |
+ msg='Cookies are not blocked.') |
+ self.assertFalse(self.GetCookie(pyauto.GURL(http_url)), |
+ msg='Cookies are not blocked.') |
+ self.assertFalse(self.GetCookie(pyauto.GURL(https_url)), |
+ msg='Cookies are not blocked.') |
def testClearCookiesOnEndingSession(self): |
"""Verify that cookies are cleared when the browsing session is closed.""" |
@@ -126,6 +158,7 @@ class CookiesTest(pyauto.PyUITest): |
"""Verify that cookies can be allowed and set using exceptions for |
particular website(s) when all others are blocked.""" |
file_url = self.GetFileURLForDataPath('setcookie.html') |
+ http_url = 'http://%s' % self.test_host |
self.assertFalse(self.GetCookie(pyauto.GURL(file_url)), |
msg='Unable to set cookie.') |
@@ -139,26 +172,27 @@ class CookiesTest(pyauto.PyUITest): |
# Creating an exception to allow cookies from http://www.google.com. |
self.SetPrefs(pyauto.kContentSettingsPatternPairs, |
- {'[*.]google.com,*': { 'cookies': 1}}) |
+ {'[*.]%s,*' % self.test_host: { 'cookies': 1}}) |
# Navigate to google.com and check if cookies are set. |
- self.NavigateToURL('http://www.google.com') |
- self.assertTrue(self.GetCookie(pyauto.GURL('http://www.google.com')), |
+ self.NavigateToURL(http_url) |
+ self.assertTrue(self.GetCookie(pyauto.GURL(http_url)), |
msg='Cookies are not set for the exception.') |
def testBlockCookiesUsingExceptions(self): |
"""Verify that cookies can be blocked for a specific website |
using exceptions.""" |
file_url = self.GetFileURLForDataPath('setcookie.html') |
+ http_url = 'http://%s' % self.test_host |
self.assertFalse(self.GetCookie(pyauto.GURL(file_url)), |
msg='Unable to set cookie.') |
# Create an exception to block cookies from http://www.google.com |
self.SetPrefs(pyauto.kContentSettingsPatternPairs, |
- {'[*.]google.com,*': { 'cookies': 2}}) |
+ {'[*.]%s,*' % self.test_host: { 'cookies': 2}}) |
# Navigate to google.com and check if cookies are blocked. |
- self.NavigateToURL('http://www.google.com') |
- self.assertFalse(self.GetCookie(pyauto.GURL('http://www.google.com')), |
+ self.NavigateToURL(http_url) |
+ self.assertFalse(self.GetCookie(pyauto.GURL(http_url)), |
msg='Cookies are being set for the exception.') |
# Check if cookies are being set for other websites/webpages. |
@@ -170,6 +204,7 @@ class CookiesTest(pyauto.PyUITest): |
"""Verify that cookies can be allowed and set using exceptions for |
particular website(s) only for a session when all others are blocked.""" |
file_url = self.GetFileURLForPath('setcookie.html') |
+ http_url = 'http://%s' % self.test_host |
self.assertFalse(self.GetCookie(pyauto.GURL(file_url)), |
msg='Unable to set cookie.') |
@@ -183,17 +218,16 @@ class CookiesTest(pyauto.PyUITest): |
# Creating an exception to allow cookies for a session for google.com. |
self.SetPrefs(pyauto.kContentSettingsPatternPairs, |
- {'[*.]google.com,*': { 'cookies': 4}}) |
+ {'[*.]%s,*' % self.test_host: { 'cookies': 4}}) |
# Navigate to google.com and check if cookies are set. |
- self.NavigateToURL('http://www.google.com') |
- self.assertTrue(self.GetCookie(pyauto.GURL('http://www.google.com')), |
+ self.NavigateToURL(http_url) |
+ self.assertTrue(self.GetCookie(pyauto.GURL(http_url)), |
msg='Cookies are not set for the exception.') |
# Restart the browser to check that the cookie doesn't persist. |
self.RestartBrowser(clear_profile=False) |
- self.assertFalse(self.GetCookie(pyauto.GURL('http://www.google.com')), |
+ self.assertFalse(self.GetCookie(pyauto.GURL(http_url)), |
msg='Cookie persisted after restarting session.') |
- |
if __name__ == '__main__': |
pyauto_functional.Main() |