Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib/mocha-3.1.2/test/http-meta-2.spec.js')
-rw-r--r--tests/lib/mocha-3.1.2/test/http-meta-2.spec.js92
1 files changed, 92 insertions, 0 deletions
diff --git a/tests/lib/mocha-3.1.2/test/http-meta-2.spec.js b/tests/lib/mocha-3.1.2/test/http-meta-2.spec.js
new file mode 100644
index 0000000000..4530969041
--- /dev/null
+++ b/tests/lib/mocha-3.1.2/test/http-meta-2.spec.js
@@ -0,0 +1,92 @@
+'use strict';
+
+var http = require('http');
+
+var PORT = 8899;
+
+var server = http.createServer(function (req, res) {
+ var accept = req.headers.accept || '';
+ var json = ~accept.indexOf('json');
+
+ switch (req.url) {
+ case '/':
+ res.end('hello');
+ break;
+ case '/users':
+ if (json) {
+ res.end('["tobi","loki","jane"]');
+ } else {
+ res.end('tobi, loki, jane');
+ }
+ break;
+ }
+});
+
+function get (url) {
+ var fields;
+ var expected;
+ var header = {};
+
+ function request (done) {
+ http.get({ path: url, port: PORT, headers: header }, function (res) {
+ var buf = '';
+ res.should.have.property('statusCode', 200);
+ res.setEncoding('utf8');
+ res.on('data', function (chunk) { buf += chunk; });
+ res.on('end', function () {
+ buf.should.equal(expected);
+ done();
+ });
+ });
+ }
+
+ return {
+ set: function (field, val) {
+ header[field] = val;
+ return this;
+ },
+
+ should: {
+ respond: function (body) {
+ fields = Object.keys(header).map(function (field) {
+ return field + ': ' + header[field];
+ }).join(', ');
+
+ expected = body;
+ describe('GET ' + url, function () {
+ this.timeout(500);
+ if (fields) {
+ describe('when given ' + fields, function () {
+ it('should respond with "' + body + '"', request);
+ });
+ } else {
+ it('should respond with "' + body + '"', request);
+ }
+ });
+ }
+ }
+ };
+}
+
+describe('http server', function () {
+ before(function (done) {
+ server.listen(PORT, done);
+ });
+
+ after(function () {
+ server.close();
+ });
+
+ get('/')
+ .should
+ .respond('hello');
+
+ get('/users')
+ .should
+ .respond('tobi, loki, jane');
+
+ get('/users')
+ .set('Accept', 'application/json')
+ .should
+ .respond('["tobi","loki","jane"]');
+});