UNPKG

skynovel

Version:
378 lines (345 loc) 13.3 kB
/* ***** 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 {AnalyzeTagArg} from '../core/src/sn/AnalyzeTagArg'; context('class AnalyzeTagArg', ()=>{ let alz; beforeEach(()=> { alz = new AnalyzeTagArg(); }); describe('Tst', ()=> { it('Arg0', ()=> { alz.go(""); assert.equal(isHashEmpty(alz.hPrm), true); assert.equal(alz.isKomeParam, false); }); function isHashEmpty(h: object): boolean { let c = 0, i; for (i in h) ++c; return c == 0; } it('Arg1', ()=>{ alz.go("8"); assert.equal(alz.hPrm['8'].val, true); assert.equal(alz.hPrm['8'].def, undefined); }); it('Arg20', ()=> { alz.go("*"); assert.equal(isHashEmpty(alz.hPrm), true); assert.equal(alz.isKomeParam, true); }); it('Arg21', ()=> { alz.go("* "); assert.equal(isHashEmpty(alz.hPrm), true); assert.equal(alz.isKomeParam, true); }); it('Arg40', ()=> { alz.go("a=3"); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['a'].val, "3"); assert.equal(alz.hPrm['a'].def, undefined); assert.equal(alz.isKomeParam, false); }); it('Arg41', ()=> { alz.go("a =3"); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['a'].val, "3"); assert.equal(alz.hPrm['a'].def, undefined); assert.equal(alz.isKomeParam, false); }); it('Arg42', ()=> { alz.go("a= 3"); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['a'].val, "3"); assert.equal(alz.hPrm['a'].def, undefined); assert.equal(alz.isKomeParam, false); }); it('Arg43', ()=> { alz.go("a = 3"); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['a'].val, "3"); assert.equal(alz.hPrm['a'].def, undefined); assert.equal(alz.isKomeParam, false); }); /* it('Arg44', ()=> { "sys:a=4.5"); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm["sys:a"].val, "4.5"); assert.equal(alz.hPrm["sys:a"].def, undefined); assert.equal(alz.isKomeParam, false); });*/ it('Arg45', ()=> { alz.go("a='2009'"); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['a'].val, "2009"); assert.equal(alz.hPrm['a'].def, undefined); assert.equal(alz.isKomeParam, false); }); it('Arg46', ()=> { alz.go('a="2009"'); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['a'].val, "2009"); assert.equal(alz.hPrm['a'].def, undefined); assert.equal(alz.isKomeParam, false); }); it('Arg47', ()=> { alz.go("a=#2009#"); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['a'].val, "2009"); assert.equal(alz.hPrm['a'].def, undefined); assert.equal(alz.isKomeParam, false); }); it('Arg50', ()=> { alz.go(' name="_submenu.png" visible=false'); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['name'].val, "_submenu.png"); assert.equal(alz.hPrm['name'].def, undefined); assert.equal(alz.hPrm['visible'].val, "false"); assert.equal(alz.hPrm['visible'].def, undefined); assert.equal(alz.isKomeParam, false); }); it('Arg60', ()=> { alz.go("a=%bar"); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['a'].val, "%bar"); assert.equal(alz.hPrm['a'].def, undefined); assert.equal(alz.isKomeParam, false); }); it('Arg61', ()=> { alz.go("a=%bar|ref"); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['a'].val, "%bar"); assert.equal(alz.hPrm['a'].def, "ref"); assert.equal(alz.isKomeParam, false); }); it('Arg62', ()=> { alz.go("a=%bar|'うひょー'"); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['a'].val, "%bar"); assert.equal(alz.hPrm['a'].def, "うひょー"); assert.equal(alz.isKomeParam, false); }); it('Arg63', ()=> { alz.go("a=%bar|'う ひょー'"); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['a'].val, "%bar"); assert.equal(alz.hPrm['a'].def, "う ひょー"); assert.equal(alz.isKomeParam, false); }); it('Arg_val60', ()=> { alz.goVal("%bar"); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['val'], "%bar"); assert.equal(alz.hPrm['def'], undefined); }); it('Arg_val61', ()=> { alz.goVal("%bar|ref"); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['val'], "%bar"); assert.equal(alz.hPrm['def'], "ref"); }); it('Arg_val62', ()=> { alz.goVal("%bar|'うひょー'"); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['val'], "%bar"); assert.equal(alz.hPrm['def'], "うひょー"); }); it('Arg_val63', ()=> { alz.goVal("%bar|'う ひょー'"); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['val'], "%bar"); assert.equal(alz.hPrm['def'], "う ひょー"); }); it('Arg_val64', ()=> { alz.goVal("mp:h|const.flash.display.Stage.stageHeight -40*2"); // 空白が入っていても許す assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['val'], "mp:h"); assert.equal(alz.hPrm['def'], "const.flash.display.Stage.stageHeight -40*2"); }); it('Arg_val65', ()=> { alz.goVal('mp:h|"const.flash.display.Stage.stageHeight -40*2"'); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['val'], "mp:h"); assert.equal(alz.hPrm['def'], "const.flash.display.Stage.stageHeight -40*2"); }); it('Arg_val66', ()=> { alz.goVal(' (pos.c + pos.l) /2'); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['val'], "(pos.c + pos.l) /2"); assert.equal(alz.hPrm['def'], undefined); }); it('Arg_val67', ()=> { alz.goVal('""'); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['val'], ""); assert.equal(alz.hPrm['def'], undefined); }); it('Arg_val68', ()=> { alz.goVal("''"); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['val'], ""); assert.equal(alz.hPrm['def'], undefined); }); it('Arg_val2bug0', ()=> { alz.goVal("mp:w|17"); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['val'], "mp:w"); assert.equal(alz.hPrm['def'], "17"); }); it('Arg_val2bug1', ()=> { alz.goVal("26|17"); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['val'], "26"); assert.equal(alz.hPrm['def'], "17"); }); it('Arg44_bug0', ()=> { alz.go("text=&sys:_album.img.渡り廊下・桜昼"); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm["text"].val, "&sys:_album.img.渡り廊下・桜昼"); assert.equal(alz.hPrm["text"].def, undefined); assert.equal(alz.isKomeParam, false); }); it('Arg44_bug1', ()=> { alz.go('* x=0 y=1 pic="渡り廊下・桜昼" cond=sys:_album.img.渡り廊下・桜昼'); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['x'].val, "0"); assert.equal(alz.hPrm['x'].def, undefined); assert.equal(alz.hPrm['y'].val, "1"); assert.equal(alz.hPrm['y'].def, undefined); assert.equal(alz.hPrm['pic'].val, "渡り廊下・桜昼"); assert.equal(alz.hPrm['pic'].def, undefined); assert.equal(alz.hPrm['cond'].val, "sys:_album.img.渡り廊下・桜昼"); assert.equal(alz.hPrm['cond'].def, undefined); assert.equal(alz.isKomeParam, true); }); it('Arg50_bug0', ()=> { alz.go('text=&-const.sn.config.window.width'); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['text'].val, "&-const.sn.config.window.width"); assert.equal(alz.hPrm['text'].def, undefined); assert.equal(alz.isKomeParam, false); }); it('Arg80', ()=> { alz.go("a=3 b='1327' "); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['a'].val, "3"); assert.equal(alz.hPrm['a'].def, undefined); assert.equal(alz.hPrm['b'].val, "1327"); assert.equal(alz.hPrm['b'].def, undefined); assert.equal(alz.isKomeParam, false); }); it('Arg81', ()=> { alz.go('name="fcol" text=%fcol|&0x000000'); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['name'].val, "fcol"); assert.equal(alz.hPrm['name'].def, undefined); assert.equal(alz.hPrm['text'].val, "%fcol"); assert.equal(alz.hPrm['text'].def, "&0x000000"); assert.equal(alz.isKomeParam, false); }); it('Arg82', ()=> { alz.go('* layer="me s" page=%page|back visible=%visible|"tr ue" b_left=&l b_top=0 b_width=&w b_height=&const.flash.display.Stage.stageHeight b_color=%b_color|"0xffffff" b_alpha=%b_alpha|&sys:TextLayer.Back.Alpha r_size=12 max_col=25 bura_col=2 max_row=7'); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['layer'].val, "me s"); assert.equal(alz.hPrm['layer'].def, undefined); assert.equal(alz.hPrm['page'].val, "%page"); assert.equal(alz.hPrm['page'].def, "back"); assert.equal(alz.hPrm['visible'].val, "%visible"); assert.equal(alz.hPrm['visible'].def, "tr ue"); assert.equal(alz.hPrm['b_left'].val, "&l"); assert.equal(alz.hPrm['b_left'].def, undefined); assert.equal(alz.hPrm['b_top'].val, "0"); assert.equal(alz.hPrm['b_top'].def, undefined); assert.equal(alz.hPrm['b_width'].val, "&w"); assert.equal(alz.hPrm['b_width'].def, undefined); assert.equal(alz.hPrm['b_height'].val, "&const.flash.display.Stage.stageHeight"); assert.equal(alz.hPrm['b_height'].def, undefined); assert.equal(alz.hPrm['b_color'].val, "%b_color"); assert.equal(alz.hPrm['b_color'].def, "0xffffff"); assert.equal(alz.hPrm['b_alpha'].val, "%b_alpha"); assert.equal(alz.hPrm['b_alpha'].def, "&sys:TextLayer.Back.Alpha"); assert.equal(alz.hPrm['r_size'].val, "12"); assert.equal(alz.hPrm['r_size'].def, undefined); assert.equal(alz.hPrm['max_col'].val, "25"); assert.equal(alz.hPrm['max_col'].def, undefined); assert.equal(alz.hPrm['bura_col'].val, "2"); assert.equal(alz.hPrm['bura_col'].def, undefined); assert.equal(alz.hPrm['max_row'].val, "7"); assert.equal(alz.hPrm['max_row'].def, undefined); assert.equal(alz.isKomeParam, true); }); it('Arg83', ()=> { alz.go("layout=#&'" + 'lineHeight="36" justificationRule="space" columnGap="0" paddingLeft="$pl" paddingTop="$pt" paddingRight="$pr" paddingBottom="$pb" verticalAlign="inherit" blockProgression="rl" lineBreak="explicit" fontLookup="embeddedCFF" renderingMode="cff" fontSize="24" locale="ja" kerning="off" trackingRight="0" color="$fcol" whiteSpaceCollapse="preserve"' + "'#"); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['layout'].val, "&'" + 'lineHeight="36" justificationRule="space" columnGap="0" paddingLeft="$pl" paddingTop="$pt" paddingRight="$pr" paddingBottom="$pb" verticalAlign="inherit" blockProgression="rl" lineBreak="explicit" fontLookup="embeddedCFF" renderingMode="cff" fontSize="24" locale="ja" kerning="off" trackingRight="0" color="$fcol" whiteSpaceCollapse="preserve"' + "'"); assert.equal(alz.hPrm['layout'].def, undefined); assert.equal(alz.isKomeParam, false); }); it('20200416_test_multiline_arg0', ()=> { alz.go( ` page=fore ;=== text="]" layer=mes class=txt abc def ;===== ghi;===== jkl = 'color="0xaaaaaa"' ;`); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['layer'].val, `mes`); assert.equal(alz.hPrm['layer'].def, undefined); assert.equal(alz.hPrm['page'].val, 'fore'); assert.equal(alz.hPrm['page'].def, undefined); assert.equal(alz.hPrm['text'].val, `]`); assert.equal(alz.hPrm['text'].def, undefined); assert.equal(alz.hPrm['class'].val, `txt`); assert.equal(alz.hPrm['class'].def, undefined); assert.equal(alz.hPrm['abc'].val, true); assert.equal(alz.hPrm['abc'].def, undefined); assert.equal(alz.hPrm['def'].val, true); assert.equal(alz.hPrm['def'].def, undefined); assert.equal(alz.hPrm['ghi'].val, true); assert.equal(alz.hPrm['ghi'].def, undefined); assert.equal(alz.hPrm['jkl'].val, `color="0xaaaaaa"`); assert.equal(alz.hPrm['jkl'].def, undefined); assert.equal(alz.isKomeParam, false); }); it('20200416_test_multiline_arg1', ()=> { alz.go( ` ;===== layer=mes ;===== class=txt ;====== ;===== layout;===== = ;""""" 'color="0xaaaaaa"' ;===== text=%fcol|&0x000000;===== txt=%fcol|'&0x000000';===== a='2009';===== b='#{fcol}'|true;=====`); console.log(`fn:AnalyzeTagArg.test.ts line:347 alz.hPrm:%o`, alz.hPrm); assert.equal(isHashEmpty(alz.hPrm), false); assert.equal(alz.hPrm['layer'].val, `mes`); assert.equal(alz.hPrm['layer'].def, undefined); assert.equal(alz.hPrm['class'].val, `txt`); assert.equal(alz.hPrm['class'].def, undefined); assert.equal(alz.hPrm['layout'].val, `color="0xaaaaaa"`); assert.equal(alz.hPrm['layout'].def, undefined); assert.equal(alz.hPrm['text'].val, `%fcol`); assert.equal(alz.hPrm['text'].def, `&0x000000`); assert.equal(alz.hPrm['txt'].val, `%fcol`); assert.equal(alz.hPrm['txt'].def, `&0x000000`); assert.equal(alz.hPrm['a'].val, `2009`); assert.equal(alz.hPrm['a'].def, undefined); assert.equal(alz.hPrm['b'].val, `#{fcol}`); assert.equal(alz.hPrm['b'].def, `true`); assert.equal(alz.isKomeParam, false); }); }); });