More updates to stop using dev or alpha or beta versions.
[yaffs-website] / node_modules / phridge / test / helpers / testServer.js
1 "use strict";
2
3 var http = require("http");
4 var getport = require("getport");
5 var fs = require("fs");
6 var path = require("path");
7
8 var testPage = fs.readFileSync(path.join(__dirname, "/testPage.html"), "utf8");
9 var alamidLogo = fs.readFileSync(path.join(__dirname, "/alamid.png"), "utf8");
10 var server;
11
12 /**
13  * @this Runner
14  * @returns {Promise}
15  */
16 function start() {
17     var self = this;
18
19     return new Promise(function (resolve, reject) {
20         getport(30000, function (err, port) {
21             if (err) {
22                 return reject(err);
23             }
24             if (server) {
25                 stop();
26             }
27             server = http
28                 .createServer(serveTestFiles)
29                 .listen(port, function onListen(err) {
30                     if (err) {
31                         return reject(err);
32                     }
33                     self.testServerUrl = "http://localhost:" + port;
34                     resolve(port);
35                 });
36         });
37     });
38 }
39
40 function stop() {
41     server.close();
42     server.removeAllListeners();
43 }
44
45 function serveTestFiles(req, res) {
46     if (req.url.indexOf("alamid") > -1) {
47         res.setHeader("Content-Type", "image/png");
48         res.end(alamidLogo);
49         return;
50     }
51     res.setHeader("Content-Type", "text/html; charset=utf8");
52     res.end(testPage, "utf8");
53 }
54
55 exports.start = start;
56 exports.stop = stop;