mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
Update web-platform-tests to revision 3137d1d2d7757366a69f8a449b458b5057e0e81e
This commit is contained in:
parent
81ca858678
commit
d6ba94ca28
2339 changed files with 89274 additions and 9328 deletions
|
@ -0,0 +1,19 @@
|
|||
<body>
|
||||
<script>
|
||||
function request(type) {
|
||||
var client = new XMLHttpRequest,
|
||||
identifier = type == "tag" ? Math.random() : new Date().toGMTString(),
|
||||
url = "fake_responses.py?" + type + "=" + identifier
|
||||
client.open("GET", url, false)
|
||||
client.send(null)
|
||||
client.open("GET", url, false)
|
||||
client.setRequestHeader(type == "tag" ? "If-None-Match" : "If-Modified-Since", identifier)
|
||||
client.send(null)
|
||||
}
|
||||
|
||||
if(window.parent.setup_iframe) {
|
||||
window.parent.setup_iframe();
|
||||
request("tag");
|
||||
}
|
||||
</script>
|
||||
</body>
|
|
@ -0,0 +1,19 @@
|
|||
# XMLHttpRequest/resources/conditional.py -- to fake a 304 response
|
||||
|
||||
def main(request, response):
|
||||
tag = request.GET.first("tag", None)
|
||||
match = request.headers.get("If-None-Match", None)
|
||||
date = request.GET.first("date", "")
|
||||
modified = request.headers.get("If-Modified-Since", None)
|
||||
if tag:
|
||||
response.headers.set("ETag", '"%s"' % tag)
|
||||
elif date:
|
||||
response.headers.set("Last-Modified", date)
|
||||
|
||||
if ((match is not None and match == tag) or
|
||||
(modified is not None and modified == date)):
|
||||
response.status = (304, "SUPERCOOL")
|
||||
return ""
|
||||
else:
|
||||
response.headers.set("Content-Type", "text/plain")
|
||||
return "MAYBE NOT"
|
|
@ -0,0 +1,7 @@
|
|||
<body>
|
||||
<script>
|
||||
if(window.parent.setup_iframe) {
|
||||
window.parent.setup_iframe();
|
||||
}
|
||||
</script>
|
||||
</body>
|
|
@ -0,0 +1,198 @@
|
|||
/*
|
||||
Distributed under both the W3C Test Suite License [1] and the W3C
|
||||
3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
|
||||
policies and contribution forms [3].
|
||||
|
||||
[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
|
||||
[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
|
||||
[3] http://www.w3.org/2004/10/27-testcases
|
||||
*/
|
||||
|
||||
var mark_names = [
|
||||
'',
|
||||
'1',
|
||||
'abc',
|
||||
];
|
||||
|
||||
var measures = [
|
||||
[''],
|
||||
['2', 1],
|
||||
['aaa', 'navigationStart', ''],
|
||||
];
|
||||
|
||||
function test_method_exists(method, method_name, properties)
|
||||
{
|
||||
var msg;
|
||||
if (typeof method === 'function')
|
||||
msg = 'performance.' + method.name + ' is supported!';
|
||||
else
|
||||
msg = 'performance.' + method_name + ' is supported!';
|
||||
wp_test(function() { assert_true(typeof method === 'function', msg); }, msg, properties);
|
||||
}
|
||||
|
||||
function test_method_throw_exception(func_str, exception, msg)
|
||||
{
|
||||
var exception_name = typeof exception === "object" ? exception.name : exception;
|
||||
var msg = 'Invocation of ' + func_str + ' should throw ' + exception_name + ' Exception.';
|
||||
wp_test(function() { assert_throws(exception, function() {eval(func_str)}, msg); }, msg);
|
||||
}
|
||||
|
||||
function test_noless_than(value, greater_than, msg, properties)
|
||||
{
|
||||
wp_test(function () { assert_true(value >= greater_than, msg); }, msg, properties);
|
||||
}
|
||||
|
||||
function test_fail(msg, properties)
|
||||
{
|
||||
wp_test(function() { assert_unreached(); }, msg, properties);
|
||||
}
|
||||
|
||||
function test_resource_entries(entries, expected_entries)
|
||||
{
|
||||
// This is slightly convoluted so that we can sort the output.
|
||||
var actual_entries = {};
|
||||
var origin = window.location.protocol + "//" + window.location.host;
|
||||
|
||||
for (var i = 0; i < entries.length; ++i) {
|
||||
var entry = entries[i];
|
||||
var found = false;
|
||||
for (var expected_entry in expected_entries) {
|
||||
if (entry.name == origin + expected_entry) {
|
||||
found = true;
|
||||
if (expected_entry in actual_entries) {
|
||||
test_fail(expected_entry + ' is not expected to have duplicate entries');
|
||||
}
|
||||
actual_entries[expected_entry] = entry;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
test_fail(entries[i].name + ' is not expected to be in the Resource Timing buffer');
|
||||
}
|
||||
}
|
||||
|
||||
sorted_urls = [];
|
||||
for (var i in actual_entries) {
|
||||
sorted_urls.push(i);
|
||||
}
|
||||
sorted_urls.sort();
|
||||
for (var i in sorted_urls) {
|
||||
var url = sorted_urls[i];
|
||||
test_equals(actual_entries[url].initiatorType,
|
||||
expected_entries[url],
|
||||
origin + url + ' is expected to have initiatorType ' + expected_entries[url]);
|
||||
}
|
||||
for (var j in expected_entries) {
|
||||
if (!(j in actual_entries)) {
|
||||
test_fail(origin + j + ' is expected to be in the Resource Timing buffer');
|
||||
}
|
||||
}
|
||||
}
|
||||
function performance_entrylist_checker(type)
|
||||
{
|
||||
var entryType = type;
|
||||
|
||||
function entry_check(entry, expectedNames)
|
||||
{
|
||||
var msg = 'Entry \"' + entry.name + '\" should be one that we have set.';
|
||||
wp_test(function() { assert_in_array(entry.name, expectedNames, msg); }, msg);
|
||||
test_equals(entry.entryType, entryType, 'entryType should be \"' + entryType + '\".');
|
||||
if (type === "measure") {
|
||||
test_true(isFinite(entry.startTime), 'startTime should be a number.');
|
||||
test_true(isFinite(entry.duration), 'duration should be a number.');
|
||||
} else if (type === "mark") {
|
||||
test_greater_than(entry.startTime, 0, 'startTime should greater than 0.');
|
||||
test_equals(entry.duration, 0, 'duration of mark should be 0.');
|
||||
}
|
||||
}
|
||||
|
||||
function entrylist_order_check(entryList)
|
||||
{
|
||||
var inOrder = true;
|
||||
for (var i = 0; i < entryList.length - 1; ++i)
|
||||
{
|
||||
if (entryList[i + 1].startTime < entryList[i].startTime) {
|
||||
inOrder = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return inOrder;
|
||||
}
|
||||
|
||||
function entrylist_check(entryList, expectedLength, expectedNames)
|
||||
{
|
||||
test_equals(entryList.length, expectedLength, 'There should be ' + expectedLength + ' entries.');
|
||||
test_true(entrylist_order_check(entryList), 'Entries in entrylist should be in order.');
|
||||
for (var i = 0; i < entryList.length; ++i)
|
||||
{
|
||||
entry_check(entryList[i], expectedNames);
|
||||
}
|
||||
}
|
||||
|
||||
return{"entrylist_check":entrylist_check};
|
||||
}
|
||||
|
||||
function PerformanceContext(context)
|
||||
{
|
||||
this.performanceContext = context;
|
||||
}
|
||||
|
||||
PerformanceContext.prototype = {
|
||||
initialMeasures: function(item, index, array)
|
||||
{
|
||||
this.performanceContext.measure.apply(this.performanceContext, item);
|
||||
},
|
||||
|
||||
mark: function()
|
||||
{
|
||||
this.performanceContext.mark.apply(this.performanceContext, arguments);
|
||||
},
|
||||
|
||||
measure: function()
|
||||
{
|
||||
this.performanceContext.measure.apply(this.performanceContext, arguments);
|
||||
},
|
||||
|
||||
clearMarks: function()
|
||||
{
|
||||
this.performanceContext.clearMarks.apply(this.performanceContext, arguments);
|
||||
|
||||
},
|
||||
|
||||
clearMeasures: function()
|
||||
{
|
||||
this.performanceContext.clearMeasures.apply(this.performanceContext, arguments);
|
||||
|
||||
},
|
||||
|
||||
getEntries: function()
|
||||
{
|
||||
return this.performanceContext.getEntries.apply(this.performanceContext, arguments);
|
||||
},
|
||||
|
||||
getEntriesByType: function()
|
||||
{
|
||||
return this.performanceContext.getEntriesByType.apply(this.performanceContext, arguments);
|
||||
},
|
||||
|
||||
getEntriesByName: function()
|
||||
{
|
||||
return this.performanceContext.getEntriesByName.apply(this.performanceContext, arguments);
|
||||
},
|
||||
|
||||
setResourceTimingBufferSize: function()
|
||||
{
|
||||
return this.performanceContext.setResourceTimingBufferSize.apply(this.performanceContext, arguments);
|
||||
},
|
||||
|
||||
registerResourceTimingBufferFullCallback: function(func)
|
||||
{
|
||||
this.performanceContext.onresourcetimingbufferfull = func;
|
||||
},
|
||||
|
||||
clearResourceTimings: function()
|
||||
{
|
||||
this.performanceContext.clearResourceTimings.apply(this.performanceContext, arguments);
|
||||
}
|
||||
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue