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.
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
11 self.pageset_iters = None
12 self.page_iters = None
14 def WillRunPage(self):
15 """Runs before we start repeating a page."""
18 def WillRunPageSet(self):
19 """Runs before we start repeating a pageset."""
20 self.pageset_iters = 0
23 """Runs after each completion of a page iteration"""
26 def DidRunPageSet(self):
27 """Runs after each completion of a pageset iteration"""
28 self.pageset_iters += 1
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
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
38 def ShouldNavigate(self, skip_navigate_on_repeat):
39 """Checks whether we want to perform a navigate action.
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.
47 True if we want to navigate.
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