Home | History | Annotate | Download | only in base
      1 <!DOCTYPE html>
      2 <!--
      3 Copyright (c) 2014 The Chromium Authors. All rights reserved.
      4 Use of this source code is governed by a BSD-style license that can be
      5 found in the LICENSE file.
      6 -->
      7 
      8 <link rel="import" href="/tracing/base/timing.html">
      9 <script>
     10 'use strict';
     11 
     12 tr.b.unittest.testSuite(function() {
     13   var Timing = tr.b.Timing;
     14 
     15   test('computeUserTimingMarkName', function() {
     16     if (tr.isHeadless)
     17       return;
     18     var name1 = tr.b._computeUserTimingMarkName('Test', 'test1', {'a': 1});
     19     assert.equal(name1, 'Test:test1/eyJhIjoxfQ==');
     20     var name2 = tr.b._computeUserTimingMarkName('Test', 'test2');
     21     assert.equal(name2, 'Test:test2');
     22     var name3 = tr.b._computeUserTimingMarkName(
     23         'Test', 'test1', {'a': 1, 'b': {'c': 2}});
     24     assert.equal(name3, 'Test:test1/eyJhIjoxLCJiIjp7ImMiOjJ9fQ==');
     25   });
     26 
     27   test('TimingMarkWithoutArgs', function() {
     28     if (tr.isHeadless)
     29       return;
     30     var markedTime = Timing.mark('Test', 'TimingMarkWithoutArgs');
     31     markedTime.end();
     32     var result = window.performance.getEntriesByName(
     33         'Test:TimingMarkWithoutArgs');
     34     var duration = parseFloat(result[0].duration);
     35     assert.isTrue(duration >= 0.0);
     36   });
     37 
     38   test('TimingMarkWithArgs', function() {
     39     if (tr.isHeadless)
     40       return;
     41     var markedTime = Timing.mark('Test', 'TimingMarkWithoutArgs', {'a': 1});
     42     markedTime.end();
     43     var result = window.performance.getEntriesByName(
     44         'Test:TimingMarkWithoutArgs/eyJhIjoxfQ==');
     45     var duration = parseFloat(result[0].duration);
     46     assert.isTrue(duration >= 0.0);
     47   });
     48 
     49   test('TimingWrapWithAnonymousFunction', function() {
     50     assert.throw(function() {
     51       Timing.wrap('Test', function() {})();
     52     }, Error, 'Anonymous function is not allowed');
     53   });
     54 
     55   test('TimingWrap', function(done) {
     56     if (tr.isHeadless)
     57       return;
     58     Timing.wrap('Test', function addTo1000() {
     59       var x = 0;
     60       for (var i = 0; i <= 1000; ++i)
     61         x += i;
     62       assert.equal(x, 500500);
     63     })();
     64     var result = window.performance.getEntriesByName('Test:addTo1000');
     65     var duration = parseFloat(result[0].duration);
     66     assert.isTrue(duration >= 0.0);
     67   });
     68 
     69   test('TimingWrapNamedFunction', function() {
     70     if (tr.isHeadless)
     71       return;
     72     Timing.wrapNamedFunction('Test', 'addTo100', function() {
     73       var x = 0;
     74       for (var i = 0; i <= 100; ++i)
     75         x += i;
     76       assert.equal(x, 5050);
     77     })();
     78     var result = window.performance.getEntriesByName('Test:addTo100');
     79     var duration = parseFloat(result[0].duration);
     80     assert.isTrue(duration >= 0.0);
     81   });
     82 
     83 
     84 });
     85 </script>
     86