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

Side by Side Diff: chrome/test/functional/indexeddb.py

Issue 10828378: Convert the indexed db pyauto tests to content_browsertests. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 4 months 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 import pyauto_functional
7 import pyauto
8 import test_utils
9
10
11 class IndexedDBTest(pyauto.PyUITest):
12 """Test of IndexedDB."""
13
14 _SESSION_STARTUP_NTP = 5
15
16 def _GetInnerText(self, selector, tab_index=0):
17 """Return the value of the innerText property of the target node.
18 The target node is identified by CSS selector, e.g. #id"""
19
20 expression = 'document.querySelector("' + selector + '").innerText'
21 return self.GetDOMValue(expression, tab_index=tab_index)
22
23 def _WaitForAndAssertResult(self, expected, tab_index=0):
24 """Wait for the element with id="result" to exist, and verify the value."""
25 self.WaitForDomNode('id("result")', tab_index=tab_index)
26 self.assertEqual(self._GetInnerText('#result', tab_index=tab_index),
27 expected)
28
29 def _ClearResult(self, tab_index=0):
30 """Delete the element with id="result" if it exists."""
31 expression = """(function() {
32 var e = document.querySelector('#result');
33 if (e)
34 e.parentNode.removeChild(e);
35 return 'ok';
36 }())"""
37 self.assertEqual(self.GetDOMValue(expression, tab_index=tab_index), 'ok')
38
39 def _AssertNewTabPage(self):
40 """Assert that the current tab is the new tab page, not a restored tab."""
41 self.assertEqual(self.GetBrowserInfo()['windows'][0]['tabs'][0]['url'],
42 'chrome://newtab/')
43
44 def testIndexedDBNullKeyPathPersistence(self):
45 """Verify null key path persists after restarting browser."""
46
47 # Don't restore tabs after restart
48 self.SetPrefs(pyauto.kRestoreOnStartup, self._SESSION_STARTUP_NTP)
49
50 url = self.GetHttpURLForDataPath('indexeddb', 'bug_90635.html')
51
52 self.NavigateToURL(url + '#part1')
53 self._WaitForAndAssertResult('pass - first run')
54
55 self.RestartBrowser(clear_profile=False)
56 self._AssertNewTabPage()
57
58 self.NavigateToURL(url + '#part2')
59 self._WaitForAndAssertResult('pass - second run')
60
61 def testVersionChangeCrashResilience(self):
62 """Verify that a VERSION_CHANGE transaction is rolled back
63 after a renderer/browser crash"""
64
65 # Don't restore tabs after restart
66 self.SetPrefs(pyauto.kRestoreOnStartup, self._SESSION_STARTUP_NTP)
67
68 url = self.GetHttpURLForDataPath('indexeddb', 'version_change_crash.html')
69
70 self.NavigateToURL(url + '#part1')
71 self._WaitForAndAssertResult('pass - part1 - complete')
72
73 self.RestartBrowser(clear_profile=False)
74 self._AssertNewTabPage()
75
76 self.NavigateToURL(url + '#part2')
77 self._WaitForAndAssertResult('pass - part2 - crash me')
78
79 test_utils.CrashBrowser(self)
80
81 self.RestartBrowser(clear_profile=False)
82 self._AssertNewTabPage()
83
84 self.NavigateToURL(url + '#part3')
85 self._WaitForAndAssertResult('pass - part3 - rolled back')
86
87 def testConnectionsClosedOnTabClose(self):
88 """Verify that open DB connections are closed when a tab is destroyed."""
89
90 url = self.GetHttpURLForDataPath('indexeddb', 'version_change_blocked.html')
91
92 self.NavigateToURL(url + '#tab1')
93 pid = self.GetBrowserInfo()['windows'][0]['tabs'][0]['renderer_pid']
94 self._WaitForAndAssertResult('setVersion(1) complete')
95
96 # Start on a different URL to force a new renderer process.
97 self.AppendTab(pyauto.GURL('about:blank'))
98 self.NavigateToURL(url + '#tab2')
99 self._WaitForAndAssertResult('setVersion(2) blocked', tab_index=1)
100 self._ClearResult(tab_index=1)
101
102 self.KillRendererProcess(pid)
103 self.assertEqual(self.GetTabCount(), 2)
104 self.CloseTab()
105
106 self._WaitForAndAssertResult('setVersion(2) complete')
107
108
109 if __name__ == '__main__':
110 pyauto_functional.Main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698