@vpmedia/phaser 1.116.0 → 1.118.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +195 -229
- package/dist/index.js.map +1 -1
- package/dist/phaser/core/animation.d.ts.map +1 -1
- package/dist/phaser/core/animation_manager.d.ts +16 -15
- package/dist/phaser/core/animation_manager.d.ts.map +1 -1
- package/dist/phaser/core/animation_parser.d.ts.map +1 -1
- package/dist/phaser/core/array_set.d.ts.map +1 -1
- package/dist/phaser/core/cache.d.ts +76 -47
- package/dist/phaser/core/cache.d.ts.map +1 -1
- package/dist/phaser/core/device_util.d.ts.map +1 -1
- package/dist/phaser/core/dom.d.ts.map +1 -1
- package/dist/phaser/core/factory.d.ts.map +1 -1
- package/dist/phaser/core/game.d.ts.map +1 -1
- package/dist/phaser/core/input.d.ts +17 -17
- package/dist/phaser/core/input.d.ts.map +1 -1
- package/dist/phaser/core/input_handler.d.ts +11 -13
- package/dist/phaser/core/input_handler.d.ts.map +1 -1
- package/dist/phaser/core/input_mouse.d.ts.map +1 -1
- package/dist/phaser/core/input_mspointer.d.ts +8 -7
- package/dist/phaser/core/input_mspointer.d.ts.map +1 -1
- package/dist/phaser/core/input_pointer.d.ts +19 -8
- package/dist/phaser/core/input_pointer.d.ts.map +1 -1
- package/dist/phaser/core/input_touch.d.ts.map +1 -1
- package/dist/phaser/core/loader.d.ts +30 -1
- package/dist/phaser/core/loader.d.ts.map +1 -1
- package/dist/phaser/core/loader_parser.d.ts +24 -4
- package/dist/phaser/core/loader_parser.d.ts.map +1 -1
- package/dist/phaser/core/raf.d.ts.map +1 -1
- package/dist/phaser/core/scale_manager.d.ts +37 -12
- package/dist/phaser/core/scale_manager.d.ts.map +1 -1
- package/dist/phaser/core/scene.d.ts.map +1 -1
- package/dist/phaser/core/scene_manager.d.ts.map +1 -1
- package/dist/phaser/core/signal.d.ts.map +1 -1
- package/dist/phaser/core/signal_binding.d.ts.map +1 -1
- package/dist/phaser/core/sound.d.ts +15 -5
- package/dist/phaser/core/sound.d.ts.map +1 -1
- package/dist/phaser/core/sound_manager.d.ts +24 -22
- package/dist/phaser/core/sound_manager.d.ts.map +1 -1
- package/dist/phaser/core/sound_sprite.d.ts.map +1 -1
- package/dist/phaser/core/stage.d.ts.map +1 -1
- package/dist/phaser/core/time.d.ts.map +1 -1
- package/dist/phaser/core/timer.d.ts +1 -1
- package/dist/phaser/core/timer.d.ts.map +1 -1
- package/dist/phaser/core/tween.d.ts +3 -3
- package/dist/phaser/core/tween.d.ts.map +1 -1
- package/dist/phaser/core/tween_data.d.ts +26 -26
- package/dist/phaser/core/tween_data.d.ts.map +1 -1
- package/dist/phaser/core/tween_manager.d.ts +8 -6
- package/dist/phaser/core/tween_manager.d.ts.map +1 -1
- package/dist/phaser/core/world.d.ts.map +1 -1
- package/dist/phaser/display/bitmap_text.d.ts +13 -8
- package/dist/phaser/display/bitmap_text.d.ts.map +1 -1
- package/dist/phaser/display/button.d.ts.map +1 -1
- package/dist/phaser/display/canvas/buffer.d.ts.map +1 -1
- package/dist/phaser/display/canvas/graphics.d.ts.map +1 -1
- package/dist/phaser/display/canvas/masker.d.ts.map +1 -1
- package/dist/phaser/display/canvas/pool.d.ts.map +1 -1
- package/dist/phaser/display/canvas/renderer.d.ts.map +1 -1
- package/dist/phaser/display/canvas/tinter.d.ts +3 -2
- package/dist/phaser/display/canvas/tinter.d.ts.map +1 -1
- package/dist/phaser/display/canvas/util.d.ts.map +1 -1
- package/dist/phaser/display/display_object.d.ts.map +1 -1
- package/dist/phaser/display/graphics.d.ts.map +1 -1
- package/dist/phaser/display/graphics_data.d.ts.map +1 -1
- package/dist/phaser/display/graphics_data_util.d.ts.map +1 -1
- package/dist/phaser/display/group.d.ts.map +1 -1
- package/dist/phaser/display/image.d.ts +2 -2
- package/dist/phaser/display/image.d.ts.map +1 -1
- package/dist/phaser/display/sprite_util.d.ts.map +1 -1
- package/dist/phaser/display/text.d.ts.map +1 -1
- package/dist/phaser/display/webgl/abstract_filter.d.ts.map +1 -1
- package/dist/phaser/display/webgl/base_texture.d.ts +12 -10
- package/dist/phaser/display/webgl/base_texture.d.ts.map +1 -1
- package/dist/phaser/display/webgl/blend_manager.d.ts.map +1 -1
- package/dist/phaser/display/webgl/earcut.d.ts.map +1 -1
- package/dist/phaser/display/webgl/fast_sprite_batch.d.ts +13 -12
- package/dist/phaser/display/webgl/fast_sprite_batch.d.ts.map +1 -1
- package/dist/phaser/display/webgl/filter_manager.d.ts.map +1 -1
- package/dist/phaser/display/webgl/filter_texture.d.ts.map +1 -1
- package/dist/phaser/display/webgl/graphics.d.ts +9 -7
- package/dist/phaser/display/webgl/graphics.d.ts.map +1 -1
- package/dist/phaser/display/webgl/graphics_data.d.ts.map +1 -1
- package/dist/phaser/display/webgl/mask_manager.d.ts.map +1 -1
- package/dist/phaser/display/webgl/render_texture.d.ts.map +1 -1
- package/dist/phaser/display/webgl/renderer.d.ts +12 -10
- package/dist/phaser/display/webgl/renderer.d.ts.map +1 -1
- package/dist/phaser/display/webgl/shader/normal.d.ts.map +1 -1
- package/dist/phaser/display/webgl/shader_manager.d.ts.map +1 -1
- package/dist/phaser/display/webgl/sprite_batch.d.ts.map +1 -1
- package/dist/phaser/display/webgl/stencil_manager.d.ts.map +1 -1
- package/dist/phaser/display/webgl/texture.d.ts +18 -33
- package/dist/phaser/display/webgl/texture.d.ts.map +1 -1
- package/dist/phaser/display/webgl/texture_util.d.ts.map +1 -1
- package/dist/phaser/display/webgl/util.d.ts.map +1 -1
- package/dist/phaser/geom/circle.d.ts.map +1 -1
- package/dist/phaser/geom/ellipse.d.ts.map +1 -1
- package/dist/phaser/geom/line.d.ts.map +1 -1
- package/dist/phaser/geom/matrix.d.ts +1 -1
- package/dist/phaser/geom/matrix.d.ts.map +1 -1
- package/dist/phaser/geom/point.d.ts.map +1 -1
- package/dist/phaser/geom/polygon.d.ts.map +1 -1
- package/dist/phaser/geom/rectangle.d.ts.map +1 -1
- package/dist/phaser/geom/rounded_rectangle.d.ts.map +1 -1
- package/dist/phaser/geom/util/circle.d.ts.map +1 -1
- package/dist/phaser/geom/util/ellipse.d.ts.map +1 -1
- package/dist/phaser/geom/util/line.d.ts +5 -4
- package/dist/phaser/geom/util/line.d.ts.map +1 -1
- package/dist/phaser/geom/util/matrix.d.ts.map +1 -1
- package/dist/phaser/geom/util/point.d.ts.map +1 -1
- package/dist/phaser/geom/util/polygon.d.ts.map +1 -1
- package/dist/phaser/geom/util/rectangle.d.ts +10 -1
- package/dist/phaser/geom/util/rectangle.d.ts.map +1 -1
- package/dist/phaser/geom/util/rounded_rectangle.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/phaser/core/animation.ts +20 -20
- package/src/phaser/core/animation_manager.ts +27 -24
- package/src/phaser/core/animation_parser.ts +2 -2
- package/src/phaser/core/array_set.ts +7 -7
- package/src/phaser/core/cache.test.ts +201 -0
- package/src/phaser/core/cache.ts +174 -130
- package/src/phaser/core/device_util.ts +13 -13
- package/src/phaser/core/dom.ts +26 -22
- package/src/phaser/core/factory.ts +6 -6
- package/src/phaser/core/game.ts +10 -10
- package/src/phaser/core/input.ts +36 -38
- package/src/phaser/core/input_handler.ts +90 -93
- package/src/phaser/core/input_mouse.ts +19 -19
- package/src/phaser/core/input_mspointer.ts +25 -28
- package/src/phaser/core/input_pointer.ts +37 -28
- package/src/phaser/core/input_touch.ts +17 -17
- package/src/phaser/core/loader.ts +132 -92
- package/src/phaser/core/loader_parser.test.ts +115 -0
- package/src/phaser/core/loader_parser.ts +66 -38
- package/src/phaser/core/raf.ts +3 -3
- package/src/phaser/core/scale_manager.ts +86 -67
- package/src/phaser/core/scene.ts +7 -7
- package/src/phaser/core/scene_manager.ts +16 -16
- package/src/phaser/core/signal.ts +29 -19
- package/src/phaser/core/signal_binding.ts +4 -4
- package/src/phaser/core/sound.ts +45 -33
- package/src/phaser/core/sound_manager.ts +72 -73
- package/src/phaser/core/sound_sprite.ts +1 -1
- package/src/phaser/core/stage.ts +7 -7
- package/src/phaser/core/time.ts +16 -16
- package/src/phaser/core/timer.ts +36 -26
- package/src/phaser/core/tween.ts +29 -29
- package/src/phaser/core/tween_data.ts +41 -37
- package/src/phaser/core/tween_manager.ts +50 -43
- package/src/phaser/core/world.ts +1 -1
- package/src/phaser/display/bitmap_text.test.ts +212 -0
- package/src/phaser/display/bitmap_text.ts +52 -37
- package/src/phaser/display/button.ts +13 -13
- package/src/phaser/display/canvas/buffer.ts +3 -3
- package/src/phaser/display/canvas/graphics.ts +3 -3
- package/src/phaser/display/canvas/masker.ts +2 -2
- package/src/phaser/display/canvas/pool.ts +6 -6
- package/src/phaser/display/canvas/renderer.ts +6 -6
- package/src/phaser/display/canvas/tinter.ts +39 -8
- package/src/phaser/display/canvas/util.ts +15 -9
- package/src/phaser/display/display_object.ts +38 -38
- package/src/phaser/display/graphics.ts +30 -30
- package/src/phaser/display/graphics_data.ts +1 -1
- package/src/phaser/display/graphics_data_util.ts +1 -1
- package/src/phaser/display/group.ts +16 -16
- package/src/phaser/display/image.ts +30 -26
- package/src/phaser/display/sprite_util.ts +12 -4
- package/src/phaser/display/text.ts +55 -55
- package/src/phaser/display/webgl/abstract_filter.ts +1 -1
- package/src/phaser/display/webgl/base_texture.ts +22 -18
- package/src/phaser/display/webgl/blend_manager.ts +3 -3
- package/src/phaser/display/webgl/earcut.ts +3 -3
- package/src/phaser/display/webgl/fast_sprite_batch.ts +26 -24
- package/src/phaser/display/webgl/filter_manager.ts +7 -7
- package/src/phaser/display/webgl/filter_texture.ts +3 -3
- package/src/phaser/display/webgl/graphics.ts +43 -41
- package/src/phaser/display/webgl/graphics_data.ts +2 -2
- package/src/phaser/display/webgl/mask_manager.ts +2 -2
- package/src/phaser/display/webgl/render_texture.ts +6 -6
- package/src/phaser/display/webgl/renderer.ts +20 -25
- package/src/phaser/display/webgl/shader/normal.ts +3 -3
- package/src/phaser/display/webgl/shader_manager.ts +2 -2
- package/src/phaser/display/webgl/sprite_batch.ts +9 -9
- package/src/phaser/display/webgl/stencil_manager.ts +4 -4
- package/src/phaser/display/webgl/texture.ts +23 -42
- package/src/phaser/display/webgl/texture_util.ts +2 -2
- package/src/phaser/display/webgl/util.ts +11 -7
- package/src/phaser/geom/circle.ts +21 -21
- package/src/phaser/geom/ellipse.ts +7 -7
- package/src/phaser/geom/line.ts +29 -29
- package/src/phaser/geom/matrix.ts +13 -13
- package/src/phaser/geom/point.ts +36 -30
- package/src/phaser/geom/polygon.ts +6 -6
- package/src/phaser/geom/rectangle.ts +42 -42
- package/src/phaser/geom/rounded_rectangle.ts +2 -2
- package/src/phaser/geom/util/circle.ts +7 -7
- package/src/phaser/geom/util/ellipse.ts +1 -1
- package/src/phaser/geom/util/line.ts +13 -5
- package/src/phaser/geom/util/matrix.ts +3 -3
- package/src/phaser/geom/util/point.ts +20 -20
- package/src/phaser/geom/util/polygon.ts +1 -1
- package/src/phaser/geom/util/rectangle.ts +34 -17
- package/src/phaser/geom/util/rounded_rectangle.ts +1 -1
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { beforeEach, describe, expect, it } from 'vitest';
|
|
2
|
+
import { SCALE_LINEAR } from './const.js';
|
|
3
|
+
import { BITMAPFONT, Cache, IMAGE, SOUND } from './cache.js';
|
|
4
|
+
import { getRegistry } from './registry.js';
|
|
5
|
+
import type { Game } from './game.js';
|
|
6
|
+
|
|
7
|
+
const createGame = (): Game =>
|
|
8
|
+
({
|
|
9
|
+
logger: { warn: (): void => undefined },
|
|
10
|
+
load: { baseURL: '' },
|
|
11
|
+
sound: { isLocked: false },
|
|
12
|
+
}) as unknown as Game;
|
|
13
|
+
|
|
14
|
+
const createImage = (width = 4, height = 4): HTMLImageElement => {
|
|
15
|
+
const img = new Image();
|
|
16
|
+
Object.defineProperty(img, 'width', { value: width });
|
|
17
|
+
Object.defineProperty(img, 'height', { value: height });
|
|
18
|
+
return img;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const FONT_XML = `<?xml version="1.0"?>
|
|
22
|
+
<font>
|
|
23
|
+
<info face="Arial" size="32" />
|
|
24
|
+
<common lineHeight="40" />
|
|
25
|
+
<chars>
|
|
26
|
+
<char id="65" x="0" y="0" width="20" height="30" xoffset="1" yoffset="2" xadvance="21" />
|
|
27
|
+
</chars>
|
|
28
|
+
</font>`;
|
|
29
|
+
|
|
30
|
+
describe('Cache', () => {
|
|
31
|
+
let cache: Cache;
|
|
32
|
+
|
|
33
|
+
beforeEach(() => {
|
|
34
|
+
getRegistry().TEXTURE_SCALE_MODE = SCALE_LINEAR;
|
|
35
|
+
cache = new Cache(createGame());
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
describe('images', () => {
|
|
39
|
+
it('seeds the default and missing images', () => {
|
|
40
|
+
expect(cache.checkImageKey('__default')).toBe(true);
|
|
41
|
+
expect(cache.checkImageKey('__missing')).toBe(true);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it('keeps the default image out of the reported keys', () => {
|
|
45
|
+
expect(cache.getKeys(IMAGE)).toStrictEqual([]);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it('returns the source bitmap by default and the whole entry when asked', () => {
|
|
49
|
+
const source = createImage();
|
|
50
|
+
cache.addImage('logo', 'logo.png', source);
|
|
51
|
+
expect(cache.getImage('logo')).toBe(source);
|
|
52
|
+
expect(cache.getImage('logo', true).key).toBe('logo');
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
it('falls back to the missing image for an unknown key', () => {
|
|
56
|
+
expect(cache.getImage('nope', true).key).toBe('__missing');
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
it('gives an image one frame covering the whole bitmap', () => {
|
|
60
|
+
cache.addImage('logo', 'logo.png', createImage(64, 32));
|
|
61
|
+
const frame = cache.getFrameByIndex('logo', 0);
|
|
62
|
+
expect(frame?.width).toBe(64);
|
|
63
|
+
expect(frame?.height).toBe(32);
|
|
64
|
+
expect(cache.getFrameCount('logo')).toBe(1);
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
it('reports no frames for a key it does not hold', () => {
|
|
68
|
+
expect(cache.getFrameData('nope')).toBeNull();
|
|
69
|
+
expect(cache.getFrameCount('nope')).toBe(0);
|
|
70
|
+
expect(cache.hasFrameData('nope')).toBe(false);
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
it('drops an image when it is removed', () => {
|
|
74
|
+
cache.addImage('logo', 'logo.png', createImage());
|
|
75
|
+
cache.removeImage('logo');
|
|
76
|
+
expect(cache.checkImageKey('logo')).toBe(false);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
it('replaces an image registered twice under the same key', () => {
|
|
80
|
+
cache.addImage('logo', 'a.png', createImage(4, 4));
|
|
81
|
+
const second = createImage(8, 8);
|
|
82
|
+
cache.addImage('logo', 'b.png', second);
|
|
83
|
+
expect(cache.getImage('logo')).toBe(second);
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
it('clears the GL textures of every cached image', () => {
|
|
87
|
+
cache.addImage('logo', 'logo.png', createImage());
|
|
88
|
+
const entry = cache.getImage('logo', true);
|
|
89
|
+
entry.base._glTextures = [null];
|
|
90
|
+
cache.clearGLTextures();
|
|
91
|
+
expect(entry.base._glTextures).toStrictEqual([]);
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
describe('sounds', () => {
|
|
96
|
+
it('stores a sound as undecoded', () => {
|
|
97
|
+
cache.addSound('shot', 'shot.ogg', new ArrayBuffer(8));
|
|
98
|
+
expect(cache.isSoundDecoded('shot')).toBe(false);
|
|
99
|
+
expect(cache.isSoundReady('shot')).toBe(false);
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
it('reports an unknown sound as neither decoded nor ready', () => {
|
|
103
|
+
expect(cache.isSoundDecoded('nope')).toBeNull();
|
|
104
|
+
expect(cache.isSoundReady('nope')).toBe(false);
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
it('updates a single property of a cached sound', () => {
|
|
108
|
+
cache.addSound('shot', 'shot.ogg', new ArrayBuffer(8));
|
|
109
|
+
cache.updateSound('shot', 'isDecoding', true);
|
|
110
|
+
expect(cache.getSound('shot')?.isDecoding).toBe(true);
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
it('swaps in the decoded buffer and marks the sound ready', () => {
|
|
114
|
+
cache.addSound('shot', 'shot.ogg', new ArrayBuffer(8));
|
|
115
|
+
const buffer = { duration: 1.5 } as AudioBuffer;
|
|
116
|
+
cache.decodedSound('shot', buffer);
|
|
117
|
+
expect(cache.getSoundData('shot')).toBe(buffer);
|
|
118
|
+
expect(cache.isSoundDecoded('shot')).toBe(true);
|
|
119
|
+
expect(cache.isSoundReady('shot')).toBe(true);
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
it('ignores a decode result for a sound it never held', () => {
|
|
123
|
+
expect(() => {
|
|
124
|
+
cache.decodedSound('nope', {} as AudioBuffer);
|
|
125
|
+
}).not.toThrow();
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
it('drops a sound when it is removed', () => {
|
|
129
|
+
cache.addSound('shot', 'shot.ogg', new ArrayBuffer(8));
|
|
130
|
+
cache.removeSound('shot');
|
|
131
|
+
expect(cache.getSound('shot')).toBeNull();
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
describe('data', () => {
|
|
136
|
+
it('round-trips text', () => {
|
|
137
|
+
cache.addText('note', 'note.txt', 'hello');
|
|
138
|
+
expect(cache.getText('note')).toBe('hello');
|
|
139
|
+
cache.removeText('note');
|
|
140
|
+
expect(cache.getText('note')).toBeNull();
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
it('round-trips JSON', () => {
|
|
144
|
+
cache.addJSON('config', 'config.json', { a: 1 });
|
|
145
|
+
expect(cache.getJSON('config')).toStrictEqual({ a: 1 });
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
it('hands back a detached copy when a clone is asked for', () => {
|
|
149
|
+
const data = { a: 1 };
|
|
150
|
+
cache.addJSON('config', 'config.json', data);
|
|
151
|
+
const clone = cache.getJSON<{ a: number }>('config', true);
|
|
152
|
+
expect(clone).toStrictEqual(data);
|
|
153
|
+
expect(clone).not.toBe(data);
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
it('round-trips XML', () => {
|
|
157
|
+
const xml = new DOMParser().parseFromString('<root/>', 'text/xml');
|
|
158
|
+
cache.addXML('doc', 'doc.xml', xml);
|
|
159
|
+
expect(cache.getXML('doc')).toBe(xml);
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
describe('bitmap fonts', () => {
|
|
164
|
+
it('parses the descriptor and keeps it beside the atlas', () => {
|
|
165
|
+
const xml = new DOMParser().parseFromString(FONT_XML, 'text/xml');
|
|
166
|
+
cache.addBitmapFont('arial', 'arial.png', createImage(256, 256), xml, 'xml');
|
|
167
|
+
const entry = cache.getBitmapFont('arial');
|
|
168
|
+
expect(entry?.font.font).toBe('Arial');
|
|
169
|
+
expect(entry?.font.chars[65]?.xAdvance).toBe(21);
|
|
170
|
+
expect(entry?.base).toBeDefined();
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
it('reports a font it does not hold as absent', () => {
|
|
174
|
+
expect(cache.checkBitmapFontKey('nope')).toBe(false);
|
|
175
|
+
expect(cache.getBitmapFont('nope')).toBeNull();
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
describe('getItem', () => {
|
|
180
|
+
it('returns the whole entry when no property is named', () => {
|
|
181
|
+
cache.addText('note', 'note.txt', 'hello');
|
|
182
|
+
expect(cache.getItem('note', 4, 'test')).toStrictEqual({ url: 'note.txt', data: 'hello' });
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
it('returns null for a key the bucket does not hold', () => {
|
|
186
|
+
expect(cache.getItem('nope', SOUND, 'test')).toBeNull();
|
|
187
|
+
expect(cache.getItem('nope', BITMAPFONT, 'test', 'font')).toBeNull();
|
|
188
|
+
});
|
|
189
|
+
});
|
|
190
|
+
|
|
191
|
+
describe('destroy', () => {
|
|
192
|
+
it('empties every bucket but the built-in images', () => {
|
|
193
|
+
cache.addText('note', 'note.txt', 'hello');
|
|
194
|
+
cache.addSound('shot', 'shot.ogg', new ArrayBuffer(8));
|
|
195
|
+
cache.destroy();
|
|
196
|
+
expect(cache.getText('note')).toBeNull();
|
|
197
|
+
expect(cache.getSound('shot')).toBeNull();
|
|
198
|
+
expect(cache.checkImageKey('__default')).toBe(true);
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
});
|