动态缩略图生成
This commit is contained in:
1 parent
4ff35ce352
commit
eb2a7f7d91
7 files changed
+73
-25
No files matched your search
@@ -41,9 +41,13 @@ assert.equal(parsed[5].data.readUInt32BE(0), 2);
|
||||
|
||||
for (const root of ['.', 'release/UNIVERSAL_SpineViewer']) {
|
||||
const html = fs.readFileSync(root + '/viewer/spine.html', 'utf8');
|
||||
const css = fs.readFileSync(root + '/viewer/spine.css', 'utf8');
|
||||
const script = html.match(/<script>([\s\S]*?)<\/script>/)[1];
|
||||
new vm.Script(script);
|
||||
assert.match(script, /addEventListener\('contextmenu'[\s\S]*generateAnimatedThumbnail\(\)/);
|
||||
assert.match(script, /groupThumbBtn'[\s\S]*addEventListener\('contextmenu'[\s\S]*generateGroupThumbnails\(true\)/);
|
||||
assert.match(script, /async function generateGroupThumbnails\(animated = false\)/);
|
||||
assert.match(script, /if \(animated[\s\S]*renderAnimatedThumbnail\(animation, options\)[\s\S]*renderCurrentFrameThumbnail\(\)/);
|
||||
assert.match(script, /const size = 400;/, 'animated output must remain fixed at 400x400');
|
||||
assert.match(script, /async function encodeAnimatedThumbnailToLimit/);
|
||||
assert.match(script, /const targetBytes = maxKilobytes \* 1024/);
|
||||
@@ -63,6 +67,8 @@ for (const root of ['.', 'release/UNIVERSAL_SpineViewer']) {
|
||||
assert.doesNotMatch(html, /id="animatedThumbQuality"/);
|
||||
assert.doesNotMatch(html, /viewer\.secondsUnit/);
|
||||
assert.match(html, /id="animatedThumbDialog"/);
|
||||
assert.match(css, /\.animated-thumb-form \{[^}]*grid-template-columns: 96px minmax\(0, 1fr\)/);
|
||||
assert.match(css, /\.animated-thumb-form input\[type="number"\]/);
|
||||
}
|
||||
|
||||
console.log('PASS: APNG structure, 400px maximum with size fallback, byte limit and right-click wiring');
|
||||
console.log('PASS: APNG structure, compact dialog, size fallback and single/group right-click wiring');
|
||||
Reference in new issue
Block a user