blob: d0a844c31124a83bc9e6e4fa9add875dbc544d91 [file] [log] [blame]
Jamie Gennis01058352012-05-06 12:48:05 -07001// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5/**
6 * @fileoverview Helper functions for use in tracing tests.
7 */
8
9
10/**
11 * goog.testing.assertion's assertEquals tweaked to do equality-to-a-constant.
12 * @param {*} a First value.
13 * @param {*} b Second value.
14 */
15function assertAlmostEquals(a, b) {
16 _validateArguments(2, arguments);
17 var var1 = nonCommentArg(1, 2, arguments);
18 var var2 = nonCommentArg(2, 2, arguments);
19 _assert(commentArg(2, arguments), Math.abs(var1 - var2) < 0.00001,
20 'Expected ' + _displayStringForValue(var1) + ' but was ' +
21 _displayStringForValue(var2));
22}
23
24cr.define('test_utils', function() {
25 function getAsync(url, cb) {
26 var req = new XMLHttpRequest();
27 req.open('GET', url, true);
28 req.onreadystatechange = function(aEvt) {
29 if (req.readyState == 4) {
30 window.setTimeout(function() {
31 if (req.status == 200) {
32 cb(req.responseText);
33 } else {
34 console.log('Failed to load ' + url);
35 }
36 }, 0);
37 }
38 };
39 req.send(null);
40 }
41
42 function newAsyncSlice(start, duration, startThread, endThread) {
43 return newAsyncSliceNamed('a', start, duration, startThread, endThread);
44 }
45
46 function newAsyncSliceNamed(name, start, duration, startThread, endThread) {
47 var s = new tracing.TimelineAsyncSlice(name, 0, start);
48 s.duration = duration;
49 s.startThread = startThread;
50 s.endThread = endThread;
51 var subSlice = new tracing.TimelineAsyncSlice(name, 0, start);
52 subSlice.duration = duration;
53 subSlice.startThread = startThread;
54 subSlice.endThread = endThread;
55 s.subSlices = [subSlice];
56 return s;
57 }
58
59 function assertArrayishEquals(ref, val) {
60 assertEquals(ref.length, val.length);
61 for (var i = 0; i < ref.length; i++)
62 assertEquals(ref[i], val[i]);
63 }
64
65
66 return {
67 getAsync: getAsync,
68 newAsyncSlice: newAsyncSlice,
69 newAsyncSliceNamed: newAsyncSliceNamed,
70 assertArrayishEquals: assertArrayishEquals
71 };
72});