Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(154)

Side by Side Diff: third_party/WebKit/LayoutTests/imported/web-platform-tests/user-timing/resources/webperftestharnessextension.js

Issue 1989033002: Move the user-timing directory from web-platform-tests/ to wpt/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 Distributed under both the W3C Test Suite License [1] and the W3C
3 3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
4 policies and contribution forms [3].
5
6 [1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
7 [2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
8 [3] http://www.w3.org/2004/10/27-testcases
9 */
10
11 var mark_names = [
12 '',
13 '1',
14 'abc',
15 ];
16
17 var measures = [
18 [''],
19 ['2', 1],
20 ['aaa', 'navigationStart', ''],
21 ];
22
23 function test_method_exists(method, method_name, properties)
24 {
25 var msg;
26 if (typeof method === 'function')
27 msg = 'performance.' + method.name + ' is supported!';
28 else
29 msg = 'performance.' + method_name + ' is supported!';
30 wp_test(function() { assert_true(typeof method === 'function', msg); }, msg, properties);
31 }
32
33 function test_method_throw_exception(func_str, exception, msg)
34 {
35 var exception_name = typeof exception === "object" ? exception.name : except ion;
36 var msg = 'Invocation of ' + func_str + ' should throw ' + exception_name + ' Exception.';
37 wp_test(function() { assert_throws(exception, function() {eval(func_str)}, m sg); }, msg);
38 }
39
40 function test_noless_than(value, greater_than, msg, properties)
41 {
42 wp_test(function () { assert_true(value >= greater_than, msg); }, msg, prope rties);
43 }
44
45 function test_fail(msg, properties)
46 {
47 wp_test(function() { assert_unreached(); }, msg, properties);
48 }
49
50 function test_resource_entries(entries, expected_entries)
51 {
52 // This is slightly convoluted so that we can sort the output.
53 var actual_entries = {};
54 var origin = window.location.protocol + "//" + window.location.host;
55
56 for (var i = 0; i < entries.length; ++i) {
57 var entry = entries[i];
58 var found = false;
59 for (var expected_entry in expected_entries) {
60 if (entry.name == origin + expected_entry) {
61 found = true;
62 if (expected_entry in actual_entries) {
63 test_fail(expected_entry + ' is not expected to have duplica te entries');
64 }
65 actual_entries[expected_entry] = entry;
66 break;
67 }
68 }
69 if (!found) {
70 test_fail(entries[i].name + ' is not expected to be in the Resource Timing buffer');
71 }
72 }
73
74 sorted_urls = [];
75 for (var i in actual_entries) {
76 sorted_urls.push(i);
77 }
78 sorted_urls.sort();
79 for (var i in sorted_urls) {
80 var url = sorted_urls[i];
81 test_equals(actual_entries[url].initiatorType,
82 expected_entries[url],
83 origin + url + ' is expected to have initiatorType ' + expec ted_entries[url]);
84 }
85 for (var j in expected_entries) {
86 if (!(j in actual_entries)) {
87 test_fail(origin + j + ' is expected to be in the Resource Timing bu ffer');
88 }
89 }
90 }
91 function performance_entrylist_checker(type)
92 {
93 var entryType = type;
94
95 function entry_check(entry, expectedNames)
96 {
97 var msg = 'Entry \"' + entry.name + '\" should be one that we have set.' ;
98 wp_test(function() { assert_in_array(entry.name, expectedNames, msg); }, msg);
99 test_equals(entry.entryType, entryType, 'entryType should be \"' + entry Type + '\".');
100 if (type === "measure") {
101 test_true(isFinite(entry.startTime), 'startTime should be a number.' );
102 test_true(isFinite(entry.duration), 'duration should be a number.');
103 } else if (type === "mark") {
104 test_greater_than(entry.startTime, 0, 'startTime should greater than 0.');
105 test_equals(entry.duration, 0, 'duration of mark should be 0.');
106 }
107 }
108
109 function entrylist_order_check(entryList)
110 {
111 var inOrder = true;
112 for (var i = 0; i < entryList.length - 1; ++i)
113 {
114 if (entryList[i + 1].startTime < entryList[i].startTime) {
115 inOrder = false;
116 break;
117 }
118 }
119 return inOrder;
120 }
121
122 function entrylist_check(entryList, expectedLength, expectedNames)
123 {
124 test_equals(entryList.length, expectedLength, 'There should be ' + expec tedLength + ' entries.');
125 test_true(entrylist_order_check(entryList), 'Entries in entrylist should be in order.');
126 for (var i = 0; i < entryList.length; ++i)
127 {
128 entry_check(entryList[i], expectedNames);
129 }
130 }
131
132 return{"entrylist_check":entrylist_check};
133 }
134
135 function PerformanceContext(context)
136 {
137 this.performanceContext = context;
138 }
139
140 PerformanceContext.prototype =
141 {
142
143 initialMeasures: function(item, index, array)
144 {
145 this.performanceContext.measure.apply(this.performanceContext, item);
146 },
147
148 mark: function()
149 {
150 this.performanceContext.mark.apply(this.performanceContext, arguments);
151 },
152
153 measure: function()
154 {
155 this.performanceContext.measure.apply(this.performanceContext, arguments );
156 },
157
158 clearMarks: function()
159 {
160 this.performanceContext.clearMarks.apply(this.performanceContext, argume nts);
161 },
162
163 clearMeasures: function()
164 {
165 this.performanceContext.clearMeasures.apply(this.performanceContext, arg uments);
166
167 },
168
169 getEntries: function()
170 {
171 return this.performanceContext.getEntries.apply(this.performanceContext, arguments);
172 },
173
174 getEntriesByType: function()
175 {
176 return this.performanceContext.getEntriesByType.apply(this.performanceCo ntext, arguments);
177 },
178
179 getEntriesByName: function()
180 {
181 return this.performanceContext.getEntriesByName.apply(this.performanceCo ntext, arguments);
182 },
183
184 setResourceTimingBufferSize: function()
185 {
186 return this.performanceContext.setResourceTimingBufferSize.apply(this.pe rformanceContext, arguments);
187 },
188
189 registerResourceTimingBufferFullCallback: function(func)
190 {
191 this.performanceContext.onresourcetimingbufferfull = func;
192 },
193
194 clearResourceTimings: function()
195 {
196 this.performanceContext.clearResourceTimings.apply(this.performanceConte xt, arguments);
197 }
198
199 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698