mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-18 13:17:29 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
73
addon-sdk/source/test/test-httpd.js
Normal file
73
addon-sdk/source/test/test-httpd.js
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
/* 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/. */
|
||||
|
||||
const port = 8099;
|
||||
const file = require("sdk/io/file");
|
||||
const { pathFor } = require("sdk/system");
|
||||
const { Loader } = require("sdk/test/loader");
|
||||
const options = require("sdk/test/options");
|
||||
|
||||
const loader = Loader(module);
|
||||
const httpd = loader.require("./lib/httpd");
|
||||
if (options.parseable || options.verbose)
|
||||
loader.sandbox("./lib/httpd").DEBUG = true;
|
||||
|
||||
exports.testBasicHTTPServer = function(assert, done) {
|
||||
// Use the profile directory for the temporary file as that will be deleted
|
||||
// when tests are complete
|
||||
let basePath = pathFor("ProfD");
|
||||
let filePath = file.join(basePath, 'test-httpd.txt');
|
||||
let content = "This is the HTTPD test file.\n";
|
||||
let fileStream = file.open(filePath, 'w');
|
||||
fileStream.write(content);
|
||||
fileStream.close();
|
||||
|
||||
let srv = httpd.startServerAsync(port, basePath);
|
||||
|
||||
// Request this very file.
|
||||
let Request = require('sdk/request').Request;
|
||||
Request({
|
||||
url: "http://localhost:" + port + "/test-httpd.txt",
|
||||
onComplete: function (response) {
|
||||
assert.equal(response.text, content);
|
||||
srv.stop(done);
|
||||
}
|
||||
}).get();
|
||||
};
|
||||
|
||||
exports.testDynamicServer = function (assert, done) {
|
||||
let content = "This is the HTTPD test file.\n";
|
||||
|
||||
let srv = httpd.startServerAsync(port);
|
||||
|
||||
// See documentation here:
|
||||
//http://doxygen.db48x.net/mozilla/html/interfacensIHttpServer.html#a81fc7e7e29d82aac5ce7d56d0bedfb3a
|
||||
//http://doxygen.db48x.net/mozilla/html/interfacensIHttpRequestHandler.html
|
||||
srv.registerPathHandler("/test-httpd.txt", function handle(request, response) {
|
||||
// Add text content type, only to avoid error in `Request` API
|
||||
response.setHeader("Content-Type", "text/plain", false);
|
||||
response.write(content);
|
||||
});
|
||||
|
||||
// Request this very file.
|
||||
let Request = require('sdk/request').Request;
|
||||
Request({
|
||||
url: "http://localhost:" + port + "/test-httpd.txt",
|
||||
onComplete: function (response) {
|
||||
assert.equal(response.text, content);
|
||||
srv.stop(done);
|
||||
}
|
||||
}).get();
|
||||
};
|
||||
|
||||
exports.testAutomaticPortSelection = function (assert, done) {
|
||||
const srv = httpd.startServerAsync(-1);
|
||||
|
||||
const port = srv.identity.primaryPort;
|
||||
assert.ok(0 <= port && port <= 65535);
|
||||
|
||||
srv.stop(done);
|
||||
};
|
||||
|
||||
require('sdk/test').run(exports);
|
||||
Loading…
Add table
Add a link
Reference in a new issue