From 0fdc7c3a55daceb54c034a51b30f06a932236965 Mon Sep 17 00:00:00 2001 From: Sergey Kandaurov Date: Thu, 25 Oct 2018 15:43:48 +0300 Subject: Tests: Node.js application tests. --- test/node/404/404.html | 6 ++++++ test/node/404/app.js | 8 ++++++++ test/node/basic/app.js | 6 ++++++ test/node/get_header_type/app.js | 7 +++++++ test/node/get_variables/app.js | 9 +++++++++ test/node/mirror/app.js | 12 ++++++++++++ test/node/post_variables/app.js | 15 +++++++++++++++ test/node/remove_header/app.js | 11 +++++++++++ test/node/set_header_array/app.js | 6 ++++++ test/node/status_message/app.js | 6 ++++++ test/node/update_header/app.js | 7 +++++++ test/node/variables/app.js | 20 ++++++++++++++++++++ test/node/write_before_write_head/app.js | 6 ++++++ test/node/write_buffer/app.js | 6 ++++++ test/node/write_callback/app.js | 10 ++++++++++ test/node/write_return/app.js | 6 ++++++ 16 files changed, 141 insertions(+) create mode 100644 test/node/404/404.html create mode 100755 test/node/404/app.js create mode 100755 test/node/basic/app.js create mode 100755 test/node/get_header_type/app.js create mode 100755 test/node/get_variables/app.js create mode 100755 test/node/mirror/app.js create mode 100755 test/node/post_variables/app.js create mode 100755 test/node/remove_header/app.js create mode 100755 test/node/set_header_array/app.js create mode 100755 test/node/status_message/app.js create mode 100755 test/node/update_header/app.js create mode 100755 test/node/variables/app.js create mode 100755 test/node/write_before_write_head/app.js create mode 100755 test/node/write_buffer/app.js create mode 100755 test/node/write_callback/app.js create mode 100755 test/node/write_return/app.js (limited to 'test/node') diff --git a/test/node/404/404.html b/test/node/404/404.html new file mode 100644 index 00000000..6d0c635a --- /dev/null +++ b/test/node/404/404.html @@ -0,0 +1,6 @@ + +404 Not Found + +

404 Not Found

