summaryrefslogtreecommitdiffstats
path: root/chrome/test
diff options
context:
space:
mode:
authorkkania@chromium.org <kkania@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-04 01:40:35 +0000
committerkkania@chromium.org <kkania@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-04 01:40:35 +0000
commitbe25bc545483881097ba9ba1eadafbcfdaf1f6e7 (patch)
tree96c0147c31c748f843b3ecc61141af88b827e82e /chrome/test
parent00f892aff1bfd73966ffb7ef0099a3e354835ba7 (diff)
downloadchromium_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_TESTS2
-rw-r--r--chrome/test/functional/databases.py65
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()