Upload packaging folder
[platform/upstream/iotjs.git] / tools / test / run_pass / test_httpclient_timeout2.js
1 /* Copyright 2015-present Samsung Electronics Co., Ltd. and other contributors
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15
16
17
18 var assert = require('assert');
19 var http = require('http');
20
21 var timeouted = false;
22
23 var options = {
24   method: 'GET',
25   port: 3004
26 };
27
28 var server = http.createServer(function(req, res) {
29   res.write(".");
30 });
31
32
33 server.listen(options.port, function() {
34   var req = http.request(options, function(res) {
35     var destroyer = function() {
36       timeouted = true;
37       req.socket.destroy();
38       server.close();
39     }
40
41     res.on('data', function() {
42       // after connection established
43       req.setTimeout(100, destroyer);
44     });
45   });
46
47   req.on('close', function() {
48     server.close();
49   });
50
51   var before = function(){
52     /* this handler must not be called  */
53   };
54   req.setTimeout(1000, before);
55
56   req.on('error', function(){});
57   req.end();
58 });
59
60
61 process.on('exit', function(code) {
62   assert.equal(timeouted, true);
63 });