38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright Google Inc. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by an MIT-style license that can be
|
|
* found in the LICENSE file at https://angular.io/license
|
|
*/
|
|
|
|
import {beforeEach, ddescribe, describe, expect, iit, inject, it, xdescribe, xit} from '@angular/core/testing/testing_internal';
|
|
import {strHash} from '../../src/i18n/digest';
|
|
|
|
export function main(): void {
|
|
describe('strHash', () => {
|
|
it('should return a hash value', () => {
|
|
// https://github.com/google/closure-library/blob/1fb19a857b96b74e6523f3e9d33080baf25be046/closure/goog/string/string_test.js#L1115
|
|
expectHash('', 0);
|
|
expectHash('foo', 101574);
|
|
expectHash('\uAAAAfoo', 1301670364);
|
|
expectHash('a', 92567585, 5);
|
|
expectHash('a', 2869595232, 6);
|
|
expectHash('a', 3058106369, 7);
|
|
expectHash('a', 312017024, 8);
|
|
expectHash('a', 2929737728, 1024);
|
|
});
|
|
});
|
|
}
|
|
|
|
function expectHash(text: string, decimal: number, repeat: number = 1) {
|
|
let acc = text;
|
|
for (let i = 1; i < repeat; i++) {
|
|
acc += text;
|
|
}
|
|
|
|
const hash = strHash(acc);
|
|
expect(typeof(hash)).toEqual('string');
|
|
expect(hash.length > 0).toBe(true);
|
|
expect(parseInt(hash, 16)).toEqual(decimal);
|
|
} |