From a29c2d99445eb618c225edb2b6f4f32127339418 Mon Sep 17 00:00:00 2001 From: Tim van der Meij Date: Sun, 3 Dec 2017 13:41:44 +0100 Subject: [PATCH] Implement unit tests for utility functions that perform type/value checks --- test/unit/util_spec.js | 90 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 88 insertions(+), 2 deletions(-) diff --git a/test/unit/util_spec.js b/test/unit/util_spec.js index 17731ba26..798404bd0 100644 --- a/test/unit/util_spec.js +++ b/test/unit/util_spec.js @@ -14,8 +14,8 @@ */ import { - bytesToString, ReadableStream, removeNullCharacters, stringToBytes, - stringToPDFString + bytesToString, isArrayBuffer, isBool, isEmptyObj, isNum, isSpace, isString, + ReadableStream, removeNullCharacters, stringToBytes, stringToPDFString } from '../../src/shared/util'; describe('util', function() { @@ -50,6 +50,92 @@ describe('util', function() { }); }); + describe('isArrayBuffer', function() { + it('handles array buffer values', function() { + expect(isArrayBuffer(new ArrayBuffer(0))).toEqual(true); + expect(isArrayBuffer(new Uint8Array(0))).toEqual(true); + }); + + it('handles non-array buffer values', function() { + expect(isArrayBuffer('true')).toEqual(false); + expect(isArrayBuffer(1)).toEqual(false); + expect(isArrayBuffer(null)).toEqual(false); + expect(isArrayBuffer(undefined)).toEqual(false); + }); + }); + + describe('isBool', function() { + it('handles boolean values', function() { + expect(isBool(true)).toEqual(true); + expect(isBool(false)).toEqual(true); + }); + + it('handles non-boolean values', function() { + expect(isBool('true')).toEqual(false); + expect(isBool('false')).toEqual(false); + expect(isBool(1)).toEqual(false); + expect(isBool(0)).toEqual(false); + expect(isBool(null)).toEqual(false); + expect(isBool(undefined)).toEqual(false); + }); + }); + + describe('isEmptyObj', function() { + it('handles empty objects', function() { + expect(isEmptyObj({})).toEqual(true); + }); + + it('handles non-empty objects', function() { + expect(isEmptyObj({ foo: 'bar', })).toEqual(false); + }); + }); + + describe('isNum', function() { + it('handles numeric values', function() { + expect(isNum(1)).toEqual(true); + expect(isNum(0)).toEqual(true); + expect(isNum(-1)).toEqual(true); + expect(isNum(1000000000000000000)).toEqual(true); + expect(isNum(12.34)).toEqual(true); + }); + + it('handles non-numeric values', function() { + expect(isNum('true')).toEqual(false); + expect(isNum(true)).toEqual(false); + expect(isNum(null)).toEqual(false); + expect(isNum(undefined)).toEqual(false); + }); + }); + + describe('isSpace', function() { + it('handles space characters', function() { + expect(isSpace(0x20)).toEqual(true); + expect(isSpace(0x09)).toEqual(true); + expect(isSpace(0x0D)).toEqual(true); + expect(isSpace(0x0A)).toEqual(true); + }); + + it('handles non-space characters', function() { + expect(isSpace(0x0B)).toEqual(false); + expect(isSpace(null)).toEqual(false); + expect(isSpace(undefined)).toEqual(false); + }); + }); + + describe('isString', function() { + it('handles string values', function() { + expect(isString('foo')).toEqual(true); + expect(isString('')).toEqual(true); + }); + + it('handles non-string values', function() { + expect(isString(true)).toEqual(false); + expect(isString(1)).toEqual(false); + expect(isString(null)).toEqual(false); + expect(isString(undefined)).toEqual(false); + }); + }); + describe('stringToBytes', function() { it('handles non-string arguments', function() { expect(function() {