1c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch# Copyright 2014 The Chromium Authors. All rights reserved. 2c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch# Use of this source code is governed by a BSD-style license that can be 3c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch# found in the LICENSE file. 4c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)import os 65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)import sys 7c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 85f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)from telemetry import benchmark 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifrom telemetry import decorators 105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)from telemetry.core import util 115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)from telemetry.core import wpr_modes 12c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochfrom telemetry.page import page as page_module 135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)from telemetry.page import page_set as page_set_module 145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)from telemetry.page import page_test 15c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochfrom telemetry.page import record_wpr 165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)from telemetry.unittest import tab_test_case 17c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 18c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class MockPage(page_module.Page): 205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def __init__(self, page_set, url): 215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) super(MockPage, self).__init__(url=url, 225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) page_set=page_set, 235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) base_dir=util.GetUnittestDataDir()) 245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.func_calls = [] 25c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def RunNavigateSteps(self, action_runner): 275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.func_calls.append('RunNavigateSteps') 285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) super(MockPage, self).RunNavigateSteps(action_runner) 29c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 30c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch def RunFoo(self, _): 315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.func_calls.append('RunFoo') 32c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 33c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch def RunBar(self, _): 345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.func_calls.append('RunBar') 35c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def RunBaz(self, _): 375f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.func_calls.append('RunBaz') 38c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 39c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class MockPageSet(page_set_module.PageSet): 415f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def __init__(self, url=''): 425f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) super(MockPageSet, self).__init__(archive_data_file='data/test.json') 435f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.AddPage(MockPage(self, url)) 44c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 45c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 465f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class MockPageTest(page_test.PageTest): 475f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def __init__(self): 485f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) super(MockPageTest, self).__init__() 495f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self._action_name_to_run = "RunBaz" 505f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.func_calls = [] 515f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 525f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) @classmethod 535f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def AddCommandLineArgs(cls, parser): 545f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) parser.add_option('--mock-page-test-option', action="store_true") 555f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 565f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def WillNavigateToPage(self, page, tab): 575f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.func_calls.append('WillNavigateToPage') 585f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 595f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def DidNavigateToPage(self, page, tab): 605f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.func_calls.append('DidNavigateToPage') 615f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 625f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def WillRunActions(self, page, tab): 635f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.func_calls.append('WillRunActions') 645f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 655f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def DidRunActions(self, page, tab): 665f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.func_calls.append('DidRunActions') 675f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 685f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def ValidatePage(self, page, tab, results): 695f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.func_calls.append('ValidatePage') 705f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 711320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci def WillStartBrowser(self, platform): 7203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) self.func_calls.append('WillStartBrowser') 7303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 7403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) def DidStartBrowser(self, browser): 7503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) self.func_calls.append('DidStartBrowser') 765f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 775f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class MockBenchmark(benchmark.Benchmark): 785f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) test = MockPageTest 795f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) mock_page_set = None 805f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 815f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) @classmethod 825f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def AddTestCommandLineArgs(cls, group): 835f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) group.add_option('', '--mock-benchmark-url', action='store', type='string') 845f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 855f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def CreatePageSet(self, options): 865f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) kwargs = {} 875f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) if (options.mock_benchmark_url): 885f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) kwargs['url'] = options.mock_benchmark_url 895f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.mock_page_set = MockPageSet(**kwargs) 905f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) return self.mock_page_set 915f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 925f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 935f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class RecordWprUnitTests(tab_test_case.TabTestCase): 945f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 955f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) _base_dir = util.GetUnittestDataDir() 966e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) _test_data_dir = os.path.join(util.GetUnittestDataDir(), 'page_tests') 975f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 985f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) @classmethod 995f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def setUpClass(cls): 1005f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) sys.path.extend([cls._base_dir, cls._test_data_dir]) 1015f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) super(RecordWprUnitTests, cls).setUpClass() 1026e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) cls._url = cls.UrlOfUnittestFile('blank.html') 1035f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 1045f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) # When the RecorderPageTest is created from a PageSet, we do not have a 1055f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) # PageTest to use. In this case, we will record every available action. 1065f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def testRunPage_AllActions(self): 1075f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) record_page_test = record_wpr.RecorderPageTest(["RunFoo", "RunBar"]) 1085f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) page = MockPage(page_set=MockPageSet(url=self._url), url=self._url) 1095f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) record_page_test.RunPage(page, self._tab, results=None) 1105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.assertTrue('RunFoo' in page.func_calls) 1115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.assertTrue('RunBar' in page.func_calls) 1125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.assertFalse('RunBaz' in page.func_calls) 1135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 1145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def testRunPage_DontReloadSingleActions(self): 1155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) record_page_test = record_wpr.RecorderPageTest(["RunFoo"]) 1165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) page = MockPage(page_set=MockPageSet(url=self._url), url=self._url) 1175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) record_page_test.RunPage(page, self._tab, results=None) 1185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.assertFalse('RunNavigateSteps' in page.func_calls) 1195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 1205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def testRunPage_ReloadPageBetweenActions(self): 1215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) record_page_test = record_wpr.RecorderPageTest(["RunFoo", "RunBar"]) 1225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) page = MockPage(page_set=MockPageSet(url=self._url), url=self._url) 1235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) record_page_test.RunPage(page, self._tab, results=None) 1245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.assertTrue('RunNavigateSteps' in page.func_calls) 1255f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 1265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) # When the RecorderPageTest is created from a Benchmark, the benchmark will 1275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) # have a PageTest, specified by its test attribute. 1285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def testRunPage_OnlyRunBenchmarkAction(self): 1295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) record_page_test = record_wpr.RecorderPageTest(["RunFoo"]) 1305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) record_page_test.page_test = MockBenchmark().test() 1315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) page = MockPage(page_set=MockPageSet(url=self._url), url=self._url) 1325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) record_page_test.RunPage(page, self._tab, results=None) 1335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.assertFalse('RunFoo' in page.func_calls) 1345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.assertTrue('RunBaz' in page.func_calls) 1355f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 1365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def testRunPage_CallBenchmarksPageTestsFunctions(self): 1375f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) record_page_test = record_wpr.RecorderPageTest([]) 1385f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) record_page_test.page_test = MockBenchmark().test() 1395f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) page = MockPage(page_set=MockPageSet(url=self._url), url=self._url) 1405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) record_page_test.RunPage(page, self._tab, results=None) 1415f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.assertEqual(3, len(record_page_test.page_test.func_calls)) 1425f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.assertEqual('WillRunActions', record_page_test.page_test.func_calls[0]) 1435f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.assertEqual('DidRunActions', record_page_test.page_test.func_calls[1]) 1445f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.assertEqual('ValidatePage', record_page_test.page_test.func_calls[2]) 1455f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 1461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci @decorators.Disabled('chromeos') # crbug.com/404868. 1475f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def testWprRecorderWithPageSet(self): 1485f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) flags = [] 1495f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) mock_page_set = MockPageSet(url=self._url) 1505f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) wpr_recorder = record_wpr.WprRecorder(self._test_data_dir, 1515f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) mock_page_set, flags) 1525f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) results = wpr_recorder.CreateResults() 1535f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) wpr_recorder.Record(results) 1545f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.assertEqual(set(mock_page_set.pages), results.pages_that_succeeded) 1555f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 1565f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def testWprRecorderWithBenchmark(self): 1575f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) flags = ['--mock-benchmark-url', self._url] 1585f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) mock_benchmark = MockBenchmark() 1595f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) wpr_recorder = record_wpr.WprRecorder(self._test_data_dir, mock_benchmark, 1605f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) flags) 1615f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) results = wpr_recorder.CreateResults() 1625f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) wpr_recorder.Record(results) 1635f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.assertEqual(set(mock_benchmark.mock_page_set.pages), 1645f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) results.pages_that_succeeded) 1655f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 1665f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def testCommandLineFlags(self): 1675f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) flags = [ 1685f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) '--page-repeat', '2', 1695f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) '--mock-benchmark-url', self._url, 1705f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) '--mock-page-test-option', 1715f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) ] 1725f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) wpr_recorder = record_wpr.WprRecorder(self._test_data_dir, MockBenchmark(), 1735f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) flags) 1745f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) # page_runner command-line args 1755f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.assertEquals(2, wpr_recorder.options.page_repeat) 1765f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) # benchmark command-line args 1775f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.assertEquals(self._url, wpr_recorder.options.mock_benchmark_url) 1785f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) # benchmark's page_test command-line args 1795f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.assertTrue(wpr_recorder.options.mock_page_test_option) 1805f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) # invalid command-line args 1815f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.assertFalse(hasattr(wpr_recorder.options, 'not_a_real_option')) 1825f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 1835f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def testRecordingEnabled(self): 1845f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) flags = ['--mock-benchmark-url', self._url] 1855f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) wpr_recorder = record_wpr.WprRecorder(self._test_data_dir, MockBenchmark(), 1865f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) flags) 1875f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.assertEqual(wpr_modes.WPR_RECORD, 1885f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) wpr_recorder.options.browser_options.wpr_mode) 1895f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 1905f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def testFindAllActionNames(self): 1916e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) # The src/tools/telemetry/unittest_data/page_tests/ has been 1925f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) # populated with three simple Page Measurement classes, the first two of 1935f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) # which have action_name_to_run defined. 1945f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) action_names_to_run = record_wpr.FindAllActionNames(self._test_data_dir) 1955f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.assertTrue('RunFoo' in action_names_to_run) 1965f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.assertTrue('RunBar' in action_names_to_run) 1975f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.assertFalse('RunBaz' in action_names_to_run) 19803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 19903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) # When the RecorderPageTest WillStartBrowser/DidStartBrowser function is 20003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) # called, it forwards the call to the PageTest 20103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) def testRecorderPageTest_BrowserMethods(self): 20203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) record_page_test = record_wpr.RecorderPageTest([]) 20303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) record_page_test.page_test = MockBenchmark().test() 2041320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci record_page_test.WillStartBrowser(self._tab.browser.platform) 20503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) record_page_test.DidStartBrowser(self._tab.browser) 20603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) self.assertTrue('WillStartBrowser' in record_page_test.page_test.func_calls) 20703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) self.assertTrue('DidStartBrowser' in record_page_test.page_test.func_calls) 208