+ + diff --git a/test/node/404/app.js b/test/node/404/app.js new file mode 100755 index 00000000..9600d486 --- /dev/null +++ b/test/node/404/app.js @@ -0,0 +1,8 @@ +#!/usr/bin/env node + +var fs = require('fs'); + +require('unit-http').createServer(function (req, res) { + res.writeHead(404, {}); + res.end(fs.readFileSync('404.html')); +}).listen(7080); diff --git a/test/node/basic/app.js b/test/node/basic/app.js new file mode 100755 index 00000000..bc8d570a --- /dev/null +++ b/test/node/basic/app.js @@ -0,0 +1,6 @@ +#!/usr/bin/env node + +require('unit-http').createServer(function (req, res) { + res.writeHead(200, {'Content-Length': 12, 'Content-Type': 'text/plain'}); + res.end('Hello World\n'); +}).listen(7080); diff --git a/test/node/get_header_type/app.js b/test/node/get_header_type/app.js new file mode 100755 index 00000000..b606f142 --- /dev/null +++ b/test/node/get_header_type/app.js @@ -0,0 +1,7 @@ +#!/usr/bin/env node + +require('unit-http').createServer(function (req, res) { + res.setHeader('X-Number', 100); + res.setHeader('X-Type', typeof(res.getHeader('X-Number'))); + res.end(); +}).listen(7080); diff --git a/test/node/get_variables/app.js b/test/node/get_variables/app.js new file mode 100755 index 00000000..5c1faf41 --- /dev/null +++ b/test/node/get_variables/app.js @@ -0,0 +1,9 @@ +#!/usr/bin/env node + +require('unit-http').createServer(function (req, res) { + let query = require('url').parse(req.url, true).query; + res.setHeader('X-Var-1', query.var1); + res.setHeader('X-Var-2', query.var2); + res.setHeader('X-Var-3', query.var3); + res.end(); +}).listen(7080); diff --git a/test/node/mirror/app.js b/test/node/mirror/app.js new file mode 100755 index 00000000..abcb87cb --- /dev/null +++ b/test/node/mirror/app.js @@ -0,0 +1,12 @@ +#!/usr/bin/env node + +require('unit-http').createServer(function (req, res) { + let body = ''; + req.on('data', chunk => { + body += chunk.toString(); + }); + req.on('end', () => { + res.writeHead(200, {'Content-Length': Buffer.byteLength(body)}); + res.end(body); + }); +}).listen(7080); diff --git a/test/node/post_variables/app.js b/test/node/post_variables/app.js new file mode 100755 index 00000000..928a38cf --- /dev/null +++ b/test/node/post_variables/app.js @@ -0,0 +1,15 @@ +#!/usr/bin/env node + +require('unit-http').createServer(function (req, res) { + let body = ''; + req.on('data', chunk => { + body += chunk.toString(); + }); + req.on('end', () => { + let query = require('querystring').parse(body); + res.setHeader('X-Var-1', query.var1); + res.setHeader('X-Var-2', query.var2); + res.setHeader('X-Var-3', query.var3); + res.end(); + }); +}).listen(7080); diff --git a/test/node/remove_header/app.js b/test/node/remove_header/app.js new file mode 100755 index 00000000..28fee16d --- /dev/null +++ b/test/node/remove_header/app.js @@ -0,0 +1,11 @@ +#!/usr/bin/env node + +require('unit-http').createServer(function (req, res) { + res.setHeader('X-Header', 'test'); + res.setHeader('Was-Header', res.hasHeader('X-Header').toString()); + + res.removeHeader('X-Header'); + res.setHeader('Has-Header', res.hasHeader('X-Header').toString()); + + res.end(); +}).listen(7080); diff --git a/test/node/set_header_array/app.js b/test/node/set_header_array/app.js new file mode 100755 index 00000000..faac45c7 --- /dev/null +++ b/test/node/set_header_array/app.js @@ -0,0 +1,6 @@ +#!/usr/bin/env node + +require('unit-http').createServer(function (req, res) { + res.setHeader('Set-Cookie', ['tc=one,two,three', 'tc=four,five,six']); + res.end(); +}).listen(7080); diff --git a/test/node/status_message/app.js b/test/node/status_message/app.js new file mode 100755 index 00000000..4f3b064a --- /dev/null +++ b/test/node/status_message/app.js @@ -0,0 +1,6 @@ +#!/usr/bin/env node + +require('unit-http').createServer(function (req, res) { + res.writeHead(200, 'blah', {'Content-Type': 'text/plain'}); + res.end(); +}).listen(7080); diff --git a/test/node/update_header/app.js b/test/node/update_header/app.js new file mode 100755 index 00000000..0c5cd237 --- /dev/null +++ b/test/node/update_header/app.js @@ -0,0 +1,7 @@ +#!/usr/bin/env node + +require('unit-http').createServer(function (req, res) { + res.setHeader('X-Header', 'test'); + res.setHeader('X-Header', 'new'); + res.end(); +}).listen(7080); diff --git a/test/node/variables/app.js b/test/node/variables/app.js new file mode 100755 index 00000000..968afba5 --- /dev/null +++ b/test/node/variables/app.js @@ -0,0 +1,20 @@ +#!/usr/bin/env node + +require('unit-http').createServer(function (req, res) { + let body = ''; + req.on('data', chunk => { + body += chunk.toString(); + }); + req.on('end', () => { + res.setHeader('Request-Method', req.method); + res.setHeader('Request-Uri', req.url); + res.setHeader('Server-Protocol', req.httpVersion); + res.setHeader('Request-Raw-Headers', req.rawHeaders.join()); + res.setHeader('Content-Length', Buffer.byteLength(body)); + res.setHeader('Content-Type', req.headers['Content-Type']); + res.setHeader('Custom-Header', req.headers['Custom-Header']); + res.setHeader('Http-Host', req.headers['Host']); + res.writeHead(200, {}); + res.end(body); + }); +}).listen(7080); diff --git a/test/node/write_before_write_head/app.js b/test/node/write_before_write_head/app.js new file mode 100755 index 00000000..9fe3a58d --- /dev/null +++ b/test/node/write_before_write_head/app.js @@ -0,0 +1,6 @@ +#!/usr/bin/env node + +require('unit-http').createServer(function (req, res) { + res.write('blah'); + res.writeHead(200, {'Content-Type': 'text/plain'}); +}).listen(7080); diff --git a/test/node/write_buffer/app.js b/test/node/write_buffer/app.js new file mode 100755 index 00000000..f41de2a1 --- /dev/null +++ b/test/node/write_buffer/app.js @@ -0,0 +1,6 @@ +#!/usr/bin/env node + +require('unit-http').createServer(function (req, res) { + res.writeHead(200, {'Content-Type': 'text/plain'}); + res.end(new Buffer([0x62, 0x75, 0x66, 0x66, 0x65, 0x72])); +}).listen(7080); diff --git a/test/node/write_callback/app.js b/test/node/write_callback/app.js new file mode 100755 index 00000000..9d4bc1c5 --- /dev/null +++ b/test/node/write_callback/app.js @@ -0,0 +1,10 @@ +#!/usr/bin/env node + +require('unit-http').createServer(function (req, res) { + res.writeHead(200, {'Content-Type': 'text/plain'}); + var a = 'blah'; + res.write('hello', 'utf8', function() { + a = 'world'; + }); + res.end(a); +}).listen(7080); diff --git a/test/node/write_return/app.js b/test/node/write_return/app.js new file mode 100755 index 00000000..3ae967c6 --- /dev/null +++ b/test/node/write_return/app.js @@ -0,0 +1,6 @@ +#!/usr/bin/env node + +require('unit-http').createServer(function (req, res) { + res.writeHead(200, {'Content-Type': 'text/plain'}); + res.end(res.write('body').toString()); +}).listen(7080); -- cgit From 2ef5011236b1088c2f8b460c2c13c07e9b727477 Mon Sep 17 00:00:00 2001 From: Andrey Zelenkov Date: Tue, 4 Dec 2018 19:05:10 +0300 Subject: Tests: fixed test_node_application_write_callback. Fixed the write() callback order test. Also introduced a separate test to verify the callback call itself. --- test/node/write_callback/app.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'test/node') diff --git a/test/node/write_callback/app.js b/test/node/write_callback/app.js index 9d4bc1c5..3a9e51e8 100755 --- a/test/node/write_callback/app.js +++ b/test/node/write_callback/app.js @@ -1,10 +1,13 @@ #!/usr/bin/env node +var fs = require('fs'); + require('unit-http').createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); - var a = 'blah'; + var a = 'world'; res.write('hello', 'utf8', function() { - a = 'world'; + a = 'blah'; + fs.appendFile('callback', '', function() {}); }); res.end(a); }).listen(7080); -- cgit From aafa4bbaf92cca2968eac19d74c59f7c7711b9dd Mon Sep 17 00:00:00 2001 From: Andrey Zelenkov Date: Tue, 11 Dec 2018 18:30:58 +0300 Subject: Tests: more Node.js tests. --- test/node/double_end/app.js | 6 ++++++ test/node/get_header_names/app.js | 8 ++++++++ test/node/has_header/app.js | 6 ++++++ test/node/header_name_case/app.js | 8 ++++++++ test/node/header_name_valid/app.js | 7 +++++++ test/node/header_value_object/app.js | 6 ++++++ test/node/promise_end/app.js | 16 ++++++++++++++++ test/node/promise_handler/app.js | 18 ++++++++++++++++++ test/node/remove_header/app.js | 2 +- test/node/write_multiple/app.js | 8 ++++++++ 10 files changed, 84 insertions(+), 1 deletion(-) create mode 100755 test/node/double_end/app.js create mode 100755 test/node/get_header_names/app.js create mode 100755 test/node/has_header/app.js create mode 100755 test/node/header_name_case/app.js create mode 100755 test/node/header_name_valid/app.js create mode 100755 test/node/header_value_object/app.js create mode 100755 test/node/promise_end/app.js create mode 100755 test/node/promise_handler/app.js create mode 100755 test/node/write_multiple/app.js (limited to 'test/node') diff --git a/test/node/double_end/app.js b/test/node/double_end/app.js new file mode 100755 index 00000000..d8280917 --- /dev/null +++ b/test/node/double_end/app.js @@ -0,0 +1,6 @@ +#!/usr/bin/env node + +require('unit-http').createServer(function (req, res) { + res.end(); + res.end(); +}).listen(7080); diff --git a/test/node/get_header_names/app.js b/test/node/get_header_names/app.js new file mode 100755 index 00000000..4cbccc16 --- /dev/null +++ b/test/node/get_header_names/app.js @@ -0,0 +1,8 @@ +#!/usr/bin/env node + +require('unit-http').createServer(function (req, res) { + res.setHeader('DATE', ['date1', 'date2']); + res.setHeader('X-Header', 'blah'); + res.setHeader('X-Names', res.getHeaderNames()); + res.end(); +}).listen(7080); diff --git a/test/node/has_header/app.js b/test/node/has_header/app.js new file mode 100755 index 00000000..040f551e --- /dev/null +++ b/test/node/has_header/app.js @@ -0,0 +1,6 @@ +#!/usr/bin/env node + +require('unit-http').createServer(function (req, res) { + res.setHeader('X-Has-Header', res.hasHeader(req['headers']['X-Header']) + ''); + res.end(); +}).listen(7080); diff --git a/test/node/header_name_case/app.js b/test/node/header_name_case/app.js new file mode 100755 index 00000000..490bd4d5 --- /dev/null +++ b/test/node/header_name_case/app.js @@ -0,0 +1,8 @@ +#!/usr/bin/env node + +require('unit-http').createServer(function (req, res) { + res.setHeader('X-Header', '1'); + res.setHeader('X-header', '2'); + res.setHeader('X-HEADER', '3'); + res.end(); +}).listen(7080); diff --git a/test/node/header_name_valid/app.js b/test/node/header_name_valid/app.js new file mode 100755 index 00000000..425f026f --- /dev/null +++ b/test/node/header_name_valid/app.js @@ -0,0 +1,7 @@ +#!/usr/bin/env node + +require('unit-http').createServer(function (req, res) { + res.writeHead(200, {}); + res.setHeader('@$', 'test'); + res.end(); +}).listen(7080); diff --git a/test/node/header_value_object/app.js b/test/node/header_value_object/app.js new file mode 100755 index 00000000..ff4e2bb0 --- /dev/null +++ b/test/node/header_value_object/app.js @@ -0,0 +1,6 @@ +#!/usr/bin/env node + +require('unit-http').createServer(function (req, res) { + res.setHeader('X-Header', {}); + res.end(); +}).listen(7080); diff --git a/test/node/promise_end/app.js b/test/node/promise_end/app.js new file mode 100755 index 00000000..ed22464c --- /dev/null +++ b/test/node/promise_end/app.js @@ -0,0 +1,16 @@ +#!/usr/bin/env node + +var fs = require('fs'); + +require('unit-http').createServer(function (req, res) { + res.write('blah'); + + Promise.resolve().then(() => { + res.end(); + }); + + req.on('data', (data) => { + fs.appendFile('callback', '', function() {}); + }); + +}).listen(7080); diff --git a/test/node/promise_handler/app.js b/test/node/promise_handler/app.js new file mode 100755 index 00000000..54df09d1 --- /dev/null +++ b/test/node/promise_handler/app.js @@ -0,0 +1,18 @@ +#!/usr/bin/env node + +var fs = require('fs'); + +require('unit-http').createServer(function (req, res) { + res.end(); + + if (req.headers['X-Write-Call']) { + res.writeHead(200, {'Content-Type': 'text/plain'}); + res.write('blah'); + } + + Promise.resolve().then(() => { + req.on('data', (data) => { + fs.appendFile(data.toString(), '', function() {}); + }); + }); +}).listen(7080); diff --git a/test/node/remove_header/app.js b/test/node/remove_header/app.js index 28fee16d..578b72a7 100755 --- a/test/node/remove_header/app.js +++ b/test/node/remove_header/app.js @@ -4,7 +4,7 @@ require('unit-http').createServer(function (req, res) { res.setHeader('X-Header', 'test'); res.setHeader('Was-Header', res.hasHeader('X-Header').toString()); - res.removeHeader('X-Header'); + res.removeHeader(req['headers']['X-Remove']); res.setHeader('Has-Header', res.hasHeader('X-Header').toString()); res.end(); diff --git a/test/node/write_multiple/app.js b/test/node/write_multiple/app.js new file mode 100755 index 00000000..3cbb3b86 --- /dev/null +++ b/test/node/write_multiple/app.js @@ -0,0 +1,8 @@ +#!/usr/bin/env node + +require('unit-http').createServer(function (req, res) { + res.writeHead(200, {'Content-Type': 'text/plain', 'Content-Length': 14}); + res.write('write'); + res.write('write2'); + res.end('end'); +}).listen(7080); -- cgit