현지의 mRedirect Hatnote = 요구하다('모듈:해트노트/샌드박스 리다이렉트') 현지의 _개요 = mRedirect Hatnote._개요 현지의 스크리분토 유닛 = 요구하다('모듈:스크리분토 유닛') 현지의 스위트 = 스크리분토 유닛:신규() -------------------------------------------------------------------------------- -- 도우미 기능 -------------------------------------------------------------------------------- 기능. 스위트.runRedirect(리다이렉트)(args, 차일드 아그) -- args 테이블을 사용하여 "redirect" 함수를 실행합니다. -- 부모 프레임. 현지의 틀 = 음.get Current Frame(전류 프레임)() 현지의 부모 = 틀:새로운 아이{args = args} 현지의 어린아이 = 부모:새로운 아이{args = 차일드 아그} 돌아가다 mRedirect Hatnote.리다이렉트(어린아이) 끝. -------------------------------------------------------------------------------- -- 테스트 #호출 함수 기본 -------------------------------------------------------------------------------- 기능. 스위트:테스트 블랭크() 현지의 결과 = 스위트.runRedirect(리다이렉트)({},{}) 자신:assert String 포함('redirect 매개 변수 지정', 결과, 진실의) 자신:assert String 포함('템플릿:리다이렉트 #오류', 결과, 진실의) 끝. 기능. 스위트:testRedirect만() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트},{1}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.그 외의 용도는, [[:REDIRECT(명료화)]] 를 참조해 주세요., 결과, 진실의) 끝. 기능. 스위트:테스트 사용 1() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트, '용도 1'},{1}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1의 경우는, [[:REDIRECT(명료화)]] 를 참조해 주세요., 결과, 진실의) 끝. 기능. 스위트:테스트 페이지 1() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트, '용도 1', 페이지 1'},{1}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1에 대해서는 [[:PAGE1]].', 결과, 진실의) 끝. 기능. 스위트:테스트 사용2() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트, '용도 1', 페이지 1', 'USE2'},{1}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1에 대해서는 [[:PAGE1 ] 。USE2의 경우는, [[:REDIRECT(명료화)]] 를 참조해 주세요., 결과, 진실의) 끝. 기능. 스위트:test Page2() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트, '용도 1', 페이지 1', 'USE2', '페이지2'},{1}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1에 대해서는 [[:PAGE1 ] 。USE2에 대해서는 [[:PAGE2]].', 결과, 진실의) 끝. 기능. 스위트:테스트 사용 3() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트, '용도 1', 페이지 1', 'USE2', '페이지2', '사용방법3'},{1}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1에 대해서는 [[:PAGE1 ] 。USE2에 대해서는 [[:PAGE2 ] 。USE3의 경우는, [[:REDIRECT(명료화)]] 를 참조해 주세요., 결과, 진실의) 끝. 기능. 스위트:test Page() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트, '용도 1', 페이지 1', 'USE2', '페이지2', '사용방법3', '페이지3'},{1}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1에 대해서는 [[:PAGE1 ] 。USE2에 대해서는 [[:PAGE2 ] 。USE3에 대해서는 [[:PAGE3]].', 결과, 진실의) 끝. 기능. 스위트:테스트 사용 4() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트, '용도 1', 페이지 1', 'USE2', '페이지2', '사용방법3', '페이지3', 'USE4'},{1}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1에 대해서는 [[:PAGE1 ] 。USE2에 대해서는 [[:PAGE2 ] 。USE3에 대해서는 [[:페이지 3] ] 。USE4의 경우는, [[:REDIRECT(명료화)]] 를 참조해 주세요., 결과, 진실의) 끝. 기능. 스위트:테스트 페이지 4() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트, '용도 1', 페이지 1', 'USE2', '페이지2', '사용방법3', '페이지3', 'USE4', '페이지4'},{1}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1에 대해서는 [[:PAGE1 ] 。USE2에 대해서는 [[:PAGE2 ] 。USE3에 대해서는 [[:페이지 3] ] 。USE4에 대해서는 [[:PAGE4 ] ].', 결과, 진실의) 끝. 기능. 스위트:test Pipe Input (파이프 입력)() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트, '용도 1', 'PAGE1(모호한 설명) PAGE1', 'USE2', 'PAGE2(모호한 설명) PAGE2', '사용방법3', 'PAGE3(모호한 설명) PAGE3', 'USE4', 'PAGE4(모호한 설명) PAGE4'},{1}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1에 대해서는 [[:PAGE1(모호한) PAGE1].USE2에 대해서는 [[:PAGE2(모호한) PAGE2].USE3에 대해서는 [[:PAGE3(모호한) PAGE3].USE4에 대해서는 [[:PAGE4(모호한 설명) PAGE4].', 결과, 진실의) 끝. -------------------------------------------------------------------------------- -- 테스트 "및" -------------------------------------------------------------------------------- 기능. 스위트:test Page1 And Page2() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트, '용도 1', 페이지 1', '그리고', '페이지2'},{1}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1에 대해서는 [[:PAGE1] 및 [[:PAGE2]].', 결과, 진실의) 끝. 기능. 스위트:test Page2 And Page3() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트, '용도 1', 페이지 1', 'USE2', '페이지2', '그리고', '페이지3'},{1}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1에 대해서는 [[:PAGE1 ] 。USE2에 대해서는 [[:PAGE2] 및 [[:PAGE3]].', 결과, 진실의) 끝. 기능. 스위트:test Page1 And Page2 Page3 And Page4() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트, '용도 1', 페이지 1', '그리고', '페이지2', 'USE2', '페이지3', '그리고', '페이지4'},{1}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1에 대해서는 [[:PAGE1] 및 [[:PAGE2 ] 。USE2에 대해서는 [[:PAGE3] 및 [[:PAGE4 ] ].', 결과, 진실의) 끝. 기능. 스위트:testTwoAnds(투앤드)() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트, '용도 1', 페이지 1', '그리고', '페이지2', '그리고', '페이지3'},{1}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1에 대해서는 [[:PAGE1], [[:PAGE2] 및 [[:PAGE3]].', 결과, 진실의) 끝. 기능. 스위트:test Three Ands (3안드)() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트, '용도 1', 페이지 1', '그리고', '페이지2', '그리고', '페이지3', '그리고', '페이지4'},{1}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1에 대해서는 [[:PAGE1], [[:PAGE2], [[:PAGE3] 및 [[:PAGE4 ] ].', 결과, 진실의) 끝. 기능. 스위트:testTwoAndsUse2() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트, '용도 1', 페이지 1', '그리고', '페이지2', '그리고', '페이지3', 'USE2', '페이지4'},{1}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1에 대해서는 [[:PAGE1], [[:PAGE2] 및 [[:페이지 3] ] 。USE2에 대해서는 [[:PAGE4 ] ].', 결과, 진실의) 끝. -------------------------------------------------------------------------------- -- 테스트 건너뛰기 파라미터 -------------------------------------------------------------------------------- 기능. 스위트:testUse1건너뛰기() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트, '', 페이지 1'},{1}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.기타 용도는 [[:PAGE1]].', 결과, 진실의) 끝. 기능. 스위트:test Page1 건너뛰기() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트, '용도 1', '', 'USE2'},{1}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1의 경우는, [[:REDIRECT(명료화)]를 참조해 주세요.USE2의 경우는, [[:REDIRECT(명료화)]] 를 참조해 주세요., 결과, 진실의) 끝. 기능. 스위트:testUse2건너뛰기() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트, '용도 1', 페이지 1', '', '페이지2'},{1}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1에 대해서는 [[:PAGE1]].', 결과, 진실의) 끝. 기능. 스위트:test Page2 건너뛰기() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트, '용도 1', 페이지 1', 'USE2', '', '사용방법3'},{1}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1에 대해서는 [[:PAGE1 ] 。USE2의 경우는, [[:REDIRECT(명료화)]를 참조해 주세요.USE3의 경우는, [[:REDIRECT(명료화)]] 를 참조해 주세요., 결과, 진실의) 끝. 기능. 스위트:testUse3건너뛰기() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트, '용도 1', 페이지 1', 'USE2', '페이지2', '', '페이지3'},{1}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1에 대해서는 [[:PAGE1 ] 。USE2에 대해서는 [[:PAGE2]].', 결과, 진실의) 끝. 기능. 스위트:test Middle Use Skiped(중간 사용 생략)() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트, '용도 1', 페이지 1', '', '페이지2', '사용방법3', '페이지3'},{1}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1에 대해서는 [[:PAGE1]].', 결과, 진실의) 끝. 기능. 스위트:testMiddlePage 건너뛰기() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트, '용도 1', 페이지 1', 'USE2', '', '사용방법3', '페이지3'},{1}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1에 대해서는 [[:PAGE1 ] 。USE2의 경우는, [[:REDIRECT(명료화)]를 참조해 주세요.USE3에 대해서는 [[:PAGE3]].', 결과, 진실의) 끝. -------------------------------------------------------------------------------- -- 다른 용도를 테스트합니다. -------------------------------------------------------------------------------- 기능. 스위트:testUse2건너뛰기() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트, '용도 1', 페이지 1', '', '페이지2'},{1}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1에 대해서는 [[:PAGE1]].', 결과, 진실의) 끝. 기능. 스위트:test Other Uses Is Not Final() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트, '용도 1', 페이지 1', '기타 용도', '페이지2', '사용방법3', '페이지3'},{1}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1에 대해서는 [[:PAGE1 ] 。기타 용도는 [[:PAGE2 ] 。USE3에 대해서는 [[:PAGE3]].', 결과, 진실의) 끝. -------------------------------------------------------------------------------- -- 테스트 옵션 -------------------------------------------------------------------------------- 기능. 스위트:테스트 Self Ref() 현지의 결과 = 스위트.runRedirect(리다이렉트)({리다이렉트, 셀프레프 = '네'},{1}) 자신:assert String 포함('class='-selfref.-"', 결과, 거짓의) 끝. -------------------------------------------------------------------------------- -- Lua 인터페이스 테스트 -------------------------------------------------------------------------------- 기능. 스위트:assert Error(아스텐 에러)(...) 현지의 성공., 결과 = pcall(_개요, ...) 자신:assert False(거짓)(성공.) 끝. 기능. 스위트:testInvalidInput() 자신:assert Error(아스텐 에러)() 자신:assert Error(아스텐 에러)(9) 자신:assert Error(아스텐 에러)(진실의) 자신:assert Error(아스텐 에러)(리다이렉트, '실패') 자신:assert Error(아스텐 에러)(리다이렉트, '실패', {}) 자신:assert Error(아스텐 에러)(리다이렉트, 제로, '실패') 자신:assert Error(아스텐 에러)(리다이렉트, {}, '실패') 끝. 기능. 스위트:testLuaRedirect만() 현지의 결과 = _개요({리다이렉트}) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.그 외의 용도는, [[:REDIRECT(명료화)]] 를 참조해 주세요., 결과, 진실의) 끝. 기능. 스위트:test Lua Page 1() 현지의 결과 = _개요( {리다이렉트, '용도 1', 페이지 1'}, 1 ) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1에 대해서는 [[:PAGE1]].', 결과, 진실의) 끝. 기능. 스위트:test Lua Page 3() 현지의 결과 = _개요( {리다이렉트, '용도 1', 페이지 1', 'USE2', '페이지2', '사용방법3', '페이지3'}, 1 ) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1에 대해서는 [[:PAGE1 ] 。USE2에 대해서는 [[:PAGE2 ] 。USE3에 대해서는 [[:PAGE3]].', 결과, 진실의) 끝. 기능. 스위트:테스트 Lua Multiple Pages() 현지의 결과 = _개요( {리다이렉트, '용도 1', 페이지 1', '그리고', '페이지2', '그리고', '페이지3', 'USE2', '페이지4', '그리고', '페이지5'}, 1 ) 자신:assert String 포함(「REDIRECT」는 여기서 리다이렉트 합니다.USE1에 대해서는 [[:PAGE1], [[:PAGE2] 및 [[:페이지 3] ] 。USE2에 대해서는 [[:PAGE4] 및 [[:PAGE5 。, 결과, 진실의) 끝. 기능. 스위트:테스트 Lua Selfref() 현지의 결과 = _개요({리다이렉트}, 1, {셀프레프 = 진실의}) 자신:assert String 포함('class='-selfref.-"', 결과, 거짓의) 끝. -------------------------------------------------------------------------------- -- 테스트 추적 카테고리 -------------------------------------------------------------------------------- 기능. 스위트.make Fake Title Object(메이크 페이크 타이틀 오브젝트)(페이지입니다., 값) 현지의 직함 한다면 페이지입니다. 그리고나서 직함 = 음.직함.신규(페이지입니다.) 또 다른 직함 = 음.직함.get Current Title(전류 제목)() 끝. 위해서 k, v 에 쌍들(값 또는 {}) 하다 rawset(원래 세트)(직함, k, v) 끝. 돌아가다 직함 끝. 현지의 d = {} -- 카테고리 d.missing Cat(고양이 없음) = '방향 수정 누락' d.invalid Cat = '리다이렉트 해트노트가 있는 기사 검토 필요' 기능. 스위트:assert추적 카테고리(카테고리, 결과) 카테고리 = string.format('[카테고리:%s]', 카테고리) 자신:assert String 포함(카테고리, 결과, 진실의) 끝. 기능. 스위트:assert Not Contains(포함되지 않음)추적 카테고리(결과) 자신:assert Not String 포함('%[%][카테고리:[^%]]+%]%]', 결과) 끝. 기능. 스위트:test Tracking Category Non Mainspace() 현지의 current Title(현재 제목) = 스위트.make Fake Title Object(메이크 페이크 타이틀 오브젝트)('Wikipedia:네임스페이스') 스위트:assert Not Contains(포함되지 않음)추적 카테고리(_개요({'예'}, 제로, 제로, current Title(현재 제목))) 끝. 기능. 스위트:test Tracking Category(트래킹 카테고리)예외() 현지의 current Title(현재 제목) = 스위트.make Fake Title Object(메이크 페이크 타이틀 오브젝트)('예') 위해서 _, s 에 아이페어{리다이렉트, 리다이렉트 1', 리다이렉트 1678', 기간} 하다 자신:assert Not Contains(포함되지 않음)추적 카테고리(_개요({s}, 제로, 제로, current Title(현재 제목))) 끝. 끝. 기능. 스위트:test Tracking Category(트래킹 카테고리)유효하지 않은 제목() 현지의 current Title(현재 제목) = 스위트.make Fake Title Object(메이크 페이크 타이틀 오브젝트)('예') 자신:assert추적 카테고리(d.missing Cat(고양이 없음), _개요({'시험 2'}, 제로, 제로, current Title(현재 제목))) 끝. 기능. 스위트:test Tracking Category Nonexent() 현지의 current Title(현재 제목) = 스위트.make Fake Title Object(메이크 페이크 타이틀 오브젝트)('예') 현지의 리다이렉트 타이틀 = 스위트.make Fake Title Object(메이크 페이크 타이틀 오브젝트)('예 2', {존재한다 = 거짓의, 리다이렉트 = 거짓의}) 자신:assert추적 카테고리(d.missing Cat(고양이 없음), _개요({리다이렉트 타이틀.프리픽스본문}, 제로, 제로, current Title(현재 제목), 리다이렉트 타이틀)) 끝. 기능. 스위트:test Tracking Category Not Redirect() 현지의 current Title(현재 제목) = 스위트.make Fake Title Object(메이크 페이크 타이틀 오브젝트)('예') 현지의 리다이렉트 타이틀 = 스위트.make Fake Title Object(메이크 페이크 타이틀 오브젝트)('예 2', {존재한다 = 진실의, 리다이렉트 = 거짓의, 컨텐츠의 취득 = 기능. () 돌아가다 '방향 수정 안 돼!' 끝.}) 자신:assert추적 카테고리(d.invalid Cat, _개요({리다이렉트 타이틀.프리픽스본문}, 제로, 제로, current Title(현재 제목), 리다이렉트 타이틀)) 끝. 기능. 스위트:test Tracking Category RfDRedirect(드라이렉트)() 현지의 current Title(현재 제목) = 스위트.make Fake Title Object(메이크 페이크 타이틀 오브젝트)('예') 현지의 리다이렉트 타이틀 = 스위트.make Fake Title Object(메이크 페이크 타이틀 오브젝트)('예 2', {존재한다 = 진실의, 리다이렉트 = 거짓의, 컨텐츠의 취득 = 기능. () 돌아가다 [====[ {{<safesubst://safesubst;#safesubst:RfD 월 = 4월 일 = 14 연도 = 2021 시간 = 15:27 타임스탬프 = 20210414152704 <!--위의 내용은 {{subst:rfd}}에 의해 생성됩니다.--> <!-- RFD 메시지의 종료.위는 편집하지 말고 아래는 자유롭게 편집해 주세요.--> content = #REDIRECT [예] <!--이 행 뒤에 아무것도 추가하지 말아 주세요.이 행은 리다이렉트를 대체할 명확화 페이지나 기사를 작성할 때 이외에는.--> }} ]====] 끝.}) 자신:assert Not Contains(포함되지 않음)추적 카테고리(d.invalid Cat, _개요({리다이렉트 타이틀.프리픽스본문}, 제로, 제로, current Title(현재 제목), 리다이렉트 타이틀)) 끝. 기능. 스위트:testTrackingCategoryWrongTarget() 현지의 current Title(현재 제목) = 스위트.make Fake Title Object(메이크 페이크 타이틀 오브젝트)('예') 현지의 리다이렉트 타이틀 = 스위트.make Fake Title Object(메이크 페이크 타이틀 오브젝트)('예 2', {존재한다 = 진실의, 리다이렉트 = 진실의, 컨텐츠의 취득 = 기능. () 돌아가다 '#REDIRECT [예 3]' -- 이것은 모듈을 속이기 위한 것입니다.리다이렉트. 끝.}) 현지의 target Title(타깃 타이틀) = 스위트.make Fake Title Object(메이크 페이크 타이틀 오브젝트)('예 3') 자신:assert추적 카테고리(d.invalid Cat, _개요({리다이렉트 타이틀.프리픽스본문}, 제로, 제로, current Title(현재 제목), 리다이렉트 타이틀, target Title(타깃 타이틀))) 끝. 기능. 스위트:test Tracking Category Correct Target() 현지의 current Title(현재 제목) = 스위트.make Fake Title Object(메이크 페이크 타이틀 오브젝트)('예') 현지의 리다이렉트 타이틀 = 스위트.make Fake Title Object(메이크 페이크 타이틀 오브젝트)('예 2', {존재한다 = 진실의, 리다이렉트 = 진실의, 컨텐츠의 취득 = 기능. () 돌아가다 '#REDIRECT [예]' -- 이것은 모듈을 속이기 위한 것입니다.리다이렉트. 끝.}) 현지의 target Title(타깃 타이틀) = 스위트.make Fake Title Object(메이크 페이크 타이틀 오브젝트)('예') 자신:assert Not Contains(포함되지 않음)추적 카테고리(_개요({리다이렉트 타이틀.프리픽스본문}, 제로, 제로, current Title(현재 제목), 리다이렉트 타이틀, target Title(타깃 타이틀))) 끝. 돌아가다 스위트