Tizen 2.0 Release
[platform/framework/web/web-ui-fw.git] / libs / js / jquery-mobile-1.2.0 / node_modules / grunt / node_modules / connect / node_modules / formidable / test / legacy / simple / test-multipart-parser.js
1 var common = require('../common');
2 var multipartParser = require(common.lib + '/multipart_parser'),
3     MultipartParser = multipartParser.MultipartParser,
4     events = require('events'),
5     Buffer = require('buffer').Buffer,
6     parser;
7
8 function test(test) {
9   parser = new MultipartParser();
10   test();
11 }
12
13 test(function constructor() {
14   assert.equal(parser.boundary, null);
15   assert.equal(parser.state, 0);
16   assert.equal(parser.flags, 0);
17   assert.equal(parser.boundaryChars, null);
18   assert.equal(parser.index, null);
19   assert.equal(parser.lookbehind, null);
20   assert.equal(parser.constructor.name, 'MultipartParser');
21 });
22
23 test(function initWithBoundary() {
24   var boundary = 'abc';
25   parser.initWithBoundary(boundary);
26   assert.deepEqual(Array.prototype.slice.call(parser.boundary), [13, 10, 45, 45, 97, 98, 99]);
27   assert.equal(parser.state, multipartParser.START);
28
29   assert.deepEqual(parser.boundaryChars, {10: true, 13: true, 45: true, 97: true, 98: true, 99: true});
30 });
31
32 test(function parserError() {
33   var boundary = 'abc',
34       buffer = new Buffer(5);
35
36   parser.initWithBoundary(boundary);
37   buffer.write('--ad', 'ascii', 0);
38   assert.equal(parser.write(buffer), 3);
39 });
40
41 test(function end() {
42   (function testError() {
43     assert.equal(parser.end().message, 'MultipartParser.end(): stream ended unexpectedly: ' + parser.explain());
44   })();
45
46   (function testRegular() {
47     parser.state = multipartParser.END;
48     assert.strictEqual(parser.end(), undefined);
49   })();
50 });