arnaucube
arnaucube/comunicationLeapPublic Self-hosted repository
comunicationLeap/node_modules/formidable/test/legacy/simple/test-multipart-parser.js
node_modules/formidable/test/legacy/simple/test-multipart-parser.jsRaw
 1var common = require('../common');
 2var multipartParser = require(common.lib + '/multipart_parser'),
 3    MultipartParser = multipartParser.MultipartParser,
 4    events = require('events'),
 5    Buffer = require('buffer').Buffer,
 6    parser;
 7
 8function test(test) {
 9  parser = new MultipartParser();
10  test();
11}
12
13test(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
23test(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
32test(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), 5);
39});
40
41test(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});