현지의 mMockTitle = 요구하다("모듈:모의 제목") 현지의 스크리분토 유닛 = 요구하다("모듈:스크리분토 유닛") 현지의 스위트 = 스크리분토 유닛:신규() -------------------------------------------------------------------------------- -- MockTitle 테스트 -------------------------------------------------------------------------------- 스위트["test MockTitle: 인수 테이블이 제공되지 않으면 오류가 발생합니다."] = 기능. (자신) 자신:assertThrows( 기능. () mMockTitle.모크타이틀() 끝., "'MockTitle'에 대한 잘못된 인수 #1"(테이블 예상, 0) ) 끝. 스위트["test MockTitle: 페이지 인수를 지정하지 않으면 오류가 발생합니다."] = 기능. (자신) 자신:assertThrows( 기능. () mMockTitle.모크타이틀{} 끝., "'MockTitle'로 이름이 지정된 잘못된 인수 페이지(문자열 또는 숫자 예상, 0으로 지정됨)" ) 끝. 현지의 페이지명 = { "예", "fr:예", "모듈:샌드박스", "모듈:샌드박스/서브페이지", "MW: 테스트", "fr:b:예", } 위해서 _, 페이지명 에 아이페어(페이지명) 하다 스위트[ string.format( 'test MockTitle: 페이지 이름 "%s"를 사용할 때 접두사는텍스트 속성은 페이지 이름과 같습니다.', 페이지명 ) ] = 기능. (자신) 자신:assert Equals(동일)("예", mMockTitle.모크타이틀({페이지입니다. = "예"}).프리픽스본문) 끝. 끝. 현지의 simple Property Test Data = { { 소유물 = "id", 페이지입니다. = "예", 가치 = 123456, }, { 소유물 = "isRedirect", 페이지입니다. = "메인 페이지", 가치 = 진실의, }, { 소유물 = "실패", 페이지입니다. = "메인 페이지", 가치 = 거짓의, }, { 소유물 = "콘텐츠 모델", 페이지입니다. = "메인 페이지", 가치 = "푸", }, } 위해서 _, 테스트 데이터 에 아이페어(simple Property Test Data) 하다 스위트[string.format("테스트 MockTitle: %s 속성을 %s 옵션을 사용하여 조롱합니다.", 테스트 데이터.소유물, 테스트 데이터.소유물)] = 기능. (자신) 현지의 직함 = mMockTitle.모크타이틀({페이지입니다. = 테스트 데이터.페이지입니다., [테스트 데이터.소유물] = 테스트 데이터.가치}) 자신:assert Equals(동일)(테스트 데이터.가치, 직함[테스트 데이터.소유물]) 끝. 끝. 스위트["test MockTitle: 페이지 이름을 redirectTarget 옵션에 전달하면 redirectTarget이 해당 페이지 이름을 가진 MockTitle 개체가 됩니다."] = 기능. (자신) 현지의 직함 = mMockTitle.모크타이틀({페이지입니다. = "예", 리다이렉트 타깃 = "사용자: 예"}) 자신:assert Equals(동일)("사용자: 예", 직함.리다이렉트 타깃.프리픽스본문) 끝. 스위트["test MockTitle: ID를 redirectTarget 옵션에 전달하면 redirectTarget이 해당 ID를 가진 MockTitle 개체가 됩니다."] = 기능. (자신) 현지의 main Page Id = 15580374 현지의 직함 = mMockTitle.모크타이틀({페이지입니다. = "예", 리다이렉트 타깃 = main Page Id}) 자신:assert Equals(동일)(main Page Id, 직함.리다이렉트 타깃.아이디) 끝. 스위트["test MockTitle: 옵션 테이블을 redirectTarget 옵션에 전달하면 redirectTarget이 이러한 옵션을 가진 MockTitle 개체가 됩니다."] = 기능. (자신) 현지의 직함 = mMockTitle.모크타이틀({페이지입니다. = "예", 리다이렉트 타깃 = {페이지입니다. = "사용자: 예/공통.js", 콘텐츠 모델 = "sysitext"}}) 자신:assert Equals(동일)("사용자: 예/공통.js", 직함.리다이렉트 타깃.프리픽스본문) 자신:assert Equals(동일)("sysitext", 직함.리다이렉트 타깃.콘텐츠 모델) 끝. 스위트["test MockTitle: mockTitle 개체를 redirectTarget 옵션에 전달하면 redirectTarget이 해당 MockTitle 개체가 됩니다."] = 기능. (자신) 현지의 mock Redirect Target(목표 리다이렉트 타깃 = mMockTitle.모크타이틀({페이지입니다. = "사용자: 예/공통.js", 콘텐츠 모델 = "sysitext"}) 현지의 직함 = mMockTitle.모크타이틀({페이지입니다. = "예", 리다이렉트 타깃 = mock Redirect Target(목표 리다이렉트 타깃}) 자신:assert Equals(동일)("사용자: 예/공통.js", 직함.리다이렉트 타깃.프리픽스본문) 자신:assert Equals(동일)("sysitext", 직함.리다이렉트 타깃.콘텐츠 모델) 끝. 현지의 보호.레벨 테스트 데이터 = { { 옵션명 = "편집 보호", 옵션값 = "sysop", 예상되는 보호 액션 = "편집", }, { 옵션명 = "이동 보호", 옵션값 = "sysop", 예상되는 보호 액션 = 「이동', }, { 옵션명 = "보호 만들기", 옵션값 = "sysop", 예상되는 보호 액션 = '작성", }, { 옵션명 = "업로드 보호", 옵션값 = "sysop", 예상되는 보호 액션 = "실패", }, } 위해서 _, 테스트 데이터 에 아이페어(보호.레벨 테스트 데이터) 하다 스위트[ string.format( 'test MockTitle: 옵션 %s을(를) %s로 설정하면 보호,그에 따라 레벨 테이블이 업데이트됩니다.', 테스트 데이터.옵션명, 테스트 데이터.옵션값 ) ] = 기능. (자신) 현지의 직함 = mMockTitle.모크타이틀{페이지입니다. = "예", [테스트 데이터.옵션명] = 테스트 데이터.옵션값} 자신:assert Equals(동일)(테스트 데이터.옵션값, 직함.보호.레벨[테스트 데이터.예상되는 보호 액션][1]) 끝. 끝. 현지의 캐스케이드 보호레벨 테스트 데이터 = { { 옵션명 = "casadingEditProtection", 옵션값 = "sysop", 예상되는 보호 액션 = "편집", }, { 옵션명 = "캐스케이딩 이동 보호", 옵션값 = "sysop", 예상되는 보호 액션 = 「이동', }, { 옵션명 = "casading Create Protection", 옵션값 = "sysop", 예상되는 보호 액션 = '작성", }, { 옵션명 = "업로드 보호 캐스케이드", 옵션값 = "sysop", 예상되는 보호 액션 = "실패", }, } 위해서 _, 테스트 데이터 에 아이페어(캐스케이드 보호레벨 테스트 데이터) 하다 스위트[ string.format( 'test MockTitle: %s 옵션을 %s로 설정할 때', .. cascading protection을 설정할 때소스 옵션, ' .. 'cascading Protection 테이블이 그에 따라 업데이트됩니다.', 테스트 데이터.옵션명, 테스트 데이터.옵션값 ) ] = 기능. (자신) 현지의 직함 = mMockTitle.모크타이틀{ 페이지입니다. = "예", [테스트 데이터.옵션명] = 테스트 데이터.옵션값, 캐스케이드 보호원천 = {"예", "예 2"}, } 자신:assert Equals(동일)( 테스트 데이터.옵션값, 직함.캐스케이드 보호.제약 사항[테스트 데이터.예상되는 보호 액션][1] ) 자신:assert Deep Equals(심층 등)( {"예", "예 2"}, 직함.캐스케이드 보호.원천 ) 끝. 끝. 스위트["test MockTitle: 계단식 보호 인수가 제공되었지만 계단식 보호 소스가 제공되지 않으면 오류가 발생합니다."] = 기능. (자신) 자신:assertThrows( 기능. () mMockTitle.모크타이틀{페이지입니다. = "예", 캐스케이드 편집 보호 = "sysop"} 끝., "cascading protection 인수가 제공되었지만 cascading protection은sources 인수가 없거나 비어 있습니다. ) 끝. 스위트["test MockTitle: 계단식 보호 인수가 제공되었지만 계단식 보호 소스 테이블이 비어 있으면 오류가 발생합니다."] = 기능. (자신) 자신:assertThrows( 기능. () mMockTitle.모크타이틀{페이지입니다. = "예", 캐스케이드 편집 보호 = "sysop", 캐스케이드 보호원천 = {}} 끝., "cascading protection 인수가 제공되었지만 cascading protection은sources 인수가 없거나 비어 있습니다. ) 끝. 스위트["test MockTitle: 계단식 보호 소스가 제공되지만 계단식 보호 인수가 제공되지 않으면 오류가 발생합니다."] = 기능. (자신) 자신:assertThrows( 기능. () mMockTitle.모크타이틀{페이지입니다. = "예", 캐스케이드 보호원천 = {"예 2", "예 3"}} 끝., 캐스케이드 프로텍션sources 인수는 제공되었지만 계단식 보호 인수는 제공되지 않았습니다." ) 끝. 스위트['test MockTitle: content 옵션이 제공된 경우 getContent()는 지정된 문자열을 반환합니다.'] = 기능. (자신) 현지의 직함 = mMockTitle.모크타이틀{페이지입니다. = "존재하지 않는 페이지 29dh12yxm", 내용 = "일부 [사이트] 콘텐츠"} 자신:assert Equals(동일)("일부 [사이트] 콘텐츠", 직함:컨텐츠의 취득()) 끝. 현지의 filePropertyTestData = { { 소유물 = "실패", 옵션명 = "파일 외부", 옵션값 = 진실의, }, { 소유물 = '폭', 옵션명 = "파일 폭", 옵션값 = 123, }, { 소유물 = "높이', 옵션명 = "파일 높이", 옵션값 = 456, }, { 소유물 = 페이지, 옵션명 = "파일 페이지", 옵션값 = 3, }, { 소유물 = '사이즈", 옵션명 = "파일 크기", 옵션값 = 1024, }, { 소유물 = "mime Type", 옵션명 = "fileMimeType", 옵션값 = "이미지/png", }, { 소유물 = "길이", 옵션명 = "파일 길이", 옵션값 = 60, }, } 위해서 _, 테스트 데이터 에 아이페어(filePropertyTestData) 하다 스위트[string.format( '테스트 MockTitle: 옵션 %s을(를) %s로 설정하면 파일 테이블이 그에 따라 업데이트됩니다.', 테스트 데이터.옵션명, 스트링(테스트 데이터.옵션값) )] = 기능.(자신) 현지의 직함 = mMockTitle.모크타이틀{페이지입니다. = "파일: 존재하지 않는 hf893bc0.png", [테스트 데이터.옵션명] = 테스트 데이터.옵션값} 자신:assert Equals(동일)(테스트 데이터.옵션값, 직함.파일[테스트 데이터.소유물]) 끝. 끝. 스위트["test MockTitle: 파일이 아닌 네임스페이스에서 fileExists를 설정할 때 파일 테이블이 설정되지 않습니다."] = 기능.(자신) 현지의 직함 = mMockTitle.모크타이틀{페이지입니다. = "존재하지 않는 페이지 34u8wg90bfr", fileExists = 진실의} 자신:assert Equals(동일)(제로, 직함.파일) 끝. 현지의 fileExists테스트 데이터 = { { 페이지입니다. = 존재하지 않는 기사 tr9w78ebna0, 기대됩니다 = 제로, }, { 페이지입니다. = "Talk: 존재하지 않는 토크 페이지 34hdbe0pafj", 기대됩니다 = 제로, }, { 페이지입니다. = "파일: 존재하지 않는 파일 341gh87fg8", 기대됩니다 = 진실의, }, { 페이지입니다. = "미디어: 존재하지 않는 파일 pbfhrw3v8d", 기대됩니다 = 진실의, }, } 위해서 _, 테스트 데이터 에 아이페어(fileExists테스트 데이터) 하다 스위트[ string.format( '테스트 MockTitle: %s 페이지를 사용할 때 fileExists 속성은 %s입니다.', 테스트 데이터.페이지입니다., 테스트 데이터.기대됩니다 그리고. "세트' 또는 "설정되지 않음" ) ] = 기능. (자신) 현지의 직함 = mMockTitle.모크타이틀({페이지입니다. = 테스트 데이터.페이지입니다., fileExists = 진실의}) 자신:assert Equals(동일)(테스트 데이터.기대됩니다, 직함.fileExists) 끝. 끝. 현지의 fallback Property Test Data(폴백 속성 테스트 데이터) = { { 소유물 = "id", 선택 = "id", 페이지입니다. = "예", }, { 소유물 = "isRedirect", 선택 = "isRedirect", 페이지입니다. = "WP:ANI", }, { 소유물 = "실패", 선택 = "실패", 페이지입니다. = 존재하지 않는 제목 f292umz0tyi, }, { 소유물 = "콘텐츠 모델", 선택 = "콘텐츠 모델", 페이지입니다. = "사용자: 예/공통.js", }, { 소유물 = 리다이렉트 타깃, 선택 = 리다이렉트 타깃, 페이지입니다. = "WP:ANI", }, { 소유물 = '보호레벨", 선택 = "편집 보호", 페이지입니다. = "메인 페이지", }, { 소유물 = 리다이렉트 타깃, 선택 = 리다이렉트 타깃, 페이지입니다. = "WP:ANI", }, { 소유물 = "캐스케이딩 보호", 선택 = "casadingEditProtection", 페이지입니다. = "메인 페이지", }, { 소유물 = "캐스케이딩 보호", 선택 = 캐스케이딩 프로텍션출처", 페이지입니다. = "메인 페이지", }, } 위해서 _, 테스트 데이터 에 아이페어(fallback Property Test Data(폴백 속성 테스트 데이터)) 하다 스위트[string.format("test MockTitle: %s 옵션을 지정하지 않으면 실제 %s 값이 사용됩니다.", 테스트 데이터.선택, 테스트 데이터.소유물)] = 기능. (자신) 스위트:assert Deep Equals(심층 등)( 음.직함.신규(테스트 데이터.페이지입니다.)[테스트 데이터.소유물], mMockTitle.모크타이틀{페이지입니다. = 테스트 데이터.페이지입니다.}[테스트 데이터.소유물] ) 끝. 끝. 스위트["test MockTitle: content 옵션이 지정되지 않은 경우 getContent()는 실제 콘텐츠를 반환합니다."] = 기능. (자신) 스위트:assert Equals(동일)( 음.직함.신규("메인 페이지"):컨텐츠의 취득(), mMockTitle.모크타이틀{페이지입니다. = "메인 페이지"}:컨텐츠의 취득() ) 끝. 돌아가다 스위트