29 lines
1.6 KiB
JavaScript
29 lines
1.6 KiB
JavaScript
'use strict';
|
|
|
|
const assert = require('node:assert/strict');
|
|
const fs = require('node:fs');
|
|
const path = require('node:path');
|
|
|
|
const root = path.join(__dirname, '..');
|
|
const html = fs.readFileSync(path.join(root, 'progress.html'), 'utf8');
|
|
const indexHtml = fs.readFileSync(path.join(root, 'index.html'), 'utf8');
|
|
const windowSource = fs.readFileSync(path.join(root, 'js', 'progress-window.js'), 'utf8');
|
|
const i18nSource = fs.readFileSync(path.join(root, 'js', 'i18n.js'), 'utf8');
|
|
const normalizePluginRoot = (pathname) => pathname.replace(/^\/+([A-Za-z]:)/, '$1');
|
|
|
|
assert.match(windowSource, /minimizable: true/);
|
|
assert.match(windowSource, /url: 'progress\.html',/);
|
|
assert.doesNotMatch(windowSource, /url: 'progress\.html\?/);
|
|
assert.match(i18nSource, /params\.get\('lang'\) \|\| params\.get\('locale'\)/);
|
|
for (const source of [html, indexHtml]) {
|
|
assert.match(source, /pathname\.replace\(\/\^\\\/\+\(\[A-Za-z\]:\)\/, '\$1'\)/);
|
|
}
|
|
assert.equal(normalizePluginRoot('//C:/Users/demo/plugin/'), 'C:/Users/demo/plugin/');
|
|
assert.equal(normalizePluginRoot('/Users/demo/plugin/'), '/Users/demo/plugin/');
|
|
assert.match(html, /addEventListener\('beforeunload'/);
|
|
assert.match(html, /function requestStop\(\)[\s\S]*writeControl\('pause'\)[\s\S]*resumeEl\.focus\(\)/);
|
|
assert.match(html, /if \(allowClose \|\| finished\) return;[\s\S]*event\.returnValue = false;[\s\S]*requestStop\(\)/);
|
|
assert.equal((html.match(/requestStop\(\);/g) || []).length, 2);
|
|
assert.equal((html.match(/allowClose = true;[\s\S]{0,80}window\.close\(\)/g) || []).length, 2);
|
|
console.log('PASS: 系统关闭与停止按钮共用暂停确认流程');
|