diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /addon-sdk/source/test/test-xhr.js | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'addon-sdk/source/test/test-xhr.js')
-rw-r--r-- | addon-sdk/source/test/test-xhr.js | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/addon-sdk/source/test/test-xhr.js b/addon-sdk/source/test/test-xhr.js new file mode 100644 index 000000000..30ee8e362 --- /dev/null +++ b/addon-sdk/source/test/test-xhr.js @@ -0,0 +1,89 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + 'use strict' + +const { XMLHttpRequest } = require('sdk/net/xhr'); +const { LoaderWithHookedConsole } = require('sdk/test/loader'); +const { set: setPref } = require("sdk/preferences/service"); +const data = require("./fixtures"); + +const DEPRECATE_PREF = "devtools.errorconsole.deprecation_warnings"; + +exports.testAPIExtension = function(assert) { + let { loader, messages } = LoaderWithHookedConsole(module); + let { XMLHttpRequest } = loader.require("sdk/net/xhr"); + setPref(DEPRECATE_PREF, true); + + let xhr = new XMLHttpRequest(); + assert.equal(typeof(xhr.forceAllowThirdPartyCookie), "function", + "forceAllowThirdPartyCookie is defined"); + assert.equal(xhr.forceAllowThirdPartyCookie(), undefined, + "function can be called"); + + assert.ok(messages[0].msg.indexOf("`xhr.forceAllowThirdPartyCookie()` is deprecated") >= 0, + "deprecation warning was dumped"); + assert.ok(xhr.mozBackgroundRequest, "is background request"); + + loader.unload(); +}; + +exports.testAbortedXhr = function(assert, done) { + let req = new XMLHttpRequest(); + req.open('GET', data.url('testLocalXhr.json')); + req.addEventListener("abort", function() { + assert.pass("request was aborted"); + done(); + }); + req.send(null); + req.abort(); +}; + +exports.testLocalXhr = function(assert, done) { + let req = new XMLHttpRequest(); + let ready = false; + + req.overrideMimeType('text/plain'); + req.open('GET', data.url('testLocalXhr.json')); + req.onreadystatechange = function() { + if (req.readyState == 4 && (req.status == 0 || req.status == 200)) { + ready = true; + assert.equal(req.responseText, '{}\n', 'XMLHttpRequest should get local files'); + } + }; + req.addEventListener('load', function onload() { + req.removeEventListener('load', onload); + assert.pass('addEventListener for load event worked'); + assert.ok(ready, 'onreadystatechange listener worked'); + done(); + }); + req.send(null); +}; + + +exports.testResponseHeaders = function(assert, done) { + let req = new XMLHttpRequest(); + + req.overrideMimeType('text/plain'); + req.open('GET', module.uri); + req.onreadystatechange = function() { + if (req.readyState == 4 && (req.status == 0 || req.status == 200)) { + var headers = req.getAllResponseHeaders(); + headers = headers.split("\r\n"); + if (headers.length == 1) { + headers = headers[0].split("\n"); + } + for (let i in headers) { + if (headers[i] && headers[i].search('Content-Type') >= 0) { + assert.equal(headers[i], 'Content-Type: text/plain', + 'XHR\'s headers are valid'); + } + } + + done(); + } + }; + req.send(null); +} + +require('sdk/test').run(exports); |