UNPKG

jszhuyin

Version:

Smart Chinese Zhuyin Input Method in JavaScript.

89 lines (69 loc) 2.44 kB
'use strict'; var fs = require('fs'); var assert = require('chai').assert; var utils = require('../util.js'); var DatabaseBuilder = require('../../build/database_builder.js'); suite('DatabaseBuilder'); var resStringArray = utils.numberArrayToStringArray([ 0x0001, 0x0000, // Table0 header 0x0041, // Table0 key table 0x000a, 0x0000, // Table0 ptr table, ptr to table1 (32bit LE) 0x0001, 0x0000, // Table1 header 0x0042, // Table1 key table 0x0014, 0x0000, // Table1 ptr table, ptr to table2 (32bit LE) 0x0001, 0x0005, // Table2 header 0x1111, 0x2222, 0x3333, 0x4444, 0x5555, // Table2 content 0x0043, // Table2 key table 0x0028, 0x0000, // Table2 ptr table, ptr to table3 (32bit LE) 0x0000, 0x0004, // Table3 header 0x6666, 0x7777, 0x8888, 0x9999 // Table3 content ]); test('put()', function() { var buf1 = utils.arrayToUint16LEArrayBuffer([0x1111, 0x2222, 0x3333, 0x4444, 0x5555]); var buf2 = utils.arrayToUint16LEArrayBuffer([0x6666, 0x7777, 0x8888, 0x9999, 0xaaaa]); var res = []; res[0x41] = []; res[0x41][0x42] = [buf1]; res[0x41][0x42][0x43] = [buf2]; var db = new DatabaseBuilder(); db.put([0x41, 0x42], buf1); db.put([0x41, 0x42, 0x43], buf2); assert.deepEqual(db.data, res); }); test('get()', function() { var buf1 = utils.arrayToUint16LEArrayBuffer([0x1111, 0x2222, 0x3333, 0x4444, 0x5555]); var buf2 = utils.arrayToUint16LEArrayBuffer([0x6666, 0x7777, 0x8888, 0x9999, 0xaaaa]); var res = []; res[0x41] = []; res[0x41][0x42] = [buf1]; res[0x41][0x42][0x43] = [buf2]; var db = new DatabaseBuilder(); db.data = res; assert.deepEqual(db.get([0x41, 0x42]), buf1); assert.deepEqual( db.get([0x41, 0x42, 0x43]), buf2); }); test('getBlob()', function() { var buf1 = utils.arrayToUint16LEArrayBuffer([0x1111, 0x2222, 0x3333, 0x4444, 0x5555]); var buf2 = utils.arrayToUint16LEArrayBuffer([0x6666, 0x7777, 0x8888, 0x9999]); var res = []; res[0x41] = []; res[0x41][0x42] = [buf1]; res[0x41][0x42][0x43] = [buf2]; var db = new DatabaseBuilder(); db.put([0x41, 0x42], buf1); db.put([0x41, 0x42, 0x43], buf2); var buffer = db.getBlob(); assert.deepEqual(utils.bufferToStringArray(buffer), resStringArray); }); test('test.data', function() { var buffer = fs.readFileSync(__dirname + '/../resources/test.data'); assert.deepEqual(utils.bufferToStringArray(buffer), resStringArray); });