aboutsummaryrefslogtreecommitdiff
path: root/sandbox/testAppNevena/Front/node_modules/jsonparse/test
diff options
context:
space:
mode:
authorNevena Bojovic <nenabojov@gmail.com>2022-03-01 20:05:50 +0100
committerNevena Bojovic <nenabojov@gmail.com>2022-03-01 20:05:50 +0100
commit291803c31f829fe0d32bb3207bc11def95a7408c (patch)
treec7d43107d79291b19d8c9eceefbe91c9f9a52acf /sandbox/testAppNevena/Front/node_modules/jsonparse/test
parent1fa69862057db4db53cfda5be9c24b4228ef63f7 (diff)
Urađena test aplikacija. Povezan front i back.
Diffstat (limited to 'sandbox/testAppNevena/Front/node_modules/jsonparse/test')
-rw-r--r--sandbox/testAppNevena/Front/node_modules/jsonparse/test/big-token.js24
-rw-r--r--sandbox/testAppNevena/Front/node_modules/jsonparse/test/boundary.js110
-rw-r--r--sandbox/testAppNevena/Front/node_modules/jsonparse/test/offset.js67
-rw-r--r--sandbox/testAppNevena/Front/node_modules/jsonparse/test/primitives.js57
-rw-r--r--sandbox/testAppNevena/Front/node_modules/jsonparse/test/surrogate.js26
-rw-r--r--sandbox/testAppNevena/Front/node_modules/jsonparse/test/unvalid.js15
-rw-r--r--sandbox/testAppNevena/Front/node_modules/jsonparse/test/utf8.js38
7 files changed, 337 insertions, 0 deletions
diff --git a/sandbox/testAppNevena/Front/node_modules/jsonparse/test/big-token.js b/sandbox/testAppNevena/Front/node_modules/jsonparse/test/big-token.js
new file mode 100644
index 00000000..36046317
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/jsonparse/test/big-token.js
@@ -0,0 +1,24 @@
+var stream = require('stream');
+var JsonParse = require('../jsonparse');
+var test = require('tape');
+
+test('can handle large tokens without running out of memory', function (t) {
+ var parser = new JsonParse();
+ var chunkSize = 1024;
+ var chunks = 1024 * 200; // 200mb
+ var quote = Buffer.from ? Buffer.from('"') : new Buffer('"');
+ t.plan(1);
+
+ parser.onToken = function (type, value) {
+ t.equal(value.length, chunkSize * chunks, 'token should be size of input json');
+ t.end();
+ };
+
+ parser.write(quote);
+ for (var i = 0; i < chunks; ++i) {
+ var buf = Buffer.alloc ? Buffer.alloc(chunkSize) : new Buffer(chunkSize);
+ buf.fill('a');
+ parser.write(buf);
+ }
+ parser.write(quote);
+});
diff --git a/sandbox/testAppNevena/Front/node_modules/jsonparse/test/boundary.js b/sandbox/testAppNevena/Front/node_modules/jsonparse/test/boundary.js
new file mode 100644
index 00000000..6671f5f9
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/jsonparse/test/boundary.js
@@ -0,0 +1,110 @@
+var test = require('tape');
+var Parser = require('../');
+
+test('2 byte utf8 \'De\' character: д', function (t) {
+ t.plan(1);
+
+ var p = new Parser();
+ p.onValue = function (value) {
+ t.equal(value, 'д');
+ };
+
+ var de_buffer = new Buffer([0xd0, 0xb4]);
+
+ p.write('"');
+ p.write(de_buffer);
+ p.write('"');
+
+});
+
+test('3 byte utf8 \'Han\' character: 我', function (t) {
+ t.plan(1);
+
+ var p = new Parser();
+ p.onValue = function (value) {
+ t.equal(value, '我');
+ };
+
+ var han_buffer = new Buffer([0xe6, 0x88, 0x91]);
+ p.write('"');
+ p.write(han_buffer);
+ p.write('"');
+});
+
+test('4 byte utf8 character (unicode scalar U+2070E): 𠜎', function (t) {
+ t.plan(1);
+
+ var p = new Parser();
+ p.onValue = function (value) {
+ t.equal(value, '𠜎');
+ };
+
+ var Ux2070E_buffer = new Buffer([0xf0, 0xa0, 0x9c, 0x8e]);
+ p.write('"');
+ p.write(Ux2070E_buffer);
+ p.write('"');
+});
+
+test('3 byte utf8 \'Han\' character chunked inbetween 2nd and 3rd byte: 我', function (t) {
+ t.plan(1);
+
+ var p = new Parser();
+ p.onValue = function (value) {
+ t.equal(value, '我');
+ };
+
+ var han_buffer_first = new Buffer([0xe6, 0x88]);
+ var han_buffer_second = new Buffer([0x91]);
+ p.write('"');
+ p.write(han_buffer_first);
+ p.write(han_buffer_second);
+ p.write('"');
+});
+
+test('4 byte utf8 character (unicode scalar U+2070E) chunked inbetween 2nd and 3rd byte: 𠜎', function (t) {
+ t.plan(1);
+
+ var p = new Parser();
+ p.onValue = function (value) {
+ t.equal(value, '𠜎');
+ };
+
+ var Ux2070E_buffer_first = new Buffer([0xf0, 0xa0]);
+ var Ux2070E_buffer_second = new Buffer([0x9c, 0x8e]);
+ p.write('"');
+ p.write(Ux2070E_buffer_first);
+ p.write(Ux2070E_buffer_second);
+ p.write('"');
+});
+
+test('1-4 byte utf8 character string chunked inbetween random bytes: Aж文𠜱B', function (t) {
+ t.plan(1);
+
+var p = new Parser();
+ p.onValue = function (value) {
+ t.equal(value, 'Aж文𠜱B');
+ };
+
+ var eclectic_buffer = new Buffer([0x41, // A
+ 0xd0, 0xb6, // ж
+ 0xe6, 0x96, 0x87, // 文
+ 0xf0, 0xa0, 0x9c, 0xb1, // 𠜱
+ 0x42]); // B
+
+ var rand_chunk = Math.floor(Math.random() * (eclectic_buffer.length));
+ var first_buffer = eclectic_buffer.slice(0, rand_chunk);
+ var second_buffer = eclectic_buffer.slice(rand_chunk);
+
+ //console.log('eclectic_buffer: ' + eclectic_buffer)
+ //console.log('sliced from 0 to ' + rand_chunk);
+ //console.log(first_buffer);
+ //console.log('then sliced from ' + rand_chunk + ' to the end');
+ //console.log(second_buffer);
+
+ console.log('chunked after offset ' + rand_chunk);
+ p.write('"');
+ p.write(first_buffer);
+ p.write(second_buffer);
+ p.write('"');
+
+}); \ No newline at end of file
diff --git a/sandbox/testAppNevena/Front/node_modules/jsonparse/test/offset.js b/sandbox/testAppNevena/Front/node_modules/jsonparse/test/offset.js
new file mode 100644
index 00000000..9a552ab0
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/jsonparse/test/offset.js
@@ -0,0 +1,67 @@
+var test = require('tape');
+var Parser = require('../');
+
+var input = '{\n "string": "value",\n "number": 3,\n "object"';
+var input2 = ': {\n "key": "vд"\n },\n "array": [\n -1,\n 12\n ]\n ';
+var input3 = '"null": null, "true": true, "false": false, "frac": 3.14 }';
+
+var offsets = [
+ [ 0, Parser.C.LEFT_BRACE ],
+ [ 4, Parser.C.STRING ],
+ [ 12, Parser.C.COLON ],
+ [ 14, Parser.C.STRING ],
+ [ 21, Parser.C.COMMA ],
+ [ 25, Parser.C.STRING ],
+ [ 33, Parser.C.COLON ],
+ [ 35, Parser.C.NUMBER ],
+ [ 36, Parser.C.COMMA ],
+ [ 40, Parser.C.STRING ],
+ [ 48, Parser.C.COLON ],
+ [ 50, Parser.C.LEFT_BRACE ],
+ [ 54, Parser.C.STRING ],
+ [ 59, Parser.C.COLON ],
+ [ 61, Parser.C.STRING ],
+ [ 69, Parser.C.RIGHT_BRACE ],
+ [ 70, Parser.C.COMMA ],
+ [ 74, Parser.C.STRING ],
+ [ 81, Parser.C.COLON ],
+ [ 83, Parser.C.LEFT_BRACKET ],
+ [ 87, Parser.C.NUMBER ],
+ [ 89, Parser.C.COMMA ],
+ [ 93, Parser.C.NUMBER ],
+ [ 98, Parser.C.RIGHT_BRACKET ],
+ [ 102, Parser.C.STRING ],
+ [ 108, Parser.C.COLON ],
+ [ 110, Parser.C.NULL ],
+ [ 114, Parser.C.COMMA ],
+ [ 116, Parser.C.STRING ],
+ [ 122, Parser.C.COLON ],
+ [ 124, Parser.C.TRUE ],
+ [ 128, Parser.C.COMMA ],
+ [ 130, Parser.C.STRING ],
+ [ 137, Parser.C.COLON ],
+ [ 139, Parser.C.FALSE ],
+ [ 144, Parser.C.COMMA ],
+ [ 146, Parser.C.STRING ],
+ [ 152, Parser.C.COLON ],
+ [ 154, Parser.C.NUMBER ],
+ [ 159, Parser.C.RIGHT_BRACE ]
+];
+
+test('offset', function(t) {
+ t.plan(offsets.length * 2 + 1);
+
+ var p = new Parser();
+ var i = 0;
+ p.onToken = function (token) {
+ t.equal(p.offset, offsets[i][0]);
+ t.equal(token, offsets[i][1]);
+ i++;
+ };
+
+ p.write(input);
+ p.write(input2);
+ p.write(input3);
+
+ t.equal(i, offsets.length);
+});
diff --git a/sandbox/testAppNevena/Front/node_modules/jsonparse/test/primitives.js b/sandbox/testAppNevena/Front/node_modules/jsonparse/test/primitives.js
new file mode 100644
index 00000000..33cae169
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/jsonparse/test/primitives.js
@@ -0,0 +1,57 @@
+var test = require('tape');
+var Parser = require('../');
+
+var expected = [
+ [ [], '' ],
+ [ [], 'Hello' ],
+ [ [], 'This"is' ],
+ [ [], '\r\n\f\t\\/"' ],
+ [ [], 'Λάμβδα' ],
+ [ [], '\\' ],
+ [ [], '/' ],
+ [ [], '"' ],
+ [ [ 0 ], 0 ],
+ [ [ 1 ], 1 ],
+ [ [ 2 ], -1 ],
+ [ [], [ 0, 1, -1 ] ],
+ [ [ 0 ], 1 ],
+ [ [ 1 ], 1.1 ],
+ [ [ 2 ], -1.1 ],
+ [ [ 3 ], -1 ],
+ [ [], [ 1, 1.1, -1.1, -1 ] ],
+ [ [ 0 ], -1 ],
+ [ [], [ -1 ] ],
+ [ [ 0 ], -0.1 ],
+ [ [], [ -0.1 ] ],
+ [ [ 0 ], 6.02e+23 ],
+ [ [], [ 6.02e+23 ] ],
+ [ [ 0 ], '7161093205057351174' ],
+ [ [], [ '7161093205057351174'] ]
+];
+
+test('primitives', function (t) {
+ t.plan(25);
+
+ var p = new Parser();
+ p.onValue = function (value) {
+ var keys = this.stack
+ .slice(1)
+ .map(function (item) { return item.key })
+ .concat(this.key !== undefined ? this.key : [])
+ ;
+ t.deepEqual(
+ [ keys, value ],
+ expected.shift()
+ );
+ };
+
+ p.write('"""Hello""This\\"is""\\r\\n\\f\\t\\\\\\/\\""');
+ p.write('"\\u039b\\u03ac\\u03bc\\u03b2\\u03b4\\u03b1"');
+ p.write('"\\\\"');
+ p.write('"\\/"');
+ p.write('"\\""');
+ p.write('[0,1,-1]');
+ p.write('[1.0,1.1,-1.1,-1.0][-1][-0.1]');
+ p.write('[6.02e23]');
+ p.write('[7161093205057351174]');
+});
diff --git a/sandbox/testAppNevena/Front/node_modules/jsonparse/test/surrogate.js b/sandbox/testAppNevena/Front/node_modules/jsonparse/test/surrogate.js
new file mode 100644
index 00000000..c048f370
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/jsonparse/test/surrogate.js
@@ -0,0 +1,26 @@
+var test = require('tape');
+var Parser = require('../');
+
+test('parse surrogate pair', function (t) {
+ t.plan(1);
+
+ var p = new Parser();
+ p.onValue = function (value) {
+ t.equal(value, '😋');
+ };
+
+ p.write('"\\uD83D\\uDE0B"');
+});
+
+test('parse chunked surrogate pair', function (t) {
+ t.plan(1);
+
+ var p = new Parser();
+ p.onValue = function (value) {
+ t.equal(value, '😋');
+ };
+
+ p.write('"\\uD83D');
+ p.write('\\uDE0B"');
+});
+
diff --git a/sandbox/testAppNevena/Front/node_modules/jsonparse/test/unvalid.js b/sandbox/testAppNevena/Front/node_modules/jsonparse/test/unvalid.js
new file mode 100644
index 00000000..7715cc0e
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/jsonparse/test/unvalid.js
@@ -0,0 +1,15 @@
+var test = require('tape');
+var Parser = require('../');
+
+test('unvalid', function (t) {
+ var count = 0;
+
+ var p = new Parser();
+ p.onError = function (value) {
+ count++;
+ t.equal(1, count);
+ t.end();
+ };
+
+ p.write('{"test": eer[');
+});
diff --git a/sandbox/testAppNevena/Front/node_modules/jsonparse/test/utf8.js b/sandbox/testAppNevena/Front/node_modules/jsonparse/test/utf8.js
new file mode 100644
index 00000000..6cb842f3
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/jsonparse/test/utf8.js
@@ -0,0 +1,38 @@
+var test = require('tape');
+var Parser = require('../');
+
+test('3 bytes of utf8', function (t) {
+ t.plan(1);
+
+ var p = new Parser();
+ p.onValue = function (value) {
+ t.equal(value, '├──');
+ };
+
+ p.write('"├──"');
+});
+
+test('utf8 snowman', function (t) {
+ t.plan(1);
+
+ var p = new Parser();
+ p.onValue = function (value) {
+ t.equal(value, '☃');
+ };
+
+ p.write('"☃"');
+});
+
+test('utf8 with regular ascii', function (t) {
+ t.plan(4);
+
+ var p = new Parser();
+ var expected = [ "snow: ☃!", "xyz", "¡que!" ];
+ expected.push(expected.slice());
+
+ p.onValue = function (value) {
+ t.deepEqual(value, expected.shift());
+ };
+
+ p.write('["snow: ☃!","xyz","¡que!"]');
+});