Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / tools / telemetry / telemetry / page / page_runner_repeat.py
1 # Copyright 2013 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
5
6 class PageRunnerRepeatState(object):
7   def __init__(self, args):
8     self.total_pageset_iters = args.pageset_repeat
9     self.total_page_iters = args.page_repeat
10
11     self.pageset_iters = None
12     self.page_iters = None
13
14   def WillRunPage(self):
15     """Runs before we start repeating a page."""
16     self.page_iters = 0
17
18   def WillRunPageSet(self):
19     """Runs before we start repeating a pageset."""
20     self.pageset_iters = 0
21
22   def DidRunPage(self):
23     """Runs after each completion of a page iteration"""
24     self.page_iters += 1
25
26   def DidRunPageSet(self):
27     """Runs after each completion of a pageset iteration"""
28     self.pageset_iters += 1
29
30   def ShouldRepeatPageSet(self):
31     """Returns True if we need to repeat this pageset more times."""
32     return self.pageset_iters < self.total_pageset_iters
33
34   def ShouldRepeatPage(self):
35     """Returns True if we need to repeat this page more times."""
36     return self.page_iters < self.total_page_iters
37
38   def ShouldNavigate(self, skip_navigate_on_repeat):
39     """Checks whether we want to perform a navigate action.
40
41     Args:
42       skip_navigate_on_repeat: Boolean, whether we want to skip the navigate
43           step when repeating a single page. This option is useful for endure
44           tests, where we don't want to reload the page when repeating it.
45
46     Returns:
47       True if we want to navigate.
48     """
49     # Always navigate on the first iteration of a page and on every new pageset.
50     return self.page_iters == 0 or not skip_navigate_on_repeat