현지의 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', 가까운. = 진실의}, {태그 = '테이블', 가까운. = 진실의} } .. '