모듈:사이드 박스/테스트 케이스

Module
현지의 mSide Box = 요구하다('모듈:사이드 박스') 현지의 스크리분토 유닛 = 요구하다('모듈:스크리분토 유닛') 현지의 스위트 = 스크리분토 유닛:신규()  -------------------------------------------------------------------------------- -- 도우미 기능 --------------------------------------------------------------------------------   기능. 스위트:assert Array Contains String(기대됩니다, t)  -- 이 기능은 문자열만 포함하는 배열에서만 작동합니다.  현지의 세프 = '세퍼레이터'  현지의 접속된 = 세프 .. table.concat(t, 세프) .. 세프  자신:assert String 포함(세프 .. 기대됩니다 .. 세프, 접속된, 진실의) 끝.  기능. 스위트:assert Not Array Contains String(기대됩니다, t)  -- 이 기능은 문자열만 포함하는 배열에서만 작동합니다.  현지의 세프 = '세퍼레이터'  현지의 접속된 = 세프 .. table.concat(t, 세프) .. 세프  자신:assert Not String 포함(세프 .. 기대됩니다 .. 세프, 접속된, 진실의) 끝.  -------------------------------------------------------------------------------- -- make Data 테스트 --------------------------------------------------------------------------------  기능. 스위트:test Data Blank()  자신:assert Equals(동일)('테이블', 유형(mSide Box.make data{}))  자신:assert Equals(동일)('테이블', 유형(mSide Box.make data{}.)) 끝.  기능. 스위트:test DataMetadata()  스위트:assert Not Array Contains String('실패', mSide Box.make data{메타데이터 = '아니요'}.)  스위트:assert Not Array Contains String('실패', mSide Box.make data{메타데이터 = 거짓의}.)  스위트:assert Array Contains String('실패', mSide Box.make data{}.)  스위트:assert Array Contains String('실패', mSide Box.make data{메타데이터 = '네'}.)  스위트:assert Array Contains String('실패', mSide Box.make data{메타데이터 = 진실의}.)  스위트:assert Array Contains String('실패', mSide Box.make data{메타데이터 = '푸'}.) 끝.  기능. 스위트:test Data Left(테스트 데이터 왼쪽)()  스위트:assert Array Contains String('mbox-small', mSide Box.make data{}.)  스위트:assert Array Contains String('mbox-small', mSide Box.make data{위치 = '맞다'}.)  스위트:assert Array Contains String('mbox-small', mSide Box.make data{위치 = 'asdf'}.)  스위트:assert Array Contains String('mbox-small-left', mSide Box.make data{위치 = '왼쪽}.)  스위트:assert Array Contains String('mbox-small-left', mSide Box.make data{위치 = '왼쪽'}.)  스위트:assert Array Contains String('mbox-small-left', mSide Box.make data{위치 = '왼쪽'}.) 끝.  기능. 스위트:test Data Class()  스위트:assert Array Contains String('어떤 클래스', mSide Box.make data{학급 = '어떤 클래스'}.) 끝.  기능. 스위트:test Data Style()  스위트:assert Equals(동일)('foo: 바', mSide Box.make data{스타일. = 'foo: 바'}.스타일.) 끝.  기능. 스위트:test DataTextstyle()  스위트:assert Equals(동일)('foo: 바', mSide Box.make data{텍스트 스타일 = 'foo: 바'}.텍스트 스타일) 끝.  기능. 스위트:test Data Above()  스위트:assert Equals(동일)('텍스트 위 일부', mSide Box.make data{위에 = '텍스트 위 일부'}.위에) 끝.  기능. 스위트:test DataAbovstyle()  스위트:assert Equals(동일)('foo: 바', mSide Box.make data{애보브스타일 = 'foo: 바'}.애보브스타일) 끝.  기능. 스위트:테스트 데이터 텍스트()  스위트:assert Equals(동일)('일부 텍스트', mSide Box.make data{본문 = '일부 텍스트'}.본문) 끝.  기능. 스위트:테스트 데이터 이미지()  스위트:assert Equals(동일)('[파일:예.png 엄지]', mSide Box.make data{이미지 = '[파일:예.png 엄지]'}.이미지) 끝.  기능. 스위트:test Data Image None(테스트 데이터 이미지 없음)()  스위트:assert Equals(동일)(제로, mSide Box.make data{이미지 = '없음'}.이미지) 끝.  기능. 스위트:test Data Imageright()  스위트:assert Equals(동일)('[파일:예.png 엄지]', mSide Box.make data{이미저라이트 = '[파일:예.png 엄지]'}.이미저라이트) 끝.  기능. 스위트:test DataBelow()  스위트:assert Equals(동일)('텍스트 미만', mSide Box.make data{아래 = '텍스트 미만'}.아래) 끝.  -------------------------------------------------------------------------------- -- render Sidebox 테스트 --------------------------------------------------------------------------------  기능. 스위트.clean Pattern(클린 패턴)(s)  -- 패턴을 클리어하여 마법의 문자()%가 되도록 합니다.[]*+-?^$는 문자 그대로 해석됩니다.  s = s:서브('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1')  돌아가다 s 끝.  기능. 스위트.makeHtmlPattern(태그 테이블)  -- assertStringContains 와 함께 사용할 패턴을 만듭니다.  -- 입력은 테이블 배열로, 각 테이블은 오프닝 태그에 대응합니다.  -- Wikitext의 일부 또는 닫기 태그.  --  -- 입력으로 단일 테이블을 사용할 수도 있습니다.  -- 테이블 배열.  --  -- 태그 열기:  -- {tag = 'tr'}  -- {tag = 'table', attr = 'class', 값 = 'mbox-image'}  -- {tag = 'table', attr = 'style', 속성 = 'text-align', 값 = 'center'}  -- {tag = 'colspan', attr = 'colspan', 값 = '3'}  -- 하이픈 등이 패턴으로 동작하도록 속성 및 값은 이스케이프됩니다.  --  -- Wikitext:  -- {footitext = 'Foo'}  --  -- 태그 닫기:  -- {tag = 'table', 닫기 = true}  --  -- 예를 들어, 다음 코드:  --suite.makeHtmlPattern{  -- {tag = 'div', attr = 'style', 속성 = 'text-align', 값 = 'center'}  -- {sublicitext = 'Foo'},  -- {tag = 'span'},  -- {sublicitext = 'Bar'},  -- {tag = 'span'을(를) 닫으십시오. = true}.  -- {tag = 'div', 닫기 = true}  -- }  --  -- 다음을 생성합니다.  -- <div [^ > style = span^" >-text%-align%s*center[^" >-[^ ]-[^ < ]-[ ]-[ ^ < ]-[ span [ ]->[ ]-[ ]-Bar [ ]-[ ^ < ]->  한다면 유형(태그 테이블) ~= '테이블' 그리고나서   에러('makeHtmlPattern'에 대한 입력이 잘못되었습니다., 2)  끝.  한다면 #태그 테이블 == 0 그리고나서   -- 테이블은 단일 태그 테이블로 전달될 수 있습니다.   태그 테이블 = {태그 테이블}  끝.  현지의 리트 = {}  위해서 i, t  아이페어(태그 테이블) 하다   한다면 t.태그 그리고나서    한다면 t.가까운. 그리고나서     리트[#리트 + 1] = string.format('<%s>', t.태그)    그렇지 않으면 t.특성 그리고. t.소유물 그리고. t.가치 그리고나서     리트[#리트 + 1] = string.format(      '<%s[^ > - %s = ^^^ " > ] - %s %s * : %s * %s [ ^ " > - >',      t.태그,      t.특성,      스위트.clean Pattern(클린 패턴)(t.소유물),      스위트.clean Pattern(클린 패턴)(t.가치)     )    그렇지 않으면 t.특성 그리고. t.가치 그리고나서     리트[#리트 + 1] = string.format(      '<%s[^>-%s=param^">]-%s[^">-[^>->',      t.태그,      t.특성,      스위트.clean Pattern(클린 패턴)(t.가치)     )    또 다른     리트[#리트 + 1] = string.format('<%s[^>->', t.태그)    끝.   그렇지 않으면 t.위키텍스트 그리고나서    리트[#리트 + 1] = 스위트.clean Pattern(클린 패턴)(t.위키텍스트)   끝.  끝.  돌아가다 table.concat(리트, '[^<]-') 끝.  기능. 스위트:testRenderDefaultStructure()  자신:assert String 포함(   '^' .. 스위트.makeHtmlPattern{    {태그 = '테이블'},    {태그 = 'tr'},    {태그 = '실패'},    {태그 = '실패', 가까운. = 진실의},    {태그 = '실패'},    {태그 = '실패', 가까운. = 진실의},    {태그 = 'tr', 가까운. = 진실의},    {태그 = '테이블', 가까운. = 진실의}   } .. '
                
, mSide Box.렌더 사이드 박스{}, 거짓의 ) 끝. 기능. 스위트:testRenderAboveStructure() 자신:assert String 포함( '^' .. 스위트.makeHtmlPattern{ {태그 = '테이블'}, {태그 = 'tr'}, {태그 = '실패', 특성 = 'colspan', 가치 = '2'}, {태그 = '실패', 가까운. = 진실의}, {태그 = 'tr', 가까운. = 진실의}, {태그 = 'tr'}, {태그 = '실패'}, {태그 = '실패', 가까운. = 진실의}, {태그 = '실패'}, {태그 = '실패', 가까운. = 진실의}, {태그 = 'tr', 가까운. = 진실의}, {태그 = '테이블', 가까운. = 진실의} } .. '
$$SIDE_BOTTOM$$
    $$BOTTOM$$