Index: tools/telemetry/telemetry/multi_page_benchmark_unittest.py |
diff --git a/tools/telemetry/telemetry/multi_page_benchmark_unittest.py b/tools/telemetry/telemetry/multi_page_benchmark_unittest.py |
index ca59014933b1b9599faa9fc3a90f4405ccd816cc..8e2445ec48b0c78cd903e3e3dbc866862eba3b74 100644 |
--- a/tools/telemetry/telemetry/multi_page_benchmark_unittest.py |
+++ b/tools/telemetry/telemetry/multi_page_benchmark_unittest.py |
@@ -6,6 +6,7 @@ import os |
from telemetry import multi_page_benchmark |
from telemetry import multi_page_benchmark_unittest_base |
from telemetry import page as page_module |
+from telemetry import page_interaction |
from telemetry import page_set |
from telemetry import wpr_modes |
@@ -33,10 +34,18 @@ class BenchForReplay(multi_page_benchmark.MultiPageBenchmark): |
if '404 Not Found' in contents.strip(): |
raise multi_page_benchmark.MeasurementFailure('Page not in archive.') |
+class BenchWithInteraction(multi_page_benchmark.MultiPageBenchmark): |
+ def GetInteractionName(self): |
+ return 'test_interaction' |
+ |
+ def MeasurePage(self, page, tab, results): |
+ pass |
+ |
class MultiPageBenchmarkUnitTest( |
multi_page_benchmark_unittest_base.MultiPageBenchmarkUnitTestBase): |
_wpr_mode = wpr_modes.WPR_OFF |
+ _interaction_called = False |
def CustomizeOptionsForTest(self, options): |
options.wpr_mode = self._wpr_mode |
@@ -90,3 +99,15 @@ class MultiPageBenchmarkUnitTest( |
finally: |
if os.path.isfile(test_archive): |
os.remove(test_archive) |
+ |
+ def testInteractions(self): |
+ class MockInteraction(page_interaction.PageInteraction): |
+ def PerformInteraction(self, page, tab): |
+ MultiPageBenchmarkUnitTest._interaction_called = True |
+ page_interaction.RegisterClass('mock', MockInteraction) |
+ |
+ ps = self.CreatePageSetFromFileInUnittestDataDir('blank.html') |
+ setattr(ps.pages[0], 'test_interaction', {'action': 'mock'}) |
+ benchmark = BenchWithInteraction() |
+ self.RunBenchmark(benchmark, ps) |
+ self.assertTrue(MultiPageBenchmarkUnitTest._interaction_called) |