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