diff options
author | kkania@chromium.org <kkania@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-04 01:40:35 +0000 |
---|---|---|
committer | kkania@chromium.org <kkania@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-04 01:40:35 +0000 |
commit | be25bc545483881097ba9ba1eadafbcfdaf1f6e7 (patch) | |
tree | 96c0147c31c748f843b3ecc61141af88b827e82e /chrome/test | |
parent | 00f892aff1bfd73966ffb7ef0099a3e354835ba7 (diff) | |
download | chromium_src-be25bc545483881097ba9ba1eadafbcfdaf1f6e7.zip chromium_src-be25bc545483881097ba9ba1eadafbcfdaf1f6e7.tar.gz chromium_src-be25bc545483881097ba9ba1eadafbcfdaf1f6e7.tar.bz2 |
Add pyauto tests for Web SQL databases.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/5364002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68263 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test')
-rw-r--r-- | chrome/test/functional/PYAUTO_TESTS | 2 | ||||
-rw-r--r-- | chrome/test/functional/databases.py | 65 |
2 files changed, 49 insertions, 18 deletions
diff --git a/chrome/test/functional/PYAUTO_TESTS b/chrome/test/functional/PYAUTO_TESTS index 68a54c2..be2d7f8 100644 --- a/chrome/test/functional/PYAUTO_TESTS +++ b/chrome/test/functional/PYAUTO_TESTS @@ -31,6 +31,8 @@ 'cookies', 'crash_reporter', 'databases', + # Reloading after kill doesn't load the page, crbug.com/64708. + '-databases.DatabasesTest.testModificationsPersistAfterRendererCrash', 'downloads', 'find_in_page', # Turkish I problem. crbug.com/60638 diff --git a/chrome/test/functional/databases.py b/chrome/test/functional/databases.py index 770c086..471f07a 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() |