pull the latest source from chromium
Change-Id: I1b3c58851267826d3322332649799a069891009e
diff --git a/src/tracing/test_utils.js b/src/tracing/test_utils.js
new file mode 100644
index 0000000..d0a844c
--- /dev/null
+++ b/src/tracing/test_utils.js
@@ -0,0 +1,72 @@
+// Copyright (c) 2012 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.
+
+/**
+ * @fileoverview Helper functions for use in tracing tests.
+ */
+
+
+/**
+ * goog.testing.assertion's assertEquals tweaked to do equality-to-a-constant.
+ * @param {*} a First value.
+ * @param {*} b Second value.
+ */
+function assertAlmostEquals(a, b) {
+ _validateArguments(2, arguments);
+ var var1 = nonCommentArg(1, 2, arguments);
+ var var2 = nonCommentArg(2, 2, arguments);
+ _assert(commentArg(2, arguments), Math.abs(var1 - var2) < 0.00001,
+ 'Expected ' + _displayStringForValue(var1) + ' but was ' +
+ _displayStringForValue(var2));
+}
+
+cr.define('test_utils', function() {
+ function getAsync(url, cb) {
+ var req = new XMLHttpRequest();
+ req.open('GET', url, true);
+ req.onreadystatechange = function(aEvt) {
+ if (req.readyState == 4) {
+ window.setTimeout(function() {
+ if (req.status == 200) {
+ cb(req.responseText);
+ } else {
+ console.log('Failed to load ' + url);
+ }
+ }, 0);
+ }
+ };
+ req.send(null);
+ }
+
+ function newAsyncSlice(start, duration, startThread, endThread) {
+ return newAsyncSliceNamed('a', start, duration, startThread, endThread);
+ }
+
+ function newAsyncSliceNamed(name, start, duration, startThread, endThread) {
+ var s = new tracing.TimelineAsyncSlice(name, 0, start);
+ s.duration = duration;
+ s.startThread = startThread;
+ s.endThread = endThread;
+ var subSlice = new tracing.TimelineAsyncSlice(name, 0, start);
+ subSlice.duration = duration;
+ subSlice.startThread = startThread;
+ subSlice.endThread = endThread;
+ s.subSlices = [subSlice];
+ return s;
+ }
+
+ function assertArrayishEquals(ref, val) {
+ assertEquals(ref.length, val.length);
+ for (var i = 0; i < ref.length; i++)
+ assertEquals(ref[i], val[i]);
+ }
+
+
+ return {
+ getAsync: getAsync,
+ newAsyncSlice: newAsyncSlice,
+ newAsyncSliceNamed: newAsyncSliceNamed,
+ assertArrayishEquals: assertArrayishEquals
+ };
+});