| Index: tools/telemetry/telemetry/page/actions/action_runner_unittest.py
|
| diff --git a/tools/telemetry/telemetry/page/actions/action_runner_unittest.py b/tools/telemetry/telemetry/page/actions/action_runner_unittest.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..71980709cf86ca6a46682af504864617b216f1a3
|
| --- /dev/null
|
| +++ b/tools/telemetry/telemetry/page/actions/action_runner_unittest.py
|
| @@ -0,0 +1,34 @@
|
| +# Copyright (c) 2014 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +from telemetry.core.backends.chrome import tracing_backend
|
| +from telemetry.core.timeline import model
|
| +from telemetry.page.actions import action_runner as action_runner_module
|
| +# pylint: disable=W0401,W0614
|
| +from telemetry.page.actions.all_page_actions import *
|
| +from telemetry.unittest import tab_test_case
|
| +from telemetry.web_perf import timeline_interaction_record as tir_module
|
| +
|
| +
|
| +class ActionRunnerTest(tab_test_case.TabTestCase):
|
| + def testIssuingInteractionRecord(self):
|
| + action_runner = action_runner_module.ActionRunner(self._tab)
|
| + self.Navigate('interaction_enabled_page.html')
|
| + action_runner.RunAction(WaitAction({'seconds': 1}))
|
| + self._browser.StartTracing(tracing_backend.DEFAULT_TRACE_CATEGORIES)
|
| + action_runner.BeginInteraction('TestInteraction', [tir_module.IS_SMOOTH])
|
| + action_runner.EndInteraction('TestInteraction', [tir_module.IS_SMOOTH])
|
| + trace_data = self._browser.StopTracing()
|
| + timeline_model = model.TimelineModel(trace_data)
|
| +
|
| + records = []
|
| + renderer_thread = timeline_model.GetRendererThreadFromTab(self._tab)
|
| + for event in renderer_thread.async_slices:
|
| + if not tir_module.IsTimelineInteractionRecord(event.name):
|
| + continue
|
| + records.append(tir_module.TimelineInteractionRecord.FromEvent(event))
|
| + self.assertEqual(1, len(records),
|
| + 'Fail to issue the interaction record on tracing timeline.'
|
| + ' Trace data:\n%s' % repr(trace_data.EventData()))
|
| + self.assertEqual('TestInteraction', records[0].logical_name)
|
| + self.assertTrue(records[0].is_smooth)
|
|
|