190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)# Copyright 2014 The Chromium Authors. All rights reserved.
290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)# found in the LICENSE file.
490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)from telemetry.page import page as page_module
590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)from telemetry.page import page_set as page_set_module
690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)class CalendarForwardBackwardPage(page_module.Page):
990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
1090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  """ Why: Click forward(4x) and backwards(4x) repeatedly """
1190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
1290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  def __init__(self, page_set):
1390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    super(CalendarForwardBackwardPage, self).__init__(
1490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      url='https://www.google.com/calendar/',
1590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      page_set=page_set,
1690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      name='calendar_forward_backward')
1790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    self.credentials_path = 'data/credentials.json'
1890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    self.credentials = 'google'
1990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    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