-- [Module]의 유닛 테스트:리다이렉트] ] 。Talk 페이지를 클릭하여 테스트를 실행합니다. 현지의 리다이렉트 = 요구하다('모듈:리다이렉트') -- 테스트할 모듈 현지의 스크리분토 유닛 = 요구하다('모듈:스크리분토 유닛') 현지의 스위트 = 스크리분토 유닛:신규() -------------------------------------------------------------------------------- -- 도우미 기능 -------------------------------------------------------------------------------- 기능. 스위트:make Frame With Args(args) 현지의 틀 = 음.get Current Frame(전류 프레임)() 돌아가다 틀:새로운 아이{직함 = '프레임', args = args} 끝. -------------------------------------------------------------------------------- -- mock mw.title.new -------------------------------------------------------------------------------- 하다 현지의 old New Title(오래된 새로운 제목 = 음.직함.신규 기능. 스위트:모의 New Title(옵션들) 음.직함.신규 = 기능. (페이지입니다.) 현지의 title Obj = old New Title(오래된 새로운 제목(페이지입니다.) 한다면 옵션들[페이지입니다.] 그리고나서 한다면 옵션들[페이지입니다.].내용 그리고나서 현지의 내용 = 옵션들[페이지입니다.].내용 rawset(원래 세트)(title Obj, '콘텐츠 가져오기', 기능. () 돌아가다 내용 끝.) 옵션들[페이지입니다.].내용 = 제로 끝. 위해서 k, v 에 쌍들(옵션들[페이지입니다.]) 하다 rawset(원래 세트)(title Obj, k, v) 끝. 끝. 돌아가다 title Obj 끝. 끝. 기능. 스위트:resetTitleMock() 음.직함.신규 = old New Title(오래된 새로운 제목 끝. 끝. -- 테스트에 사용되는 일반적인 페이지의 바로 가기 방법 기능. 스위트:모의 AFCShortcut() 현지의 내용 = [=[ #REDIRECT [[Wikipedia:작성용 기사] {{R to Wikipedia namespace}} {{R 바로가기}} ]=] 현지의 페이지옵션 = { 내용 = 내용, 리다이렉트 = 진실의, } 자신:모의 New Title{ ['WP:AFC'] = 페이지옵션, ['Wikipedia:AFC'] = 페이지옵션, } 끝. 기능. 스위트:모의 어머니날 페이지() 자신:모의 New Title{[어머니의 날] = { 내용 = '로렘 입숨', 리다이렉트 = 거짓의, }} 끝. -------------------------------------------------------------------------------- -- 테스트 메인 -------------------------------------------------------------------------------- 기능. 스위트:테스트 메인() 자신:모의 AFCShortcut() 자신:assert Equals(동일)( 'Wikipedia:작성용 기사', 리다이렉트.주된(자신:make Frame With Args{'WP:AFC'}) ) 자신:resetTitleMock() 끝. 기능. 스위트:test Maint With Padding(패딩 포함)() 자신:모의 AFCShortcut() 자신:assert Equals(동일)( 'Wikipedia:작성용 기사', 리다이렉트.주된(자신:make Frame With Args{'WP:AFC'}) ) 자신:resetTitleMock() 끝. 기능. 스위트:test Main With Blank Argument() 자신:모의 AFCShortcut() 자신:assert Equals(동일)( '', 리다이렉트.주된(자신:make Frame With Args{' '}) ) 자신:resetTitleMock() 끝. 기능. 스위트:testMainWithInputBrackets() 자신:모의 AFCShortcut() 자신:assert Equals(동일)( 'Wikipedia:작성용 기사', 리다이렉트.주된(자신:make Frame With Args{'[WP:AFC]'}) ) 자신:resetTitleMock() 끝. 기능. 스위트:test Main With Output Brackets() 자신:모의 AFCShortcut() 자신:assert Equals(동일)( '[Wikipedia:[창작 기사]', 리다이렉트.주된(자신:make Frame With Args{'WP:AFC', 브래킷 = '네'}) ) 자신:resetTitleMock() 끝. 기능. 스위트:test Main With Input And Output Brackets() 자신:모의 AFCShortcut() 자신:assert Equals(동일)( '[Wikipedia:[창작 기사]', 리다이렉트.주된(자신:make Frame With Args{'[WP:AFC]', 브래킷 = '네'}) ) 자신:resetTitleMock() 끝. 기능. 스위트:test Main With Input Brackets And Padding() 자신:모의 AFCShortcut() 자신:assert Equals(동일)( 'Wikipedia:작성용 기사', 리다이렉트.주된(자신:make Frame With Args{' [[WP:AFC]]'}) ) 자신:resetTitleMock() 끝. 기능. 스위트:test Main With Real Invalid Redirect() 자신:assert Equals(동일)( '사용자: John Vandenberg/testcase/Redirect/1', 리다이렉트.주된(자신:make Frame With Args{'사용자: John Vandenberg/testcase/Redirect/1'}) ) 끝. 기능. 스위트:test Main With Real Valid Redirect() 자신:assert Equals(동일)( '블랙', 리다이렉트.주된(자신:make Frame With Args{'사용자: John Vandenberg/testcase/Redirect/2'}) ) 끝. -------------------------------------------------------------------------------- -- 테스트 정규화 -------------------------------------------------------------------------------- 기능. 스위트:test Content Ampersand Canonicalization() 자신:모의 New Title{['모듈 토크:리다이렉트/샌드박스'] = { 내용 = '#REDIRECT [모듈 토크:리다이렉트]', 리다이렉트 = 진실의, }} 자신:assert Equals(동일)( '모듈 토크:리다이렉트', 리다이렉트.주된(자신:make Frame With Args{'모듈 토크:리다이렉트/샌드박스'}) ) 자신:resetTitleMock() 끝. 기능. 스위트:test Content Percent Canonicalization() 자신:모의 New Title{['모듈 토크:리다이렉트/샌드박스'] = { 내용 = '#REDIRECT [[모듈 토크%3'[ARedirect]', 리다이렉트 = 진실의, }} 자신:assert Equals(동일)( '모듈 토크:리다이렉트', 리다이렉트.주된(자신:make Frame With Args{'모듈 토크:리다이렉트/샌드박스'}) ) 자신:resetTitleMock() 끝. 기능. 스위트:test Content AmpersandInsidePercentCanonicalization() 자신:모의 New Title{['모듈 토크:리다이렉트/샌드박스'] = { 내용 = '#REDIRECT [모듈 토크 %26#58;리다이렉트]', 리다이렉트 = 진실의, }} 자신:assert Equals(동일)( '모듈 토크:리다이렉트', 리다이렉트.주된(자신:make Frame With Args{'모듈 토크:리다이렉트/샌드박스'}) ) 자신:resetTitleMock() 끝. 기능. 스위트:test Content PercentInsideAmpersandCanonicalization() 자신:모의 New Title{['모듈 토크:리다이렉트/샌드박스'] = { 내용 = '#REDIRECT [[모듈 토크%3'[ARedirect]', 리다이렉트 = 진실의, -- 실제로는 리다이렉트로 간주되지 않지만, 어쨌든 코드 패스를 연습하고 싶다. }} 자신:assert Equals(동일)( '모듈 토크:리다이렉트/샌드박스', 리다이렉트.주된(자신:make Frame With Args{'모듈 토크:리다이렉트/샌드박스'}) ) 자신:resetTitleMock() 끝. 기능. 스위트:testTitle 표준화() 자신:모의 어머니날 페이지() 자신:assert Equals(동일)( 어머니의 날, 리다이렉트.주된(자신:make Frame With Args{어머니의 날}) ) 자신:resetTitleMock() 끝. 기능. 스위트:testTitleInitialCapitalCanonicalization() 자신:모의 어머니날 페이지() 자신:assert Equals(동일)( 어머니의 날, 리다이렉트.주된(자신:make Frame With Args{어머니의 날}) ) 자신:resetTitleMock() 끝. -------------------------------------------------------------------------------- -- 테스트 isRedirect -------------------------------------------------------------------------------- 기능. 스위트:test Is Redirect(리다이렉트)() 자신:모의 AFCShortcut() 자신:assert Equals(동일)( '네', 리다이렉트.리다이렉트(자신:make Frame With Args{'WP:AFC'}) ) 자신:resetTitleMock() 끝. 기능. 스위트:test Is Redirect(리다이렉트)() 자신:모의 어머니날 페이지() 자신:assert Equals(동일)( '', 리다이렉트.리다이렉트(자신:make Frame With Args{어머니의 날}) ) 자신:resetTitleMock() 끝. 돌아가다 스위트