Chromium Code Reviews| Index: chrome/test/functional/databases.py |
| diff --git a/chrome/test/functional/databases.py b/chrome/test/functional/databases.py |
| index 770c0867e55d5fc673dea335d94dfc8ef0d7061e..10caef94e3b11feb5690a09fc6892488d58ff101 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,37 @@ 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.NavigateToURL(self.TEST_PAGE_URL) |
| + self._CreateTable() |
| + self._InsertRecord('1') |
| + self.NavigateToURL('about:crash') |
|
Nirnimesh
2010/11/24 23:07:57
This will create a .dmp file, and there're checks
|
| + self.NavigateToURL(self.TEST_PAGE_URL) |
| + 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() |