Home | History | Annotate | Download | only in tracing
      1 // 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  */
     15 function 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 
     24 cr.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 });
     73