Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6993)

Unified Diff: chrome/browser/resources/tracing/timeline_track_test.html

Issue 8513009: Add TRACE_COUNTER support to about:tracing (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/tracing/timeline_track_test.html
diff --git a/chrome/browser/resources/tracing/timeline_track_test.html b/chrome/browser/resources/tracing/timeline_track_test.html
new file mode 100644
index 0000000000000000000000000000000000000000..02eaa941fe16a37f566a617870014c021e0b5660
--- /dev/null
+++ b/chrome/browser/resources/tracing/timeline_track_test.html
@@ -0,0 +1,155 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+Copyright (c) 2010 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.
+-->
+<head i18n-values="dir:textdirection;">
+<title>TimelineTrack tests</title>
+<script src="http://closure-library.googlecode.com/svn/trunk/closure/goog/base.js"></script>
+<script>
+ goog.require('goog.testing.jsunit');
+</script>
+<style>
+* {
+ box-sizing: border-box;
+ -webkit-user-select: none;
+}
+
+.timeline-container {
+ border: 1px solid red;
+}
+
+</style>
+<link rel="stylesheet" href="timeline.css">
+<script src="../shared/js/cr.js"></script>
+<script src="../shared/js/cr/event_target.js"></script>
+<script src="../shared/js/cr/ui.js"></script>
+<script src="../shared/js/util.js"></script>
+<script src="timeline_model.js"></script>
+<script src="sorted_array_utils.js"></script>
+<script src="measuring_stick.js"></script>
+<script src="timeline.js"></script>
+<script src="timeline_track.js"></script>
+<script src="fast_rect_renderer.js"></script>
+</head>
+<body>
+<script>
+</script>
+<script>
+ var TimelineCounter = tracing.TimelineCounter;
+ var TimelineCounterTrack = tracing.TimelineCounterTrack;
+ var TimelineSliceTrack = tracing.TimelineSliceTrack;
+ var TimelineSlice = tracing.TimelineSlice;
+ var TimelineViewport = tracing.TimelineViewport;
+ var testDivs = {};
+
+ function getTestDiv(name) {
+ if (!testDivs[name]) {
+ testDivs[name] = document.createElement('div');
+ document.body.appendChild(testDivs[name]);
+ }
+ testDivs[name].textContent = '';
+ return testDivs[name];
+ }
+
+ function testBasicSlices() {
+ var testEl = getTestDiv('testBasicSlices');
+ var track = TimelineSliceTrack();
+ testEl.appendChild(track);
+ track.heading = 'testBasicSlices';
+ track.slices = [
+ new TimelineSlice('a', 0, 1, {}, 1),
+ new TimelineSlice('b', 1, 2.1, {}, 4.8),
+ new TimelineSlice('b', 1, 7, {}, 0.5),
+ new TimelineSlice('c', 2, 7.6, {}, 0.4)
+ ];
+ track.viewport = new TimelineViewport(testEl);
+ track.viewport.setPanAndScale(0,
+ track.clientWidth / (1.1 * track.slices[track.slices.length - 1].end));
+ }
+
+ function testShrinkingSliceSizes() {
+ var testEl = getTestDiv('testShrinkingSliceSizes');
+ var track = TimelineSliceTrack();
+ testEl.appendChild(track);
+ track.heading = 'testShrinkingSliceSizes';
+ var x = 0;
+ var widths = [10, 5, 4, 3, 2, 1, 0.5, 0.4, 0.3, 0.2, 0.1, 0.05];
+ var slices = [];
+ for (var i = 0; i < widths.length; i++) {
+ var s = new TimelineSlice('a', 1, x, {}, widths[i]);
+ x += s.duration + 0.5;
+ slices.push(s);
+ }
+ track.slices = slices;
+ track.viewport = new TimelineViewport(testEl);
+ track.viewport.setPanAndScale(0,
+ track.clientWidth / (1.1 * track.slices[track.slices.length - 1].end));
+ }
+
+ function testPick() {
+ var testEl = getTestDiv('testPick');
+ var track = TimelineSliceTrack();
+ testEl.appendChild(track);
+ track.heading = 'testPick';
+ track.headingWidth = '100px';
+ track.slices = [
+ new TimelineSlice('a', 0, 1, {}, 1),
+ new TimelineSlice('b', 1, 2.1, {}, 4.8)
+ ];
+ track.style.width = '500px';
+ track.viewport = new TimelineViewport(testEl);
+ track.viewport.setPanAndScale(0,
+ track.clientWidth / (1.1 * track.slices[track.slices.length - 1].end));
+ var clientRect = track.getBoundingClientRect();
+
+ var hits = [];
+ track.pick(1.5, clientRect.top + 5, function(x, y, z) { hits.push(z); });
+ assertEquals(track.slices[0], hits[0]);
+
+ hits = [];
+ track.pick(2, clientRect.top + 5, function(x, y, z) { hits.push(z); });
+ assertEquals(0, hits.length);
+
+ hits = [];
+ track.pick(6.8, clientRect.top + 5, function(x, y, z) { hits.push(z); });
+ assertEquals(track.slices[1], hits[0]);
+
+ hits = [];
+ track.pick(6.9, clientRect.top + 5, function(x, y, z) { hits.push(z); });
+ assertEquals(0, hits.length);
+ }
+
+ function testBasicCounter() {
+ var testEl = getTestDiv('testBasicCounter');
+
+ var ctr = new TimelineCounter(undefined, 'testBasicCounter');
+ ctr.numSeries = 1;
+ ctr.seriesNames = ['value1', 'value2'];
+ ctr.seriesColors = [tracing.getStringColorId('testBasicCounter.value1'),
+ tracing.getStringColorId('testBasicCounter.value2')];
+ ctr.timestamps = [0, 1, 2, 3, 4, 5, 6, 7];
+ ctr.samples = [0, 5,
+ 3, 3,
+ 1, 1,
+ 2, 1.1,
+ 3, 0,
+ 1, 7,
+ 3, 0,
+ 3.1, 0.5];
+ ctr.updateBounds();
+
+ var track = TimelineCounterTrack();
+ testEl.appendChild(track);
+ track.heading = ctr.name;
+ track.counter = ctr;
+ track.viewport = new TimelineViewport(testEl);
+ track.viewport.setPanAndScale(0,
+ track.clientWidth / (1.1 * ctr.maxTimestamp));
+ }
+
+</script>
+</body>
+</html>

Powered by Google App Engine
This is Rietveld 408576698