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.
4from telemetry.page import page as page_module
5from telemetry.page import page_set as page_set_module
6
7
8class CalendarForwardBackwardPage(page_module.Page):
9
10  """ Why: Click forward(4x) and backwards(4x) repeatedly """
11
12  def __init__(self, page_set):
13    super(CalendarForwardBackwardPage, self).__init__(
14      url='https://www.google.com/calendar/',
15      page_set=page_set,
16      name='calendar_forward_backward')
17    self.credentials_path = 'data/credentials.json'
18    self.credentials = 'google'
19    self.user_agent_type = 'desktop'
20    self.archive_data_file = 'data/calendar_forward_backward.json'
21
22  def RunNavigateSteps(self, action_runner):
23    action_runner.NavigateToPage(self)
24    action_runner.Wait(2)
25    action_runner.WaitForElement('div[class~="navForward"]')
26    action_runner.ExecuteJavaScript('''
27        (function() {
28          var elem = document.createElement('meta');
29          elem.name='viewport';
30          elem.content='initial-scale=1';
31          document.body.appendChild(elem);
32        })();''')
33
34  def RunEndure(self, action_runner):
35    action_runner.ClickElement('div[class~="navForward"]')
36    action_runner.Wait(2)
37    action_runner.WaitForElement('div[class~="navForward"]')
38    action_runner.ClickElement('div[class~="navForward"]')
39    action_runner.Wait(2)
40    action_runner.WaitForElement('div[class~="navForward"]')
41    action_runner.ClickElement('div[class~="navForward"]')
42    action_runner.Wait(2)
43    action_runner.WaitForElement('div[class~="navForward"]')
44    action_runner.ClickElement('div[class~="navForward"]')
45    action_runner.Wait(2)
46    action_runner.WaitForElement('div[class~="navBack"]')
47    action_runner.ClickElement('div[class~="navBack"]')
48    action_runner.Wait(2)
49    action_runner.WaitForElement('div[class~="navBack"]')
50    action_runner.ClickElement('div[class~="navBack"]')
51    action_runner.Wait(2)
52    action_runner.WaitForElement('div[class~="navBack"]')
53    action_runner.ClickElement('div[class~="navBack"]')
54    action_runner.Wait(2)
55    action_runner.WaitForElement('div[class~="navBack"]')
56    action_runner.ClickElement('div[class~="navBack"]')
57    action_runner.Wait(2)
58    action_runner.WaitForElement('div[class~="navForward"]')
59
60
61class CalendarForwardBackwardPageSet(page_set_module.PageSet):
62
63  """ Chrome Endure test for Google Calendar. """
64
65  def __init__(self):
66    super(CalendarForwardBackwardPageSet, self).__init__(
67      credentials_path='data/credentials.json',
68      user_agent_type='desktop',
69      archive_data_file='data/calendar_forward_backward.json',
70      bucket=page_set_module.PUBLIC_BUCKET)
71
72    self.AddPage(CalendarForwardBackwardPage(self))
73