calendar_forward_backward.py revision 0529e5d033099cbfc42635f6f6183833b09dff6e
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# pylint: disable=W0401,W0614
5from telemetry.page.actions.all_page_actions import *
6from telemetry.page import page as page_module
7from telemetry.page import page_set as page_set_module
8
9
10class CalendarForwardBackwardPage(page_module.PageWithDefaultRunNavigate):
11
12  """ Why: Click forward(4x) and backwards(4x) repeatedly """
13
14  def __init__(self, page_set):
15    super(CalendarForwardBackwardPage, self).__init__(
16      url='https://www.google.com/calendar/',
17      page_set=page_set)
18    self.credentials_path = 'data/credentials.json'
19    self.credentials = 'google'
20    self.user_agent_type = 'desktop'
21    self.archive_data_file = 'data/calendar_forward_backward.json'
22    self.name = 'calendar_forward_backward'
23
24  def RunNavigateSteps(self, action_runner):
25    action_runner.RunAction(NavigateAction())
26    action_runner.RunAction(WaitAction(
27      {
28        'seconds': 2
29      }))
30    action_runner.RunAction(WaitAction(
31      {
32        'condition': 'element',
33        'selector': 'div[class~="navForward"]'
34      }))
35    action_runner.RunAction(JavascriptAction(
36      {
37        'expression': '''
38          (function() {
39            var elem = document.createElement('meta');
40            elem.name='viewport';
41            elem.content='initial-scale=1';
42            document.body.appendChild(elem);
43          })();'''
44      }))
45
46  def RunEndure(self, action_runner):
47    action_runner.RunAction(ClickElementAction(
48      {
49        'selector': 'div[class~="navForward"]'
50      }))
51    action_runner.RunAction(WaitAction(
52      {
53        'seconds': 2
54      }))
55    action_runner.RunAction(WaitAction(
56      {
57        'condition': 'element',
58        'selector': 'div[class~="navForward"]'
59      }))
60    action_runner.RunAction(ClickElementAction(
61      {
62        'selector': 'div[class~="navForward"]'
63      }))
64    action_runner.RunAction(WaitAction(
65      {
66        'seconds': 2
67      }))
68    action_runner.RunAction(WaitAction(
69      {
70        'condition': 'element',
71        'selector': 'div[class~="navForward"]'
72      }))
73    action_runner.RunAction(ClickElementAction(
74      {
75        'selector': 'div[class~="navForward"]'
76      }))
77    action_runner.RunAction(WaitAction(
78      {
79        'seconds': 2
80      }))
81    action_runner.RunAction(WaitAction(
82      {
83        'condition': 'element',
84        'selector': 'div[class~="navForward"]'
85      }))
86    action_runner.RunAction(ClickElementAction(
87      {
88        'selector': 'div[class~="navForward"]'
89      }))
90    action_runner.RunAction(WaitAction(
91      {
92        'seconds': 2
93      }))
94    action_runner.RunAction(WaitAction(
95      {
96        'condition': 'element',
97        'selector': 'div[class~="navBack"]'
98      }))
99    action_runner.RunAction(ClickElementAction(
100      {
101        'selector': 'div[class~="navBack"]'
102      }))
103    action_runner.RunAction(WaitAction(
104      {
105        'seconds': 2
106      }))
107    action_runner.RunAction(WaitAction(
108      {
109        'condition': 'element',
110        'selector': 'div[class~="navBack"]'
111      }))
112    action_runner.RunAction(ClickElementAction(
113      {
114        'selector': 'div[class~="navBack"]'
115      }))
116    action_runner.RunAction(WaitAction(
117      {
118        'seconds': 2
119      }))
120    action_runner.RunAction(WaitAction(
121      {
122        'condition': 'element',
123        'selector': 'div[class~="navBack"]'
124      }))
125    action_runner.RunAction(ClickElementAction(
126      {
127        'selector': 'div[class~="navBack"]'
128      }))
129    action_runner.RunAction(WaitAction(
130      {
131        'seconds': 2
132      }))
133    action_runner.RunAction(WaitAction(
134      {
135        'condition': 'element',
136        'selector': 'div[class~="navBack"]'
137      }))
138    action_runner.RunAction(ClickElementAction(
139      {
140        'selector': 'div[class~="navBack"]'
141      }))
142    action_runner.RunAction(WaitAction(
143      {
144        'seconds': 2
145      }))
146    action_runner.RunAction(WaitAction(
147      {
148        'condition': 'element',
149        'selector': 'div[class~="navForward"]'
150      }))
151
152
153class CalendarForwardBackwardPageSet(page_set_module.PageSet):
154
155  """ Chrome Endure test for Google Calendar. """
156
157  def __init__(self):
158    super(CalendarForwardBackwardPageSet, self).__init__(
159      credentials_path='data/credentials.json',
160      user_agent_type='desktop',
161      archive_data_file='data/calendar_forward_backward.json')
162
163    self.AddPage(CalendarForwardBackwardPage(self))
164