summaryrefslogtreecommitdiffstats
path: root/dom/base/test/browser_bug1011748.js
blob: a2158500dfe63004dd2b43636c259c99cfe72376 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
const gHttpTestRoot = "http://example.com/browser/dom/base/test/";

add_task(function* () {
  var statusTexts = [];
  var xhr = new XMLHttpRequest();
  var observer = {
    observe: function (aSubject, aTopic, aData) {
      try {
        var channel = aSubject.QueryInterface(Ci.nsIHttpChannel);
        channel.getResponseHeader("Location");
      } catch (e) {
        return;
      }
      statusTexts.push(xhr.statusText);
    }
  };
  
  Services.obs.addObserver(observer, "http-on-examine-response", false);
  yield new Promise((resolve) => {
    xhr.addEventListener("load", function() {
      statusTexts.push(this.statusText);
      is(statusTexts[0], "", "Empty statusText value for HTTP 302");
      is(statusTexts[1], "OK", "OK statusText value for the redirect.");
      resolve();
    });
    xhr.open("GET", gHttpTestRoot+ "file_bug1011748_redirect.sjs", true);
    xhr.send();
  });

  Services.obs.removeObserver(observer, "http-on-examine-response");
});