Index: tools/telemetry/telemetry/page/page_runner_unittest.py |
diff --git a/tools/telemetry/telemetry/page/page_runner_unittest.py b/tools/telemetry/telemetry/page/page_runner_unittest.py |
index fbc5f7c67d21bc931732f1646671a6427d9173da..b39a308f326b65b077b50ab33ffc1f24ae339892 100644 |
--- a/tools/telemetry/telemetry/page/page_runner_unittest.py |
+++ b/tools/telemetry/telemetry/page/page_runner_unittest.py |
@@ -438,3 +438,42 @@ class PageRunnerTests(unittest.TestCase): |
SetUpPageRunnerArguments(options) |
page_runner.Run(test, ps, expectations, options) |
assert test.did_call_clean_up |
+ |
+ # Ensure skipping the test if page cannot be run on the browser |
+ def testPageCannotRunOnBrowser(self): |
+ ps = page_set.PageSet() |
+ expectations = test_expectations.TestExpectations() |
+ |
+ class PageThatCannotRunOnBrowser(page_module.Page): |
+ |
+ def __init__(self): |
+ super(PageThatCannotRunOnBrowser, self).__init__( |
+ url='file://blank.html', page_set=ps, |
+ base_dir=util.GetUnittestDataDir()) |
+ |
+ def CanRunOnBrowser(self, _): |
+ return False |
+ |
+ def ValidatePage(self, _): |
+ pass |
+ |
+ class Test(page_test.PageTest): |
+ def __init__(self, *args, **kwargs): |
+ super(Test, self).__init__(*args, **kwargs) |
+ self.will_navigate_to_page_called = False |
+ |
+ def ValidatePage(self, *args): |
+ pass |
+ |
+ def WillNavigateToPage(self, _1, _2): |
+ self.will_navigate_to_page_called = True |
+ |
+ test = Test() |
+ options = options_for_unittests.GetCopy() |
+ options.output_format = 'none' |
+ SetUpPageRunnerArguments(options) |
+ results = page_runner.Run(test, ps, expectations, options) |
+ self.assertFalse(test.will_navigate_to_page_called) |
+ self.assertEquals(0, len(results.successes)) |
+ self.assertEquals(0, len(results.failures)) |
+ self.assertEquals(0, len(results.errors)) |