summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/catapult/tracing/tracing/importer/user_model_builder_test.html
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/catapult/tracing/tracing/importer/user_model_builder_test.html')
-rw-r--r--chromium/third_party/catapult/tracing/tracing/importer/user_model_builder_test.html883
1 files changed, 0 insertions, 883 deletions
diff --git a/chromium/third_party/catapult/tracing/tracing/importer/user_model_builder_test.html b/chromium/third_party/catapult/tracing/tracing/importer/user_model_builder_test.html
deleted file mode 100644
index 9938675bc42..00000000000
--- a/chromium/third_party/catapult/tracing/tracing/importer/user_model_builder_test.html
+++ /dev/null
@@ -1,883 +0,0 @@
-<!DOCTYPE html>
-<!--
-Copyright (c) 2015 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.
--->
-
-<link rel="import" href="/tracing/extras/chrome/cc/input_latency_async_slice.html">
-<link rel="import" href="/tracing/extras/chrome/chrome_test_utils.html">
-<link rel="import" href="/tracing/importer/user_expectation_verifier.html">
-
-<script>
-'use strict';
-
-tr.b.unittest.testSuite(function() {
- var INPUT_TYPE = tr.e.cc.INPUT_EVENT_TYPE_NAMES;
- var chrome_test_utils = tr.e.chrome.ChromeTestUtils;
- var UserExpectationVerifier = tr.importer.UserExpectationVerifier;
-
- function addFrameEventForInput(model, event) {
- var frame = chrome_test_utils.addFrameEvent(model,
- {start: event.start, end: event.end, isTopLevel: true});
- model.flowEvents.push(tr.c.TestUtils.newFlowEventEx({
- id: event.id,
- start: event.start,
- end: event.end,
- startSlice: frame,
- endSlice: frame
- }));
- }
-
- test('empty', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- };
- verifier.expectedIRs = [
- ];
- verifier.verify();
- });
-
- test('slowMouseMoveResponses', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addInputEvent(
- model, INPUT_TYPE.MOUSE_DOWN, {start: 0, end: 10});
- var mouseMove = chrome_test_utils.addInputEvent(
- model, INPUT_TYPE.MOUSE_MOVE, {start: 10, end: 20, id: '0x100'});
- addFrameEventForInput(model, mouseMove);
-
- mouseMove = chrome_test_utils.addInputEvent(
- model, INPUT_TYPE.MOUSE_MOVE, {start: 70, end: 80, id: '0x101'});
- addFrameEventForInput(model, mouseMove);
-
- mouseMove = chrome_test_utils.addInputEvent(
- model, INPUT_TYPE.MOUSE_MOVE, {start: 130, end: 140, id: '0x102'});
- addFrameEventForInput(model, mouseMove);
- };
- verifier.expectedIRs = [
- {title: 'Idle', start: 0, end: 10, eventCount: 0},
- {title: 'Mouse Response', start: 10, end: 20, eventCount: 4},
- {title: 'Idle', start: 20, end: 70, eventCount: 0},
- {title: 'Mouse Response', start: 70, end: 80, eventCount: 3},
- {title: 'Idle', start: 80, end: 130, eventCount: 0},
- {title: 'Mouse Response', start: 130, end: 140, eventCount: 3}
- ];
- verifier.verify();
- });
-
- test('mouseEventResponses', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- var mouseDown = chrome_test_utils.addInputEvent(
- model, INPUT_TYPE.MOUSE_DOWN, {start: 0, end: 50, id: '0x100'});
- addFrameEventForInput(model, mouseDown);
-
- var mouseUp = chrome_test_utils.addInputEvent(model, INPUT_TYPE.MOUSE_UP,
- {start: 50, end: 100, id: '0x101'});
- addFrameEventForInput(model, mouseUp);
-
- var mouseMove = chrome_test_utils.addInputEvent(
- model, INPUT_TYPE.MOUSE_MOVE, {start: 200, end: 250, id: '0x102'});
- addFrameEventForInput(model, mouseMove);
- };
- verifier.expectedIRs = [
- {title: 'Mouse Response', start: 0, end: 50, eventCount: 3},
- {title: 'Mouse Response', start: 50, end: 100, eventCount: 3},
- {title: 'Idle', start: 100, end: 200, eventCount: 0},
- {title: 'Mouse Response', start: 200, end: 250, eventCount: 3}
- ];
- verifier.verify();
- });
-
- test('mouseEventsIgnored', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.MOUSE_MOVE,
- {start: 0, end: 50});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.MOUSE_DOWN,
- {start: 50, end: 100});
- };
- verifier.expectedIRs = [
- {title: 'Idle', start: 0, end: 100, eventCount: 0}
- ];
- verifier.verify();
- });
-
- test('unassociatedEvents', function() {
- // Unassociated ThreadSlices that start during an Idle should be associated
- // with it. Expect the Idle IR to have 2 associated events: both of the
- // ThreadSlices in the model.
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- var start = tr.c.TestUtils.newSliceEx(
- {title: 'model start', start: 0, end: 1, type: tr.model.ThreadSlice});
- start.isTopLevel = true;
- model.browserMain.sliceGroup.pushSlice(start);
-
- var end = tr.c.TestUtils.newSliceEx(
- {title: 'model end', start: 9, end: 10, type: tr.model.ThreadSlice});
- end.isTopLevel = true;
- model.browserMain.sliceGroup.pushSlice(end);
- };
- verifier.expectedIRs = [
- {title: 'Idle', start: 0, end: 10, eventCount: 2}
- ];
- verifier.verify();
- });
-
- test('stillLoading', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addFrameEvent(model, {start: 0, end: 10});
- chrome_test_utils.addNavigationStartEvent(model, {start: 10});
- chrome_test_utils.addFrameEvent(model, {start: 19, end: 20});
- };
- verifier.expectedIRs = [
- {title: 'Idle', start: 0, end: 10, eventCount: 0},
- {title: 'Successful Load', start: 10, end: 20, eventCount: 0}
- ];
- verifier.verify();
- });
-
- test('overlappingIdleAndLoadCollectUnassociatedEvents', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addFrameEvent(model, {start: 0, end: 10});
- chrome_test_utils.addNavigationStartEvent(model, {start: 10});
- chrome_test_utils.addFirstContentfulPaintEvent(model, {start: 30});
- chrome_test_utils.addFrameEvent(model, {start: 35, end: 40});
- // 3 Idle events.
- chrome_test_utils.addRenderingEvent(model, {start: 5, end: 15});
- chrome_test_utils.addRenderingEvent(model, {start: 11, end: 15});
- chrome_test_utils.addRenderingEvent(model, {start: 13, end: 15});
- // 1 Idle event.
- chrome_test_utils.addRenderingEvent(model, {start: 35, end: 36});
- };
- verifier.expectedIRs = [
- {title: 'Idle', start: 0, end: 10, eventCount: 3},
- {title: 'Successful Load', start: 10, end: 30, eventCount: 0},
- {title: 'Idle', start: 30, end: 40, eventCount: 1}
- ];
- verifier.verify();
- });
-
- test('flingFlingFling', function() {
- // This trace gave me so many different kinds of trouble that I'm just going
- // to copy it straight in here, without trying to clarify it at all.
- // measurmt-traces/mobile/cnet_fling_up_fling_down_motox_2013.json
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addFrameEvent(model, {start: 0, end: 10});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_START,
- {start: 919, end: 998});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.FLING_CANCEL,
- {start: 919, end: 1001});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TAP_DOWN,
- {start: 919, end: 1001});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TAP_CANCEL,
- {start: 974, end: 1020});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_BEGIN,
- {start: 974, end: 1020});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_UPDATE,
- {start: 974, end: 1040});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_MOVE,
- {start: 974, end: 1054});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_MOVE,
- {start: 990, end: 1021});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_UPDATE,
- {start: 990, end: 1052});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_MOVE,
- {start: 1006, end: 1021});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_MOVE,
- {start: 1022, end: 1036});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_UPDATE,
- {start: 1022, end: 1052});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_MOVE,
- {start: 1038, end: 1049});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_UPDATE,
- {start: 1038, end: 1068});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_END,
- {start: 1046, end: 1050});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.FLING_START,
- {start: 1046, end: 1077});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_START,
- {start: 1432, end: 2238});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.FLING_CANCEL,
- {start: 1432, end: 2241});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_MOVE,
- {start: 1516, end: 2605});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_BEGIN,
- {start: 1532, end: 2274});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_UPDATE,
- {start: 1532, end: 2294});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_UPDATE,
- {start: 1549, end: 2310});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_END,
- {start: 1627, end: 2275});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.FLING_START,
- {start: 1627, end: 2310});
- chrome_test_utils.addFrameEvent(model, {start: 2990, end: 3000});
- };
- verifier.expectedIRs = [
- {title: 'Idle', start: 0, end: 919, eventCount: 0},
- {title: 'Scroll,Tap,Touch Response', start: 919, end: 1054,
- eventCount: 6, isAnimationBegin: true},
- {title: 'Scroll,Touch Animation', start: 1054, end: 1068,
- eventCount: 8},
- {title: 'Fling Animation', start: 1054, end: 1432,
- eventCount: 2},
- {title: 'Scroll,Touch Response', start: 1432, end: 2605,
- eventCount: 5, isAnimationBegin: true},
- {title: 'Scroll Animation', start: 1549, end: 2310,
- eventCount: 1},
- {title: 'Fling Animation', start: 2605, end: 3000,
- eventCount: 1}
- ];
- verifier.verify();
- });
-
- test('keyboardEvents', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.KEY_DOWN_RAW,
- {start: 0, end: 45});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.CHAR,
- {start: 10, end: 50});
- };
- verifier.expectedIRs = [
- {title: 'Keyboard Response', start: 0, end: 50, eventCount: 2}
- ];
- verifier.verify();
- });
-
- test('mouseResponses', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.CLICK,
- {start: 0, end: 100});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.CONTEXT_MENU,
- {start: 200, end: 300});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.MOUSE_WHEEL,
- {start: 400, end: 500});
- };
- verifier.expectedIRs = [
- {title: 'Mouse Response', start: 0, end: 100, eventCount: 1},
- {title: 'Idle', start: 100, end: 200, eventCount: 0},
- {title: 'Mouse Response', start: 200, end: 300, eventCount: 1},
- {title: 'Idle', start: 300, end: 400, eventCount: 0},
- {title: 'MouseWheel Response', start: 400, end: 500,
- eventCount: 1}
- ];
- verifier.verify();
- });
-
- test('mouseWheelAnimation', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.MOUSE_WHEEL,
- {start: 0, end: 20});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.MOUSE_WHEEL,
- {start: 16, end: 36});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.MOUSE_WHEEL,
- {start: 55, end: 75});
-
- // This threshold uses both events' start times, not end...start.
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.MOUSE_WHEEL,
- {start: 100, end: 150});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.MOUSE_WHEEL,
- {start: 141, end: 191});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.MOUSE_WHEEL,
- {start: 182, end: 200});
- };
- verifier.expectedIRs = [
- {title: 'MouseWheel Response', start: 0, end: 20, eventCount: 1},
- {title: 'MouseWheel Animation', start: 20, end: 75,
- eventCount: 2},
- {title: 'Idle', start: 75, end: 100, eventCount: 0},
- {title: 'MouseWheel Response', start: 100, end: 150,
- eventCount: 1},
- {title: 'MouseWheel Response', start: 141, end: 191,
- eventCount: 1},
- {title: 'MouseWheel Response', start: 182, end: 200,
- eventCount: 1}
- ];
- verifier.verify();
- });
-
- test('mouseDownUpResponse', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.MOUSE_DOWN,
- {start: 0, end: 100});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.MOUSE_UP,
- {start: 200, end: 210});
- };
- verifier.expectedIRs = [
- {title: 'Idle', start: 0, end: 200, eventCount: 0},
- {title: 'Mouse Response', start: 200, end: 210, eventCount: 2}
- ];
- verifier.verify();
- });
-
- test('ignoreLoneMouseMoves', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.MOUSE_MOVE,
- {start: 0, end: 100});
- };
- verifier.expectedIRs = [
- {title: 'Idle', start: 0, end: 100, eventCount: 0}
- ];
- verifier.verify();
- });
-
- test('mouseDrags', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addInputEvent(
- model, INPUT_TYPE.MOUSE_DOWN, {start: 0, end: 100});
- var mouseMove = chrome_test_utils.addInputEvent(
- model, INPUT_TYPE.MOUSE_MOVE, {start: 200, end: 215});
- addFrameEventForInput(model, mouseMove);
- mouseMove = chrome_test_utils.addInputEvent(
- model, INPUT_TYPE.MOUSE_MOVE, {start: 210, end: 220});
- addFrameEventForInput(model, mouseMove);
- mouseMove = chrome_test_utils.addInputEvent(
- model, INPUT_TYPE.MOUSE_MOVE, {start: 221, end: 240});
- addFrameEventForInput(model, mouseMove);
- };
- verifier.expectedIRs = [
- {title: 'Idle', start: 0, end: 200, eventCount: 0},
- {title: 'Mouse Response', start: 200, end: 215, eventCount: 4},
- {title: 'Mouse Animation', start: 215, end: 240, eventCount: 6}
- ];
- verifier.verify();
- });
-
- test('twoScrollsNoFling', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_BEGIN,
- {start: 0, end: 100});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_UPDATE,
- {start: 20, end: 100});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_UPDATE,
- {start: 40, end: 100});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_UPDATE,
- {start: 60, end: 150});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_UPDATE,
- {start: 70, end: 150});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_END,
- {start: 80, end: 150});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_BEGIN,
- {start: 300, end: 400});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_UPDATE,
- {start: 320, end: 400});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_UPDATE,
- {start: 330, end: 450});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_UPDATE,
- {start: 340, end: 450});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_UPDATE,
- {start: 350, end: 500});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_END,
- {start: 360, end: 500});
- };
- verifier.expectedIRs = [
- {title: 'Scroll Response', start: 0, end: 100, eventCount: 2,
- isAnimationBegin: true},
- {title: 'Scroll Animation', start: 100, end: 150, eventCount: 4},
- {title: 'Idle', start: 150, end: 300, eventCount: 0},
- {title: 'Scroll Response', start: 300, end: 400, eventCount: 2,
- isAnimationBegin: true},
- {title: 'Scroll Animation', start: 400, end: 500, eventCount: 4}
- ];
- verifier.verify();
- });
-
- test('cssAnimations', function() {
- // CSS Animations happen on the renderer process, not the browser process.
- // They are merged if they overlap.
- // They are merged with other kinds of animations.
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addEvent(model.rendererMain, {
- title: 'Animation', start: 0, end: 100, isTopLevel: true});
- chrome_test_utils.addFrameEvent(model, {start: 10, end: 20});
- chrome_test_utils.addEvent(model.rendererMain, {
- title: 'Animation', start: 131, end: 200, isTopLevel: true});
- chrome_test_utils.addFrameEvent(model, {start: 150, end: 160});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.FLING_START,
- {start: 150, end: 180});
- chrome_test_utils.addFrameEvent(model, {start: 290, end: 300});
- };
- verifier.expectedIRs = [
- {title: 'CSS Animation', start: 0, end: 200, eventCount: 4},
- {title: 'Fling Animation', start: 150, end: 300, eventCount: 1}
- ];
- verifier.verify();
- });
-
- test('cssAnimationStates', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- // If a top-level Animation async slice does not have state-change instant
- // subSlices, then assume that the animation was running throughout the
- // async slice.
- chrome_test_utils.addEvent(model.rendererMain, {
- title: 'Animation', start: 181, end: 250, isTopLevel: true});
- chrome_test_utils.addFrameEvent(model, {start: 200, end: 240});
-
- // Animation ranges should be merged if there is less than 32ms dead time
- // between them.
-
- // If a top-level Animation async slice has state-change instant events,
- // then run a state machine to find the time ranges when the animation was
- // actually running.
-
- // This animation was running from 10-40 and 50-60.
- var animationA = tr.c.TestUtils.newAsyncSliceEx(
- {title: 'Animation', start: 50, end: 500, isTopLevel: true});
- animationA.subSlices.push(tr.c.TestUtils.newInstantEvent(
- {title: 'Animation', start: 71, args: {state: 'running'}}));
- animationA.subSlices.push(tr.c.TestUtils.newInstantEvent(
- {title: 'Animation', start: 104, args: {state: 'pending'}}));
- animationA.subSlices.push(tr.c.TestUtils.newInstantEvent(
- {title: 'Animation', start: 137, args: {state: 'running'}}));
- animationA.subSlices.push(tr.c.TestUtils.newInstantEvent(
- {title: 'Animation', start: 150, args: {state: 'paused'}}));
- animationA.subSlices.push(tr.c.TestUtils.newInstantEvent(
- {title: 'Animation', start: 281, args: {state: 'running'}}));
- animationA.subSlices.push(tr.c.TestUtils.newInstantEvent(
- {title: 'Animation', start: 350, args: {state: 'idle'}}));
- model.rendererMain.asyncSliceGroup.push(animationA);
- chrome_test_utils.addFrameEvent(model, {start: 80, end: 90});
- chrome_test_utils.addFrameEvent(model, {start: 290, end: 300});
-
- // An animation without a frame event isn't really an animation.
- chrome_test_utils.addEvent(model.rendererMain, {
- title: 'Animation', start: 350, end: 382, isTopLevel: true});
-
- // This animation was running from model.bounds.min-50 and
- // 70-model.bounds.max.
- var animationB = tr.c.TestUtils.newAsyncSliceEx(
- {title: 'Animation', start: 0, end: 500, isTopLevel: true});
- animationB.subSlices.push(tr.c.TestUtils.newInstantEvent(
- {title: 'Animation', start: 40, args: {state: 'finished'}}));
- animationB.subSlices.push(tr.c.TestUtils.newInstantEvent(
- {title: 'Animation', start: 382, args: {state: 'running'}}));
- model.rendererMain.asyncSliceGroup.push(animationB);
- chrome_test_utils.addFrameEvent(model, {start: 10, end: 20});
- chrome_test_utils.addFrameEvent(model, {start: 390, end: 400});
- };
- verifier.expectedIRs = [
- {title: 'CSS Animation', start: 0, end: 350, eventCount: 15},
- {title: 'Idle', start: 350, end: 382, eventCount: 0},
- {title: 'CSS Animation', start: 382, end: 500, eventCount: 4},
- ];
- verifier.verify();
- });
-
- test('flingThatIsntstopped', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.FLING_START,
- {start: 32, end: 100});
- chrome_test_utils.addFlingAnimationEvent(model, {start: 38, end: 200});
- chrome_test_utils.addFrameEvent(model, {start: 290, end: 300});
- };
- verifier.expectedIRs = [
- {title: 'Fling Animation', start: 32, end: 200, eventCount: 2},
- {title: 'Idle', start: 200, end: 300, eventCount: 0}
- ];
- verifier.verify();
- });
-
- test('flingThatIsStopped', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.FLING_START,
- {start: 32, end: 100});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.FLING_CANCEL,
- {start: 105, end: 150});
- };
- verifier.expectedIRs = [
- {title: 'Fling Animation', start: 32, end: 105, eventCount: 2},
- {title: 'Idle', start: 105, end: 150, eventCount: 0}
- ];
- verifier.verify();
- });
-
- test('flingFling', function() {
- // measurmt-traces/mobile/facebook_obama_scroll_dialog_box.html
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.FLING_START,
- {start: 0, end: 30});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_START,
- {start: 100, end: 130});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.FLING_CANCEL,
- {start: 100, end: 130});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_MOVE,
- {start: 110, end: 140});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_MOVE,
- {start: 170, end: 180});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_END,
- {start: 200, end: 210});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.FLING_START,
- {start: 200, end: 220});
- chrome_test_utils.addFrameEvent(model, {start: 230, end: 240});
- };
- verifier.expectedIRs = [
- {title: 'Fling Animation', start: 0, end: 100, eventCount: 2},
- {title: 'Touch Response', start: 100, end: 140, eventCount: 2,
- isAnimationBegin: true},
- {title: 'Touch Animation', start: 140, end: 210, eventCount: 2},
- {title: 'Fling Animation', start: 200, end: 240, eventCount: 1}
- ];
- verifier.verify();
- });
-
- test('load', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addNavigationStartEvent(model, {start: 0});
- chrome_test_utils.addFirstContentfulPaintEvent(model, {start: 20});
- };
- verifier.expectedIRs = [
- {title: 'Successful Load', start: 0, end: 20, eventCount: 0}
- ];
- verifier.verify();
- });
-
- test('loadStartup', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addRenderingEvent(model, {start: 2, end: 3});
- chrome_test_utils.addCreateThreadsEvent(model, {start: 5, end: 10});
- // Throw an second one in there, just to try to confuse the algo.
- chrome_test_utils.addCreateThreadsEvent(model, {start: 25, end: 30});
- chrome_test_utils.addFrameEvent(model, {start: 11, end: 20});
- };
- verifier.expectedIRs = [
- {title: 'Startup', start: 2, end: 20, eventCount: 2},
- {title: 'Idle', start: 20, end: 30, eventCount: 0}
- ];
- verifier.verify();
- });
-
- test('totalIdle', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addFrameEvent(model, {start: 0, end: 10});
- };
- verifier.expectedIRs = [
- {title: 'Idle', start: 0, end: 10, eventCount: 0}
- ];
- verifier.verify();
- });
-
- test('multipleIdles', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addFrameEvent(model, {start: 0, end: 1});
- chrome_test_utils.addNavigationStartEvent(model, {start: 1});
- chrome_test_utils.addFirstContentfulPaintEvent(model, {start: 4});
- chrome_test_utils.addFrameEvent(model, {start: 12, end: 13});
- };
- verifier.expectedIRs = [
- {title: 'Idle', start: 0, end: 1, eventCount: 0},
- {title: 'Successful Load', start: 1, end: 4, eventCount: 0},
- {title: 'Idle', start: 4, end: 13, eventCount: 0}
- ];
- verifier.verify();
- });
-
- test('touchStartTouchEndTap', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_START,
- {start: 0, end: 10});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_END,
- {start: 200, end: 210});
- };
- verifier.expectedIRs = [
- {title: 'Touch Response', start: 0, end: 210, eventCount: 2,
- isAnimationBegin: true}
- ];
- verifier.verify();
- });
-
- test('touchMoveResponseAnimation', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_START,
- {start: 0, end: 10});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_MOVE,
- {start: 50, end: 100});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_MOVE,
- {start: 70, end: 150});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_END,
- {start: 200, end: 300});
- };
- verifier.expectedIRs = [
- {title: 'Touch Response', start: 0, end: 100, eventCount: 2,
- isAnimationBegin: true},
- {title: 'Touch Animation', start: 100, end: 300, eventCount: 2}
- ];
- verifier.verify();
- });
-
- test('tapEvents', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TAP,
- {start: 0, end: 50});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TAP_DOWN,
- {start: 300, end: 310});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TAP,
- {start: 320, end: 350});
- };
- verifier.expectedIRs = [
- {title: 'Tap Response', start: 0, end: 50, eventCount: 1},
- {title: 'Idle', start: 50, end: 300, eventCount: 0},
- {title: 'Tap Response', start: 300, end: 350, eventCount: 2}
- ];
- verifier.verify();
- });
-
- test('tapAndTapCancelResponses', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TAP_DOWN,
- {start: 0, end: 100});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TAP_CANCEL,
- {start: 300, end: 350});
- };
- verifier.expectedIRs = [
- {title: 'Tap Response', start: 0, end: 100, eventCount: 1},
- {title: 'Idle', start: 100, end: 300, eventCount: 0},
- {title: 'Tap Response', start: 300, end: 350, eventCount: 1}
- ];
- verifier.verify();
- });
-
- test('tapCancelResponse', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TAP_DOWN,
- {start: 0, end: 100});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TAP_CANCEL,
- {start: 150, end: 200});
- };
- verifier.expectedIRs = [
- {title: 'Tap Response', start: 0, end: 200, eventCount: 2}
- ];
- verifier.verify();
- });
-
- test('pinchResponseAnimation', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addFrameEvent(model, {start: 0, end: 10});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.PINCH_BEGIN,
- {start: 100, end: 150});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.PINCH_UPDATE,
- {start: 130, end: 160});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.PINCH_UPDATE,
- {start: 140, end: 200});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.PINCH_UPDATE,
- {start: 150, end: 205});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.PINCH_UPDATE,
- {start: 210, end: 220});
- // pause > 200ms
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.PINCH_UPDATE,
- {start: 421, end: 470});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.PINCH_END,
- {start: 460, end: 500});
- };
- verifier.expectedIRs = [
- {title: 'Idle', start: 0, end: 100, eventCount: 0},
- {title: 'Pinch Response', start: 100, end: 160, eventCount: 2,
- isAnimationBegin: true},
- {title: 'Pinch Animation', start: 160, end: 220, eventCount: 3},
- {title: 'Idle', start: 220, end: 421, eventCount: 0},
- {title: 'Pinch Animation', start: 421, end: 500, eventCount: 2}
- ];
- verifier.verify();
- });
-
- test('tapThenScroll', function() {
- // measurmt-traces/mobile/google_io_instrument_strumming.json
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_START,
- {start: 0, end: 20});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_END,
- {start: 40, end: 100});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_START,
- {start: 50, end: 120});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_MOVE,
- {start: 80, end: 150});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_MOVE,
- {start: 180, end: 200});
- };
- verifier.expectedIRs = [
- {title: 'Touch Response', start: 0, end: 100, eventCount: 2,
- isAnimationBegin: true},
- {title: 'Touch Response', start: 50, end: 150, eventCount: 2,
- isAnimationBegin: true},
- {title: 'Touch Animation', start: 150, end: 200, eventCount: 1}
- ];
- verifier.verify();
- });
-
- test('pinchFlingTapTouchEventsOverlap', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addFrameEvent(model, {start: 0, end: 10});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_START,
- {start: 20, end: 50});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TAP_DOWN,
- {start: 20, end: 30});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.FLING_CANCEL,
- {start: 20, end: 50});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_MOVE,
- {start: 60, end: 100});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_START,
- {start: 60, end: 110});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.PINCH_BEGIN,
- {start: 60, end: 100});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TAP_CANCEL,
- {start: 65, end: 75});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_MOVE,
- {start: 70, end: 100});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.PINCH_UPDATE,
- {start: 70, end: 100});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_UPDATE,
- {start: 75, end: 100});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_MOVE,
- {start: 80, end: 100});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_UPDATE,
- {start: 85, end: 100});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_BEGIN,
- {start: 75, end: 100});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_MOVE,
- {start: 150, end: 200});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_UPDATE,
- {start: 150, end: 200});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.FLING_START,
- {start: 180, end: 210});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_END,
- {start: 190, end: 210});
- chrome_test_utils.addFrameEvent(model, {start: 215, end: 220});
- };
- verifier.expectedIRs = [
- {title: 'Idle', start: 0, end: 20, eventCount: 0},
- {title: 'Pinch,Scroll,Tap,Touch Response', start: 20, end: 110,
- eventCount: 9, isAnimationBegin: true},
- {title: 'Scroll,Touch Animation', start: 110, end: 210,
- eventCount: 6},
- {title: 'Fling Animation', start: 180, end: 220, eventCount: 1}
- ];
- verifier.verify();
- });
-
- test('scrollThenFling', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_UPDATE,
- {start: 0, end: 40});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_UPDATE,
- {start: 50, end: 100});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.FLING_START,
- {start: 80, end: 100});
- chrome_test_utils.addFrameEvent(model, {start: 190, end: 200});
- };
- verifier.expectedIRs = [
- {title: 'Scroll Animation', start: 0, end: 100, eventCount: 2},
- {title: 'Fling Animation', start: 80, end: 200, eventCount: 1}
- ];
- verifier.verify();
- });
-
- /*
- This test was generated from
- /test_data/measurmt-traces/mobile/fling_HN_to_rest.json
- */
- test('flingHNToRest', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addEvent(model.browserMain,
- {title: 'model start', start: 0, end: 1});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_START,
- {start: 1274, end: 1297});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TAP_DOWN,
- {start: 1274, end: 1305});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_MOVE,
- {start: 1343, end: 1350});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_MOVE,
- {start: 1359, end: 1366});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TAP_CANCEL,
- {start: 1359, end: 1366});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_BEGIN,
- {start: 1359, end: 1367});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_UPDATE,
- {start: 1359, end: 1387});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_MOVE,
- {start: 1375, end: 1385});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_UPDATE,
- {start: 1375, end: 1416});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_MOVE,
- {start: 1389, end: 1404});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_UPDATE,
- {start: 1389, end: 1429});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_MOVE,
- {start: 1405, end: 1418});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_UPDATE,
- {start: 1405, end: 1449});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_MOVE,
- {start: 1419, end: 1432});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.SCROLL_UPDATE,
- {start: 1419, end: 1474});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_END,
- {start: 1427, end: 1435});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.FLING_START,
- {start: 1427, end: 1474});
- chrome_test_utils.addFlingAnimationEvent(model, {start: 1440, end: 2300});
- chrome_test_utils.addEvent(model.browserMain,
- {title: 'model end', start: 3184, end: 3185});
- };
- verifier.expectedIRs = [
- {title: 'Idle', start: 0, end: 1274, eventCount: 0},
- {title: 'Scroll,Tap,Touch Response', start: 1274, end: 1387,
- eventCount: 6, isAnimationBegin: true},
- {title: 'Scroll,Touch Animation', start: 1387, end: 1474,
- eventCount: 10},
- {title: 'Fling Animation', start: 1427, end: 2300,
- eventCount: 2},
- {title: 'Idle', start: 2300, end: 3185, eventCount: 0}
- ];
- verifier.verify();
- });
-
- test('TapResponseOverlappingTouchAnimation', function() {
- var verifier = new UserExpectationVerifier();
- verifier.customizeModelCallback = function(model) {
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_MOVE,
- {start: 0, end: 10});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_MOVE,
- {start: 5, end: 15});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TOUCH_MOVE,
- {start: 10, end: 20});
- chrome_test_utils.addInputEvent(model, INPUT_TYPE.TAP,
- {start: 15, end: 100});
- };
- verifier.expectedIRs = [
- {title: 'Tap,Touch Response', start: 0, end: 100,
- eventCount: 4}
- ];
- verifier.verify();
- });
-});
-</script>