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

Unified Diff: chrome/test/functional/databases.py

Issue 5364002: Add pyauto tests for Web SQL databases. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/chrome/test/functional
Patch Set: Fix kill test Created 10 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« chrome/test/functional/PYAUTO_TESTS ('K') | « chrome/test/functional/PYAUTO_TESTS ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/functional/databases.py
diff --git a/chrome/test/functional/databases.py b/chrome/test/functional/databases.py
index 770c0867e55d5fc673dea335d94dfc8ef0d7061e..471f07a9232cd0aa1571bb5b95f154ef5b2c5b51 100644
--- a/chrome/test/functional/databases.py
+++ b/chrome/test/functional/databases.py
@@ -124,6 +124,14 @@ class DatabasesTest(pyauto.PyUITest):
json = self.CallJavascriptFunc('getRecords', [], tab_index, windex)
return self._ParseAndCheckResultFromTestPage(json)['returnValue']
+ def _HasTable(self, tab_index=0, windex=0):
+ """Returns whether the page has a table in its database."""
+ try:
+ self._GetRecords(tab_index, windex)
+ except SQLExecutionError:
+ return False
+ return True
+
def testInsertRecord(self):
"""Insert records to the database."""
self.NavigateToURL(self.TEST_PAGE_URL)
@@ -176,7 +184,7 @@ class DatabasesTest(pyauto.PyUITest):
did_throw_exception = False
try:
self._DeleteRecord(1)
- except:
+ except SQLExecutionError:
did_throw_exception = True
self.assertTrue(did_throw_exception)
self.assertEquals(['text'], self._GetRecords())
@@ -217,16 +225,9 @@ class DatabasesTest(pyauto.PyUITest):
self._InsertRecord('text')
self.RunCommand(pyauto.IDC_NEW_INCOGNITO_WINDOW)
self.NavigateToURL(self.TEST_PAGE_URL, 1, 0)
- can_read_regular_database = False
- try:
- # |_GetRecords| should throw an error because the table does not exist.
- if len(self._GetRecords(windex=1)) == 1:
- can_read_regular_database = True
- except SQLExecutionError:
- pass
- self.assertFalse(can_read_regular_database)
+ self.assertFalse(self._HasTable(windex=1))
self._CreateTable(windex=1)
- self.assertEqual(0, len(self._GetRecords(windex=1)))
+ self.assertFalse(self._GetRecords(windex=1))
def testRegularCannotReadIncognitoDatabase(self):
"""Attempt to read a database created in an incognito browser from a regular
@@ -239,14 +240,9 @@ class DatabasesTest(pyauto.PyUITest):
# Verify a regular browser cannot read the incognito database.
self.NavigateToURL(self.TEST_PAGE_URL)
- can_read_incognito_database = False
- try:
- # |_GetRecords| should throw an error because the table does not exist.
- if len(self._GetRecords()) == 1:
- can_read_incognito_database = True
- except SQLExecutionError:
- pass
- self.assertFalse(can_read_incognito_database)
+ self.assertFalse(self._HasTable())
+ self._CreateTable()
+ self.assertFalse(self._GetRecords())
def testDbModificationPersistInSecondTab(self):
"""Verify DB changes within first tab are present in the second tab."""
@@ -262,6 +258,39 @@ class DatabasesTest(pyauto.PyUITest):
self.assertEquals(1, len(tab2_records))
self.assertEquals(tab1_records[0], tab2_records[0])
+ def testIncognitoDatabaseNotPersistent(self):
+ """Verify incognito database is removed after incognito window closes."""
+ self.RunCommand(pyauto.IDC_NEW_INCOGNITO_WINDOW)
+ self.NavigateToURL(self.TEST_PAGE_URL, 1, 0)
+ self._CreateTable(windex=1)
+ self._InsertRecord('text', windex=1)
+ self.CloseBrowserWindow(1)
+ self.RunCommand(pyauto.IDC_NEW_INCOGNITO_WINDOW)
+ self.NavigateToURL(self.TEST_PAGE_URL, 1, 0)
+ self.assertFalse(self._HasTable(windex=1))
+
+ def testModificationsPersistAfterRendererCrash(self):
+ """Verify database modifications persist after crashing tab."""
+ self.AppendTab(pyauto.GURL('about:blank'))
+ self.ActivateTab(0)
+ self.NavigateToURL(self.TEST_PAGE_URL)
+ self._CreateTable()
+ self._InsertRecord('1')
+ self.Kill(self.GetBrowserInfo()['windows'][0]['tabs'][0]['renderer_pid'])
+ self.ReloadActiveTab()
+ self.assertEqual(['1'], self._GetRecords())
+
+ def testIncognitoDBPersistentAcrossTabs(self):
+ """Test to check if database modifications are persistent across tabs
+ in incognito window.
+ """
+ self.RunCommand(pyauto.IDC_NEW_INCOGNITO_WINDOW)
+ self.NavigateToURL(self.TEST_PAGE_URL, 1, 0)
+ self._CreateTable(windex=1)
+ self._InsertRecord('text', windex=1)
+ self.AppendTab(pyauto.GURL(self.TEST_PAGE_URL), 1)
+ self.assertEquals(['text'], self._GetRecords(1, 1))
+
if __name__ == '__main__':
pyauto_functional.Main()
« chrome/test/functional/PYAUTO_TESTS ('K') | « chrome/test/functional/PYAUTO_TESTS ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698