Skip to content

Commit 21bf118

Browse files
Test the server encoding integration using grunt-contrib-connect
1 parent 1dcbd9c commit 21bf118

File tree

2 files changed

+50
-13
lines changed

2 files changed

+50
-13
lines changed

Gruntfile.js

Lines changed: 41 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,38 @@
33

44
module.exports = function (grunt) {
55

6+
function encodingMiddleware(request, response, next) {
7+
var url = require('url').parse(request.url, true, true);
8+
var query = url.query;
9+
var pathname = url.pathname;
10+
11+
if (pathname !== '/encoding') {
12+
next();
13+
return;
14+
}
15+
16+
var cookieName = query.name;
17+
var cookieValue = query.value;
18+
19+
response.setHeader('content-type', 'application/json');
20+
response.end(JSON.stringify({
21+
name: cookieName,
22+
value: cookieValue
23+
}));
24+
}
25+
626
grunt.initConfig({
727
pkg: grunt.file.readJSON('package.json'),
828
qunit: {
929
all: {
1030
options: {
11-
httpBase: 'http://127.0.0.1:9998'
12-
},
13-
src: ['test/index.html', 'test/encoding.html', 'test/amd.html']
14-
}
31+
urls: [
32+
'http://127.0.0.1:9998/',
33+
'http://127.0.0.1:9998/amd.html',
34+
'http://127.0.0.1:9998/encoding.html?integration_baseurl=http://127.0.0.1:9998'
35+
]
36+
}
37+
},
1538
},
1639
nodeunit: {
1740
all: 'test/node.js'
@@ -76,15 +99,19 @@ module.exports = function (grunt) {
7699
}
77100
},
78101
connect: {
79-
'build-sauce': {
102+
'build-qunit': {
80103
options: {
81-
port: 9999,
82-
base: ['.', 'test']
104+
port: 9998,
105+
base: ['.', 'test'],
106+
middleware: function (connect, options, middlewares) {
107+
middlewares.unshift(encodingMiddleware);
108+
return middlewares;
109+
}
83110
}
84111
},
85-
'build-qunit': {
112+
'build-sauce': {
86113
options: {
87-
port: 9998,
114+
port: 9999,
88115
base: ['.', 'test']
89116
}
90117
},
@@ -94,7 +121,11 @@ module.exports = function (grunt) {
94121
base: ['.', 'test'],
95122
open: 'http://127.0.0.1:10000',
96123
keepalive: true,
97-
livereload: true
124+
livereload: true,
125+
middleware: function (connect, options, middlewares) {
126+
middlewares.unshift(encodingMiddleware);
127+
return middlewares;
128+
}
98129
}
99130
}
100131
},

test/utils.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,17 @@
7676
if (!serverURL) {
7777
callback(Cookies.get(name), document.cookie);
7878
} else {
79-
var requestURL = serverURL + '/encoding/' + name;
79+
var requestURL = [
80+
serverURL,
81+
'/encoding?',
82+
'name=' + encodeURIComponent(name),
83+
'&value=' + encodeURIComponent(value)
84+
].join('');
8085
var done = assert.async();
8186
addEvent(iframe, 'load', function () {
8287
var iframeDocument = iframe.contentWindow.document;
83-
var content = iframeDocument.innerHTML;
88+
var root = iframeDocument.documentElement;
89+
var content = root.textContent;
8490
if ( !content ) {
8591
ok(false, [
8692
'"' + requestURL + '"',
@@ -91,7 +97,7 @@
9197
return;
9298
}
9399
var result = JSON.parse(content);
94-
callback(result[name], iframeDocument.cookie);
100+
callback(result.value, iframeDocument.cookie);
95101
done();
96102
});
97103
iframe.src = requestURL;

0 commit comments

Comments
 (0)