forked from web-platform-tests/wpt
-
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.
Merge pull request web-platform-tests#194 from DigiTec/master
Add some basic examples of generate_tests.
- Loading branch information
Showing
1 changed file
with
59 additions
and
0 deletions.
There are no files selected for viewing
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 |
---|---|---|
@@ -0,0 +1,59 @@ | ||
<!DOCTYPE HTML> | ||
<html> | ||
<head> | ||
<title>Sample for using generate_tests to create a series of tests that share the same callback.</title> | ||
<script src="../testharness.js"></script> | ||
<script src="../testharnessreport.js"></script> | ||
</head> | ||
<body> | ||
<script> | ||
// generate_tests takes an array of arrays that define tests | ||
// but lets pass it an empty array and verify it does nothing. | ||
function null_callback() { | ||
throw "null_callback should not be called."; | ||
} | ||
generate_tests(null_callback, []); | ||
|
||
// Generate 3 tests specifying the name and one parameter | ||
function validate_arguments(arg1) { | ||
assert_equals(arg1, 1, "Ensure that we get our expected argument"); | ||
} | ||
generate_tests(validate_arguments, [ | ||
["first test", 1], | ||
["second test", 1], | ||
["third test", 1], | ||
]); | ||
|
||
// Generate a test passing in a properties object that is shared across tests. | ||
function validate_properties() { | ||
assert_true(this.properties.sentinel, "Ensure that we got the right properties object."); | ||
} | ||
generate_tests(validate_properties, [["sentinel check 1"], ["sentinel check 2"]], {sentinel: true}); | ||
|
||
// Generate a test passing in a properties object that is shared across tests. | ||
function validate_separate_properties() { | ||
if (this.name === "sentinel check 1 unique properties") { | ||
assert_true(this.properties.sentinel, "Ensure that we got the right properties object. Expect sentinel: true."); | ||
} | ||
else { | ||
assert_false(this.properties.sentinel, "Ensure that we got the right properties object. Expect sentinel: false."); | ||
} | ||
} | ||
generate_tests(validate_separate_properties, [["sentinel check 1 unique properties"], ["sentinel check 2 unique properties"]], [{sentinel: true}, {sentinel: false}]); | ||
|
||
// Finally generate a complicated set of tests from another data source | ||
var letters = ["a", "b", "c", "d", "e", "f"]; | ||
var numbers = [0, 1, 2, 3, 4, 5]; | ||
function validate_related_arguments(arg1, arg2) { | ||
assert_equals(arg1.charCodeAt(0) - "a".charCodeAt(0), arg2, "Ensure that we can map letters to numbers."); | ||
} | ||
function format_as_test(letter, index, letters) { | ||
return ["Test to map " + letter + " to " + numbers[index], letter, numbers[index]]; | ||
} | ||
generate_tests(validate_related_arguments, letters.map(format_as_test)); | ||
</script> | ||
</body> | ||
</html> | ||
|
||
|
||
|