Update Iot.js
[platform/upstream/iotjs.git] / tools / test / run_pass / test_buffer_builtin.js
1 /* Copyright 2016-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
20
21 var buff1 = new Buffer("test");
22 assert.equal(buff1._builtin.toString(0, 0), "");
23 assert.equal(buff1._builtin.toString(0, 1), "t");
24 assert.equal(buff1._builtin.toString(0, 2), "te");
25 assert.equal(buff1._builtin.toString(0, 3), "tes");
26 assert.equal(buff1._builtin.toString(0, 4), "test");
27 assert.equal(buff1._builtin.toString(1, 4), "est");
28 assert.equal(buff1._builtin.toString(2, 4), "st");
29 assert.equal(buff1._builtin.toString(3, 4), "t");
30 assert.equal(buff1._builtin.toString(4, 4), "");
31
32 assert.equal(buff1._builtin.toString(-1, 5), "test");
33 assert.equal(buff1._builtin.toString(-1, 2), "te");
34 assert.equal(buff1._builtin.toString(2, 5), "st");
35
36
37 var buff2 = new Buffer(10);
38 buff2._builtin.write("abcde", 0, 5);
39 assert.equal(buff2.toString(), "abcde");
40 assert.equal(buff2.length, 10);
41
42 buff2._builtin.write("fgh", 5, 3);
43 assert.equal(buff2.toString(), "abcdefgh");
44 assert.equal(buff2.length, 10);
45
46 buff2._builtin.write("AB", 0, 10);
47 assert.equal(buff2.toString(), "ABcdefgh");
48 assert.equal(buff2.length, 10);
49
50 buff2._builtin.write("ab", -1, 11);
51 assert.equal(buff2.toString(), "abcdefgh");
52 assert.equal(buff2.length, 10);
53
54 buff2._builtin.write("ijklmnopqrstu", 8, 5);
55 assert.equal(buff2.toString(), "abcdefghij");
56 assert.equal(buff2.length, 10);
57
58 buff2._builtin.write("\0\0", 8, 2);
59 assert.equal(buff2.toString(), "abcdefgh");
60 assert.equal(buff2.length, 10);
61
62
63 var buff3 = Buffer.concat([buff1, buff2]);
64
65
66 var buff4 = new Buffer(10);
67 var buff5 = new Buffer('a1b2c3');
68 buff5._builtin.copy(buff4, 0, 0, 6);
69 assert.equal(buff4.toString(), 'a1b2c3');
70 buff5._builtin.copy(buff4, 4, 2, 6);
71 assert.equal(buff4.toString(), 'a1b2b2c3');
72
73
74 var buff6 = buff3._builtin.slice(1, buff3.length);
75 assert.equal(buff6.toString(), 'estabcdefgh');
76 assert.equal(buff6.length, 13);
77
78 var buff7 = buff6._builtin.slice(3, 5);
79 assert.equal(buff7.toString(), 'ab');
80 assert.equal(buff7.length, 2);
81
82 var buff8 = new Buffer(buff5);
83 assert.equal(buff8.toString(), 'a1b2c3');
84 assert.equal(buff8.equals(buff5), true);
85 assert.equal(buff8.equals(buff6), false);
86
87 var buff9 = new Buffer('abcabcabcd');
88 var buff10 = buff9._builtin.slice(0, 3);
89 var buff11 = buff9._builtin.slice(3, 6);
90 var buff12 = buff9._builtin.slice(6, buff9.length);
91 assert.equal(buff10.equals(buff11), true);
92 assert.equal(buff11.equals(buff10), true);
93 assert.equal(buff11.equals(buff12), false);
94 assert.equal(buff10.compare(buff11), 0);
95 assert.equal(buff11.compare(buff10), 0);
96 assert.equal(buff11.compare(buff12), -1);
97 assert.equal(buff12.compare(buff11), 1);
98
99 assert.equal(buff9._builtin.slice(-2, buff9.length).toString(), 'cd');
100 assert.equal(buff9._builtin.slice(-3, -2).toString(), 'b');
101 assert.equal(buff9._builtin.slice(0, -2).toString(), 'abcabcab');
102
103
104 assert.equal(buff3.toString(), 'testabcdefgh');
105
106
107 assert.equal(Buffer.byteLength('\u007F'), 1);
108 assert.equal(Buffer.byteLength('\u008F'), 2);
109 assert.equal(Buffer.byteLength('\u08FF'), 3);
110 assert.equal(Buffer.byteLength('abc'), 'abc'.length);
111 assert.notEqual(Buffer.byteLength('\u2040'), '\u2040'.length);