• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2014 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import re
6
7from telemetry.page import page as page_module
8from telemetry.page import page_set as page_set_module
9
10
11def _CreateXpathFunction(xpath):
12  return ('document.evaluate("%s",'
13                             'document,'
14                             'null,'
15                             'XPathResult.FIRST_ORDERED_NODE_TYPE,'
16                             'null)'
17          '.singleNodeValue' % re.escape(xpath))
18
19
20class IndexeddbOfflinePage(page_module.Page):
21
22  """ Why: Simulates user input while offline and sync while online. """
23
24  def __init__(self, page_set):
25    super(IndexeddbOfflinePage, self).__init__(
26      url='file://endure/indexeddb_app.html',
27      page_set=page_set,
28      name='indexeddb_offline')
29    self.user_agent_type = 'desktop'
30
31  def RunNavigateSteps(self, action_runner):
32    action_runner.NavigateToPage(self)
33    action_runner.WaitForElement(text='initialized')
34
35  def RunEndure(self, action_runner):
36    action_runner.WaitForElement('button[id="online"]:not(disabled)')
37    action_runner.ClickElement('button[id="online"]:not(disabled)')
38    action_runner.WaitForElement(
39        element_function=_CreateXpathFunction('id("state")[text()="online"]'))
40    action_runner.Wait(1)
41    action_runner.WaitForElement('button[id="offline"]:not(disabled)')
42    action_runner.ClickElement('button[id="offline"]:not(disabled)')
43    action_runner.WaitForElement(
44        element_function=_CreateXpathFunction('id("state")[text()="offline"]'))
45
46
47class IndexeddbOfflinePageSet(page_set_module.PageSet):
48
49  """ Chrome Endure test for IndexedDB. """
50
51  def __init__(self):
52    super(IndexeddbOfflinePageSet, self).__init__(
53        user_agent_type='desktop')
54
55    self.AddPage(IndexeddbOfflinePage(self))
56