Write unit tests for the string32 and toRomanNumerals utility functions
				
					
				
			This commit is contained in:
		
							parent
							
								
									eb7fc2625f
								
							
						
					
					
						commit
						b6eddc40b5
					
				@ -17,7 +17,7 @@ import {
 | 
				
			|||||||
  bytesToString, createPromiseCapability, createValidAbsoluteUrl,
 | 
					  bytesToString, createPromiseCapability, createValidAbsoluteUrl,
 | 
				
			||||||
  getInheritableProperty, isArrayBuffer, isBool, isEmptyObj, isNum,
 | 
					  getInheritableProperty, isArrayBuffer, isBool, isEmptyObj, isNum,
 | 
				
			||||||
  isSameOrigin, isSpace, isString, log2, ReadableStream, removeNullCharacters,
 | 
					  isSameOrigin, isSpace, isString, log2, ReadableStream, removeNullCharacters,
 | 
				
			||||||
  stringToBytes, stringToPDFString, URL
 | 
					  string32, stringToBytes, stringToPDFString, toRomanNumerals, URL
 | 
				
			||||||
} from '../../src/shared/util';
 | 
					} from '../../src/shared/util';
 | 
				
			||||||
import { Dict, Ref } from '../../src/core/primitives';
 | 
					import { Dict, Ref } from '../../src/core/primitives';
 | 
				
			||||||
import { XRefMock } from './test_utils';
 | 
					import { XRefMock } from './test_utils';
 | 
				
			||||||
@ -254,6 +254,14 @@ describe('util', function() {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  describe('string32', function() {
 | 
				
			||||||
 | 
					    it('converts unsigned 32-bit integers to strings', function() {
 | 
				
			||||||
 | 
					      expect(string32(0x74727565)).toEqual('true');
 | 
				
			||||||
 | 
					      expect(string32(0x74797031)).toEqual('typ1');
 | 
				
			||||||
 | 
					      expect(string32(0x4F54544F)).toEqual('OTTO');
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('stringToBytes', function() {
 | 
					  describe('stringToBytes', function() {
 | 
				
			||||||
    it('handles non-string arguments', function() {
 | 
					    it('handles non-string arguments', function() {
 | 
				
			||||||
      expect(function() {
 | 
					      expect(function() {
 | 
				
			||||||
@ -313,6 +321,42 @@ describe('util', function() {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  describe('toRomanNumerals', function() {
 | 
				
			||||||
 | 
					    it('handles invalid arguments', function() {
 | 
				
			||||||
 | 
					      for (const input of ['foo', -1, 0]) {
 | 
				
			||||||
 | 
					        expect(function() {
 | 
				
			||||||
 | 
					          toRomanNumerals(input);
 | 
				
			||||||
 | 
					        }).toThrow(new Error('The number should be a positive integer.'));
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('converts numbers to uppercase Roman numerals', function() {
 | 
				
			||||||
 | 
					      expect(toRomanNumerals(1)).toEqual('I');
 | 
				
			||||||
 | 
					      expect(toRomanNumerals(6)).toEqual('VI');
 | 
				
			||||||
 | 
					      expect(toRomanNumerals(7)).toEqual('VII');
 | 
				
			||||||
 | 
					      expect(toRomanNumerals(8)).toEqual('VIII');
 | 
				
			||||||
 | 
					      expect(toRomanNumerals(10)).toEqual('X');
 | 
				
			||||||
 | 
					      expect(toRomanNumerals(40)).toEqual('XL');
 | 
				
			||||||
 | 
					      expect(toRomanNumerals(100)).toEqual('C');
 | 
				
			||||||
 | 
					      expect(toRomanNumerals(500)).toEqual('D');
 | 
				
			||||||
 | 
					      expect(toRomanNumerals(1000)).toEqual('M');
 | 
				
			||||||
 | 
					      expect(toRomanNumerals(2019)).toEqual('MMXIX');
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('converts numbers to lowercase Roman numerals', function() {
 | 
				
			||||||
 | 
					      expect(toRomanNumerals(1, /* lowercase = */ true)).toEqual('i');
 | 
				
			||||||
 | 
					      expect(toRomanNumerals(6, /* lowercase = */ true)).toEqual('vi');
 | 
				
			||||||
 | 
					      expect(toRomanNumerals(7, /* lowercase = */ true)).toEqual('vii');
 | 
				
			||||||
 | 
					      expect(toRomanNumerals(8, /* lowercase = */ true)).toEqual('viii');
 | 
				
			||||||
 | 
					      expect(toRomanNumerals(10, /* lowercase = */ true)).toEqual('x');
 | 
				
			||||||
 | 
					      expect(toRomanNumerals(40, /* lowercase = */ true)).toEqual('xl');
 | 
				
			||||||
 | 
					      expect(toRomanNumerals(100, /* lowercase = */ true)).toEqual('c');
 | 
				
			||||||
 | 
					      expect(toRomanNumerals(500, /* lowercase = */ true)).toEqual('d');
 | 
				
			||||||
 | 
					      expect(toRomanNumerals(1000, /* lowercase = */ true)).toEqual('m');
 | 
				
			||||||
 | 
					      expect(toRomanNumerals(2019, /* lowercase = */ true)).toEqual('mmxix');
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('URL', function() {
 | 
					  describe('URL', function() {
 | 
				
			||||||
    it('should return an Object', function() {
 | 
					    it('should return an Object', function() {
 | 
				
			||||||
      const url = new URL('https://example.com');
 | 
					      const url = new URL('https://example.com');
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user