Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
80724 views
1
var B = require('../').Buffer
2
var test = require('tape')
3
if (process.env.OBJECT_IMPL) B.TYPED_ARRAY_SUPPORT = false
4
5
6
test('detect utf16 surrogate pairs', function(t) {
7
var text = '\uD83D\uDE38' + '\uD83D\uDCAD' + '\uD83D\uDC4D'
8
var buf = new B(text)
9
t.equal(text, buf.toString())
10
t.end()
11
})
12
13
test('throw on orphaned utf16 surrogate lead code point', function(t) {
14
var text = '\uD83D\uDE38' + '\uD83D' + '\uD83D\uDC4D'
15
var err
16
try {
17
var buf = new B(text)
18
} catch (e) {
19
err = e
20
}
21
t.equal(err instanceof URIError, true)
22
t.end()
23
})
24
25
test('throw on orphaned utf16 surrogate trail code point', function(t) {
26
var text = '\uD83D\uDE38' + '\uDCAD' + '\uD83D\uDC4D'
27
var err
28
try {
29
var buf = new B(text)
30
} catch (e) {
31
err = e
32
}
33
t.equal(err instanceof URIError, true)
34
t.end()
35
})
36
37
test('do not write partial utf16 code units', function(t) {
38
var f = new B([0, 0, 0, 0, 0])
39
t.equal(f.length, 5)
40
var size = f.write('あいうえお', 'utf16le')
41
t.equal(size, 4)
42
t.deepEqual(f, new B([0x42, 0x30, 0x44, 0x30, 0x00]))
43
t.end()
44
})
45
46