skynovel
Version:
webgl novelgame framework
264 lines (234 loc) • 9.27 kB
text/typescript
/* ***** BEGIN LICENSE BLOCK *****
Copyright (c) 2018-2020 Famibee (famibee.blog38.fc2.com)
This software is released under the MIT License.
http://opensource.org/licenses/mit-license.php
** ***** END LICENSE BLOCK ***** */
import assert = require('power-assert');
import {Config} from '../core/src/sn/Config';
import {SysNode} from '../core/src/sn/SysNode';
context('class Config', ()=>{
let cfg = null;
beforeEach(()=> {
cfg = new Config(new SysNode({}, {cur: 'test/', crypto: false, dip: ''}), ()=> {}, {
search : ["mat"],
});
});
describe('Tst', ()=> {
it('testsetSearchPath_0', ()=> {
assert.equal(cfg.searchPath("http://bbb"), "http://bbb");
try {
assert.equal(cfg.searchPath("ccc"), "ccc");
assert.fail("Error:ccc");
}
catch (s) {
assert.equal(s, "サーチパスに存在しないファイル【ccc】です");
}
assert.equal(cfg.searchPath("update.png"),
`test/:dummy dir:/mat/update.png`);
assert.equal(cfg.searchPath("update", "png|png_"),
`test/:dummy dir:/mat/update.png`);
try {
assert.equal(cfg.searchPath("update", "hh"), "ii");
assert.fail("Error:hh");
}
catch (s) {
assert.equal(s, "サーチ対象拡張子群【hh】にマッチするファイルがサーチパスに存在しません。探索ファイル名=【update】");
}
try {
assert.equal(cfg.searchPath("update.ddd", "eee"), "fff");
assert.fail("Error:fff");
}
catch (s) {
assert.equal(s, "指定ファイルの拡張子【ddd】は、サーチ対象拡張子群【eee】にマッチしません。探索ファイル名=【update.ddd】");
}
try {
assert.equal(cfg.searchPath("update.ggg", "ggg"), "fff");
assert.fail("Error:ggg");
}
catch (s) {
assert.equal(s, "サーチパスに存在しない拡張子【ggg】です。探索ファイル名=【update.ggg】、サーチ対象拡張子群【ggg】");
}
try {
assert.equal(cfg.searchPath("update", "png|xml"), "jjj");
assert.fail("Error:jjj");
}
catch (s) {
assert.equal(s, "指定ファイル【update】が複数マッチします。サーチ対象拡張子群【png|xml】で絞り込むか、ファイル名を個別にして下さい。");
}
try {
assert.equal(cfg.searchPath("update"), "update");
assert.fail("Error:update2");
}
catch (s) {
assert.equal(s, "指定ファイル【update】が複数マッチします。サーチ対象拡張子群【】で絞り込むか、ファイル名を個別にして下さい。");
}
assert.equal(cfg.searchPath("update2.png"),
`test/:dummy dir:/mat/update2.png`);
try {
cfg.searchPath("update3.png");
assert.fail("Error:kkk");
}
catch (s) {
assert.equal(s, "サーチパスに存在しないファイル【update3.png】です");
}
assert.equal(cfg.searchPath("update2", "png|png_"),
`test/:dummy dir:/mat/update2.png`);
try {
cfg.searchPath("update3", "png|png_");
assert.fail("Error:lll");
}
catch (s) {
assert.equal(s, "サーチパスに存在しないファイル【update3】です");
}
assert.equal(cfg.searchPath("update0", Config.EXT_SCRIPT),
`test/:dummy dir:/mat/update0.sn`);
assert.equal(cfg.searchPath("update", Config.EXT_SCRIPT),
`test/:dummy dir:/mat/update.sn`);
});
it('testsetSearchPath_1_userFnTail', ()=> {
cfg.userFnTail = 'ex';
cfg.cnv_path = (path: string): string => {
return path.replace(
/^app-storage:/
, 'app-storage')
};
/* 保留
assert.equal(cfg.searchPath("app-storage:/aaa.jpg"), "app-storage:/aaa.jpg");
assert.equal(cfg.searchPath("app-storage:/aaa.sn"), "app-storage:/aaa.sn");
assert.equal(cfg.searchPath("app-storage:/update0.png"), "app-storage:/update0%40%40ex.png");*/
// /Users/[user]/Library/Application Support/com.fc2.blog38.famibee.ANTest/に本当にファイルを置くこと
assert.equal(cfg.searchPath("http://bbb"), "http://bbb");
try {
assert.equal(cfg.searchPath("ccc"), "ccc");
assert.fail("Error:ccc");
}
catch (s) {
assert.equal(s, "サーチパスに存在しないファイル【ccc】です");
}
assert.equal(cfg.searchPath("update.png"),
`test/:dummy dir:/mat/update@@ex.png`);
assert.equal(cfg.searchPath("update", "png|png_"),
`test/:dummy dir:/mat/update@@ex.png`);
try {
assert.equal(cfg.searchPath("update", "hh"), "ii");
assert.fail("Error:hh");
}
catch (s) {
assert.equal(s, "サーチ対象拡張子群【hh】にマッチするファイルがサーチパスに存在しません。探索ファイル名=【update】");
}
try {
assert.equal(cfg.searchPath("update.ddd", "eee"), "fff");
assert.fail("Error:fff");
}
catch (s) {
assert.equal(s, "指定ファイルの拡張子【ddd】は、サーチ対象拡張子群【eee】にマッチしません。探索ファイル名=【update.ddd】");
}
try {
assert.equal(cfg.searchPath("update.ggg", "ggg"), "fff");
assert.fail("Error:ggg");
}
catch (s) {
assert.equal(s, "サーチパスに存在しない拡張子【ggg】です。探索ファイル名=【update.ggg】、サーチ対象拡張子群【ggg】");
}
try {
assert.equal(cfg.searchPath("update", "png|xml"), "jjj");
assert.fail("Error:jjj");
}
catch (s) {
assert.equal(s, "指定ファイル【update】が複数マッチします。サーチ対象拡張子群【png|xml】で絞り込むか、ファイル名を個別にして下さい。");
}
try {
assert.equal(cfg.searchPath("update"), "update");
assert.fail("Error:update2");
}
catch (s) {
assert.equal(s, "指定ファイル【update】が複数マッチします。サーチ対象拡張子群【】で絞り込むか、ファイル名を個別にして下さい。");
}
assert.equal(cfg.searchPath("update2.png"),
`test/:dummy dir:/mat/update2.png`);
assert.equal(cfg.searchPath("update3.png"),
`test/:dummy dir:/mat/update3@@ex.png`);
assert.equal(cfg.searchPath("update2", "png|png_"),
`test/:dummy dir:/mat/update2.png`);
assert.equal(cfg.searchPath("update3", "png|png_"),
`test/:dummy dir:/mat/update3@@ex.png`);
assert.equal(cfg.searchPath("update0", Config.EXT_SCRIPT),
`test/:dummy dir:/mat/update0.sn`);
try {
assert.equal(cfg.searchPath("update", Config.EXT_SCRIPT),
`test/:dummy dir:/mat/update.sn`);
}
catch (s) {
assert.equal(s, "");
}
});
it('test_searchPath_speedtest_0', ()=> {
const old_time = (new Date()).getTime();
//for (let i=0; i<1000; ++i) {
assert.equal(cfg.searchPath("http://bbb"), "http://bbb");
try {
assert.equal(cfg.searchPath("ccc"), "ccc");
assert.fail("Error:ccc");
}
catch (s) {
assert.equal(s, "サーチパスに存在しないファイル【ccc】です");
}
//}
const time = (new Date()).getTime() - old_time; // 実行後に測定
//assert.fail("経過時間:" + time); // 差
});
it('test_searchPath_speedtest_1', ()=> {
const old_time = (new Date()).getTime();
//for (let i=0; i<1000; ++i) {
assert.equal(cfg.searchPath("update.png"),
`test/:dummy dir:/mat/update.png`);
assert.equal(cfg.searchPath("update", "png|png_"),
`test/:dummy dir:/mat/update.png`);
try {
assert.equal(cfg.searchPath("update", "hh"), "ii");
assert.fail("Error:hh");
}
catch (s) {
assert.equal(s, "サーチ対象拡張子群【hh】にマッチするファイルがサーチパスに存在しません。探索ファイル名=【update】");
}
try {
assert.equal(cfg.searchPath("update.ddd", "eee"), "fff");
assert.fail("Error:fff");
}
catch (s) {
assert.equal(s, "指定ファイルの拡張子【ddd】は、サーチ対象拡張子群【eee】にマッチしません。探索ファイル名=【update.ddd】");
}
//}
const time = (new Date()).getTime() - old_time; // 実行後に測定
// assert.fail("経過時間:" + time); // 差
});
it('test_searchPath_speedtest_2', ()=> {
const old_time = (new Date()).getTime();
//for (let i=0; i<1000; ++i) {
try {
assert.equal(cfg.searchPath("update.ggg", "ggg"), "fff");
assert.fail("Error:ggg");
}
catch (s) {
assert.equal(s, "サーチパスに存在しない拡張子【ggg】です。探索ファイル名=【update.ggg】、サーチ対象拡張子群【ggg】");
}
try {
assert.equal(cfg.searchPath("update", "png|xml"), "jjj");
assert.fail("Error:jjj");
}
catch (s) {
assert.equal(s, "指定ファイル【update】が複数マッチします。サーチ対象拡張子群【png|xml】で絞り込むか、ファイル名を個別にして下さい。");
}
try {
assert.equal(cfg.searchPath("update"), "update");
assert.fail("Error:update2");
}
catch (s) {
assert.equal(s, "指定ファイル【update】が複数マッチします。サーチ対象拡張子群【】で絞り込むか、ファイル名を個別にして下さい。");
}
//}
const time = (new Date()).getTime() - old_time; // 実行後に測定
//assert.fail("経過時間:" + time); // 差
});
});
});