https://github.com/web-platform-tests/wpt
Revision c2707bb55d6febd84c4ef26fc4bc7b6640b12475 authored by Henrik Skupin on 28 March 2018, 18:49:31 UTC, committed by moz-wptsync-bot on 28 March 2018, 19:09:49 UTC
To retrieve links via "link text" or "partial link text" the rendered
content of the element has to be used. This can be the case for CSS
transformations like "uppercase".
bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1381519
gecko-commit: 3e204686f1b10441f48435890241dff6706d04dd
gecko-integration-branch: central
gecko-reviewers: ato
1 parent 42f4395
Raw File
Tip revision: c2707bb55d6febd84c4ef26fc4bc7b6640b12475 authored by Henrik Skupin on 28 March 2018, 18:49:31 UTC
Find element for (partial) link text has to use rendered content.
Tip revision: c2707bb
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>
back to top