chrome-devtools-frontend
Version:
Chrome DevTools UI
47 lines (39 loc) • 2.08 kB
text/typescript
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import * as Common from './common.js';
const CharacterIdMap = Common.CharacterIdMap.CharacterIdMap;
describe('CharacterIdMap class', () => {
it('is able to convert an element to a character', () => {
const testElement = document.createElement('p');
const characterIdMap = new CharacterIdMap();
assert.strictEqual(characterIdMap.toChar(testElement), '!', 'element was not converted correctly');
});
it('is able to convert a character to an element', () => {
const testElement = document.createElement('p');
const characterIdMap = new CharacterIdMap();
assert.strictEqual(characterIdMap.toChar(testElement), '!', 'element was not converted correctly');
assert.strictEqual(characterIdMap.fromChar('!'), testElement, 'character was not converted correctly');
});
it('returns the same character when trying to convert an element that was already converted', () => {
const testElement = document.createElement('p');
const characterIdMap = new CharacterIdMap();
assert.strictEqual(characterIdMap.toChar(testElement), '!', 'element was not converted correctly');
assert.strictEqual(characterIdMap.toChar(testElement), '!', 'element was not converted correctly');
});
it('throws an error when trying to convert a number when there is no capacity left', () => {
const upperLimit = 0xFFFF;
const characterIdMap = new CharacterIdMap();
assert.throws(() => {
for (let index = 0; index <= upperLimit; index++) {
const el = document.createElement('div');
el.setAttribute('id', 'Div' + index);
characterIdMap.toChar(el);
}
}, 'CharacterIdMap ran out of capacity!');
});
it('returns null when trying to convert a character that does not exist in the Map', () => {
const characterIdMap = new CharacterIdMap();
assert.isNull(characterIdMap.fromChar('!'), 'character was not converted correctly');
});
});