Revision f048355b3d2fd2468e37ddd916b6f0166aad0739 authored by Stephen McGruer on 13 April 2018, 16:52:45 UTC, committed by Chromium WPT Sync on 13 April 2018, 16:52:45 UTC
There were three minor bugs left in the implementation: - We threw on lists-in-custom-iterators instead of just ignoring them. - We returned all properties on the keyframe rather than just those defined on the keyframe itself (e.g. we would include prototype properties, against spec). - We didn't access the properties in ascending unicode order. Bug: 827573 Change-Id: I213ae5b24e1f35d7f28d16625025122950a6ba88 Reviewed-on: https://chromium-review.googlesource.com/989261 Reviewed-by: Kentaro Hara <haraken@chromium.org> Reviewed-by: Yuki Shiino <yukishiino@chromium.org> Reviewed-by: Robert Flack <flackr@chromium.org> Commit-Queue: Stephen McGruer <smcgruer@chromium.org> Cr-Commit-Position: refs/heads/master@{#550641}
1 parent 1e5a5fe
responsetype.html
<!DOCTYPE html>
<meta charset="utf-8">
<title>XMLHttpRequest.responseType</title>
<link rel="author" title="Mathias Bynens" href="http://mathiasbynens.be/">
<link rel="author" title="Ms2ger" href="mailto:Ms2ger@gmail.com">
<link rel="help" href="https://xhr.spec.whatwg.org/#the-responsetype-attribute">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
test(function() {
var xhr = new XMLHttpRequest();
assert_equals(xhr.responseType, '');
}, 'Initial value of responseType');
var types = ['', 'json', 'document', 'arraybuffer', 'blob', 'text'];
types.forEach(function(type) {
test(function() {
var xhr = new XMLHttpRequest();
xhr.responseType = type;
assert_equals(xhr.responseType, type);
}, 'Set responseType to ' + format_value(type) + ' when readyState is UNSENT.');
test(function() {
var xhr = new XMLHttpRequest();
xhr.open('get', '/');
xhr.responseType = type;
assert_equals(xhr.responseType, type);
}, 'Set responseType to ' + format_value(type) + ' when readyState is OPENED.');
async_test(function() {
var xhr = new XMLHttpRequest();
xhr.open('get', '/');
xhr.onreadystatechange = this.step_func(function() {
if (xhr.readyState === XMLHttpRequest.HEADERS_RECEIVED) {
xhr.responseType = type;
assert_equals(xhr.responseType, type);
this.done();
}
});
xhr.send();
}, 'Set responseType to ' + format_value(type) + ' when readyState is HEADERS_RECEIVED.');
async_test(function() {
var xhr = new XMLHttpRequest();
xhr.open('get', '/');
xhr.onreadystatechange = this.step_func(function() {
if (xhr.readyState === XMLHttpRequest.LOADING) {
assert_throws("InvalidStateError", function() {
xhr.responseType = type;
});
assert_equals(xhr.responseType, "");
this.done();
}
});
xhr.send();
}, 'Set responseType to ' + format_value(type) + ' when readyState is LOADING.');
async_test(function() {
var xhr = new XMLHttpRequest();
xhr.open('get', '/');
xhr.onreadystatechange = this.step_func(function() {
if (xhr.readyState === XMLHttpRequest.DONE) {
assert_throws("InvalidStateError", function() {
xhr.responseType = type;
});
assert_equals(xhr.responseType, "");
this.done();
}
});
xhr.send();
}, 'Set responseType to ' + format_value(type) + ' when readyState is DONE.');
// Note: the case of setting responseType first, and then calling synchronous
// open(), is tested in open-method-responsetype-set-sync.htm.
test(function() {
var xhr = new XMLHttpRequest();
xhr.open('get', '/', false);
assert_throws("InvalidAccessError", function() {
xhr.responseType = type;
});
assert_equals(xhr.responseType, "");
}, 'Set responseType to ' + format_value(type) + ' when readyState is OPENED and the sync flag is set.');
test(function() {
var xhr = new XMLHttpRequest();
xhr.open('get', '/', false);
xhr.send();
assert_equals(xhr.readyState, XMLHttpRequest.DONE);
assert_throws("InvalidStateError", function() {
xhr.responseType = type;
});
assert_equals(xhr.responseType, "");
}, 'Set responseType to ' + format_value(type) + ' when readyState is DONE and the sync flag is set.');
});
</script>
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...