forked from mozilla/gecko-dev
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bug 1724645 - add tests for 'new PerformanceMark' in WPT mark-errors.…
… r=sefeng Differential Revision: https://phabricator.services.mozilla.com/D142900
- Loading branch information
Showing
1 changed file
with
46 additions
and
15 deletions.
There are no files selected for viewing
61 changes: 46 additions & 15 deletions
61
testing/web-platform/tests/user-timing/mark-errors.any.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,19 +1,50 @@ | ||
test(function() { | ||
assert_throws_js(TypeError, function() { self.performance.mark("mark1", 123); }, "Number passed as a dict argument should cause type-error.") | ||
}, "Number should be rejected as the mark-options.") | ||
// If you're testing an API that constructs a PerformanceMark, add your test here. | ||
// See the for loop below for details. | ||
const markConstructionTests = [ | ||
{ | ||
testName: "Number should be rejected as the mark-options.", | ||
testFunction: function(newMarkFunction) { | ||
assert_throws_js(TypeError, function() { newMarkFunction("mark1", 123); }, "Number passed as a dict argument should cause type-error."); | ||
}, | ||
}, | ||
|
||
test(function() { | ||
assert_throws_js(TypeError, function() { self.performance.mark("mark1", NaN); }, "NaN passed as a dict argument should cause type-error.") | ||
}, "NaN should be rejected as the mark-options.") | ||
{ | ||
testName: "NaN should be rejected as the mark-options.", | ||
testFunction: function(newMarkFunction) { | ||
assert_throws_js(TypeError, function() { newMarkFunction("mark1", NaN); }, "NaN passed as a dict argument should cause type-error."); | ||
}, | ||
}, | ||
|
||
test(function() { | ||
assert_throws_js(TypeError, function() { self.performance.mark("mark1", Infinity); }, "Infinity passed as a dict argument should cause type-error.") | ||
}, "Infinity should be rejected as the mark-options.") | ||
{ | ||
testName: "Infinity should be rejected as the mark-options.", | ||
testFunction: function(newMarkFunction) { | ||
assert_throws_js(TypeError, function() { newMarkFunction("mark1", Infinity); }, "Infinity passed as a dict argument should cause type-error."); | ||
}, | ||
}, | ||
|
||
test(function() { | ||
assert_throws_js(TypeError, function() { self.performance.mark("mark1", "string"); }, "String passed as a dict argument should cause type-error.") | ||
}, "String should be rejected as the mark-options.") | ||
{ | ||
testName: "String should be rejected as the mark-options.", | ||
testFunction: function(newMarkFunction) { | ||
assert_throws_js(TypeError, function() { newMarkFunction("mark1", "string"); }, "String passed as a dict argument should cause type-error.") | ||
}, | ||
}, | ||
|
||
test(function() { | ||
assert_throws_js(TypeError, function() { self.performance.mark("mark1", {startTime: -1}); }, "Negative startTime should cause type-error.") | ||
}, "Negative startTime in mark-options should be rejected"); | ||
{ | ||
testName: "Negative startTime in mark-options should be rejected", | ||
testFunction: function(newMarkFunction) { | ||
assert_throws_js(TypeError, function() { newMarkFunction("mark1", {startTime: -1}); }, "Negative startTime should cause type-error.") | ||
}, | ||
}, | ||
]; | ||
|
||
// There are multiple function calls that can construct a mark using the same arguments so we run | ||
// each test on each construction method here, avoiding duplication. | ||
for (let testInfo of markConstructionTests) { | ||
test(function() { | ||
testInfo.testFunction(self.performance.mark); | ||
}, `[performance.mark]: ${testInfo.testName}`); | ||
|
||
test(function() { | ||
testInfo.testFunction((markName, obj) => new PerformanceMark(markName, obj)); | ||
}, `[new PerformanceMark]: ${testInfo.testName}`); | ||
} |