모듈:보호 배너/테스트 케이스

Module
-- 필요한 모듈을 로드합니다. 현지의 보호 배너 = 요구하다('모듈:보호 배너/샌드박스') 현지의 스크리분토 유닛 = 요구하다('모듈:스크리분토 유닛')  -- 클래스를 가져옵니다. 현지의 보호. = 보호 배너._export Classes().보호. 현지의 블러브 = 보호 배너._export Classes().블러브 현지의 배너 템플릿 = 보호 배너._export Classes().배너 템플릿 현지의 배너 = 보호 배너._export Classes().배너 현지의 자물쇠 = 보호 배너._export Classes().자물쇠  -- 테스트 스위트 초기화 현지의 스위트 = 스크리분토 유닛:신규()  -------------------------------------------------------------------------------- -- 디폴트값 --------------------------------------------------------------------------------  현지의 d = {} d.이유 = '실용주의' d.액션. = '편집' d.수평 = 'sysop' d.페이지입니다. = '사용자: 예' d.토크 페이지 = '사용자 토크:예' d.기본 텍스트 = '예' d.네임스페이스 = 2 -- d.page 네임스페이스 d.네임스페이스 플래그먼트 = '사용자' -- makeProtectionCategory의 d.page 네임스페이스 fragment d.카테고리 네임스페이스 키 = {[d.네임스페이스] = d.네임스페이스 플래그먼트} -- 네임스페이스 키 설정 테이블 d.기한 만료 = '9999년 1월 1일' d.유효 기간 = 253370764800 -- Unix 시간에서의 d.expiry d.expiry Fragment(확장 플래그먼트) = '실패' -- makeProtectionCategory의 d.expiry fragment 만료 d.보호 날짜 = '2000년 1월 1일' d.보호 날짜u = 946684800 -- d.protectionDate(유닉스 시간)  -------------------------------------------------------------------------------- -- 도우미 기능 --------------------------------------------------------------------------------  기능. 스위트:assert Error(아스텐 에러)(기능하다, args, 메시지)  args = args 또는 {}  현지의 성공., 결과 = pcall(기능하다, 개봉하다(args))  자신:assert False(거짓)(성공.)  한다면 메시지 그리고나서   자신:assert String 포함(메시지, 결과, 진실의) -- 플레인 매칭  끝. 끝.  기능. 스위트:assert Not Error(ASST Not 오류)(기능하다, args)  args = args 또는 {}  현지의 성공., 결과 = pcall(기능하다, 개봉하다(args))  자신:assert True(참)(성공.) 끝.  현지의 기능. makeTitleObject(makeTitle오브젝트)(옵션들)  현지의 직함 = .직함.신규(옵션들.페이지입니다.)   -- 보호 수준 설정  현지의 레벨 = {   편집하다 = {},   움직이다 = {},   자동 확인 = {}  }  위해서 _, 액션.  아이페어{'편집', '이동, '자동 보기'} 하다   현지의 수평 = 옵션들[액션.]   한다면 수평 그리고나서    레벨[액션.][1] = 수평   끝.  끝.  rawset(원래 세트)(직함, '보호'레벨', 레벨)   -- 콘텐츠 모델 설정  rawset(원래 세트)(직함, '콘텐츠 모델', 옵션들.콘텐츠 모델 또는 'sysitext')   돌아가다 직함 끝.  현지의 기능. makeDefaultTitleObject(메이크 디폴트 타이틀()  돌아가다 makeTitleObject(makeTitle오브젝트){페이지입니다. = d.페이지입니다., [d.액션.] = d.수평} 끝.  -- 에일리어스를 만듭니다.개체가 보호된 페이지용임을 명확히 합니다. 현지의 보호하다타이틀 오브젝트 = makeDefaultTitleObject(메이크 디폴트 타이틀  현지의 기능. makeConfig(구성)(t)  현지의 cfg = {   마스터 배너 = {},   padlock Indicator 이름 = {},   indefin Image Reasons = {},   reasons With Namespace Priority = {},   카테고리 네임스페이스 키 = {},   보호 카테고리 = {},   Expiry Check를 사용하지 않는 이유 = {},   expiry Check Actions(expiry Check 액션) = {},   페이지 타입 = {},   스트링 없음 = {},   계층 = {    시스템 = {},    리뷰어 = {'sysop'},    파일오버 = {'sysop'},    템플릿 에디터 = {'sysop'},    확장된 확인 = {'sysop'},    자동 확인됨 = {'실패', '파일오버', '편집자', '확정되지 않음'},    유저 = {'자동 확인됨'},    ['*'] = {'사용자'}   },   포장지 = {},   메시지 = {}  }  현지의 prot Level 필드 = {   '디폴트 배너',   '실패',   '보호 기능,   '설명',   '보호'레벨',   '실패',   '이미지 링크'  }  위해서 _, 들판  아이페어(prot Level 필드) 하다   cfg[들판] = {    편집하다 = {},    움직이다 = {},    자동 확인 = {}   }  끝.   -- 오류가 발생할 경우 필드를 추가합니다.  cfg.마스터 배너.본문 = '이유 텍스트'   -- 커스텀 필드 추가  위해서 k, v  쌍들(t 또는 {}) 하다   cfg[k] = v  끝.  돌아가다 cfg 끝.  현지의 기능. makeDefaultProtectionObject(cfg)  cfg = makeConfig(구성)(cfg)  한다면 다음 분.(cfg.카테고리 네임스페이스 키) == 제로 그리고나서 -- cfg.category NamespaceKeys가 비어 있습니다.   cfg.카테고리 네임스페이스 키 = d.카테고리 네임스페이스 키  끝.  현지의 obj = 보호..신규(   {d.이유, 액션. = d.액션., 기한 만료 = d.기한 만료},   cfg,   makeDefaultTitleObject(메이크 디폴트 타이틀()  )  obj.기한 만료 = d.유효 기간 -- [Module]를 덮어쓰는 해킹:유효 보호 유효기간]]  돌아가다 obj 끝.  현지의 기능. makeProtectionCategoryKey(테스트 플래그먼트, 디폴트)  현지의 단편화 = {   기한 만료 = '모두',   네임스페이스 = '모두',   이유 = '모두',   수평 = '모두',   액션. = '모두'  }  위해서 i, t  아이페어{디폴트 또는 {}, 테스트 플래그먼트} 하다   위해서 k, v  쌍들(t) 하다    단편화[k] = v   끝.  끝.  현지의 열쇠 = {   단편화.기한 만료,   단편화.네임스페이스,   단편화.이유,   단편화.수평,   단편화.액션.  }  돌아가다 table.concat(열쇠, ' ') 끝.  현지의 기능. makeDefaultProtectionCategoryKey(테스트 플래그먼트)  현지의 디폴트 = {   기한 만료 = d.expiry Fragment(확장 플래그먼트),   네임스페이스 = d.네임스페이스 플래그먼트,   이유 = d.이유,   수평 = d.수평,   액션. = d.액션.  }  돌아가다 makeProtectionCategoryKey(테스트 플래그먼트, 디폴트) 끝.  현지의 기능. make Default Blurb 객체(cfg)  cfg = makeConfig(구성)(cfg)  돌아가다 블러브.신규(   makeDefaultProtectionObject(),   {},   cfg  ) 끝.  현지의 기능. makeDefaultBannerTemplateObject(cfg)  cfg = makeConfig(구성)(cfg)  돌아가다 배너 템플릿.신규(   makeDefaultProtectionObject(),   cfg  ) 끝.  현지의 기능. make Default 배너 오브젝트(cfg)  cfg = makeConfig(구성)(cfg)  돌아가다 배너.신규(   makeDefaultProtectionObject(),   make Default Blurb 객체(),   cfg  ) 끝.  현지의 기능. makeDefaultPadlockObject(makeDefault(cfg)  cfg = makeConfig(구성)(cfg)  돌아가다 자물쇠.신규(   makeDefaultProtectionObject(),   make Default Blurb 객체(),   cfg  ) 끝.  현지의 자물쇠 패턴 = '\127[^\127*UNIQ%-%-인디케이터%-%x+%-QINU[^\127]*\127'  기능. 스위트:assertIsPadlock(s, 메시지)  자신:assert String 포함(   자물쇠 패턴,   s,   거짓의,   메시지  ) 끝.  기능. 스위트:부정 노패드록(s, 메시지)  자신:assert Not String 포함(   자물쇠 패턴,   s,   거짓의,   메시지  ) 끝.  기능. 스위트:아사트이즈배너(s, 메시지)  자신:assert String 포함(   'class=class^'"*mbox[^]"*",   s,   거짓의,   메시지  )  자신:assert String 포함(   '역할='프레젠테이션',   s,   진실의,   메시지  )  자신:assert Not String 포함(   'id="protected-icon",   s,   진실의,   메시지  )  자신:assert Not String 포함(   '온',   s,   진실의,   메시지  ) 끝.  기능. 스위트:노배너를 주장하다(s, 메시지)  자신:assert Not String 포함(   'class=class^'"*mbox[^]"*",   s,   거짓의,   메시지  )  자신:assert Not String 포함(   '역할='프레젠테이션',   s,   진실의,   메시지  )  자신:assert Not String 포함(   'id="protected-icon",   s,   진실의,   메시지  )  자신:assert Not String 포함(   '온',   s,   진실의,   메시지  ) 끝.  -------------------------------------------------------------------------------- -- 보호 객체 테스트 --------------------------------------------------------------------------------  -- 보호 액션  기능. 스위트:testProtectionActionError()  스위트:assert Error(아스텐 에러)(   보호..신규,   {{액션. = '푸'}, makeConfig(구성)()},   '액션: foo'  ) 끝.  기능. 스위트:test Protection Action Edit()  현지의 obj = 보호..신규({액션. = '편집'}, makeConfig(구성)())  스위트:assert Equals(동일)('편집', obj.액션.) 끝.  기능. 스위트:testProtectionActionMove()  현지의 obj = 보호..신규({액션. = '이동}, makeConfig(구성)())  스위트:assert Equals(동일)('이동, obj.액션.) 끝.  기능. 스위트:test Protection Action(테스트 보호 액션)자동 뷰()  현지의 obj = 보호..신규({액션. = '자동 보기'}, makeConfig(구성)())  스위트:assert Equals(동일)('자동 보기', obj.액션.) 끝.  기능. 스위트:test Protection Action 업로드()  현지의 obj = 보호..신규({액션. = '실패'}, makeConfig(구성)())  스위트:assert Equals(동일)('실패', obj.액션.) 끝.  기능. 스위트:testProtectionNoAction(무작동)()  현지의 obj = 보호..신규({}, makeConfig(구성)())  스위트:assert Equals(동일)('편집', obj.액션.) 끝.  -- 보호 수준  기능. 스위트:테스트 보호 세미()  현지의 obj = 보호..신규(   {액션. = '편집'},   makeConfig(구성)(),   makeTitleObject(makeTitle오브젝트){페이지입니다. = '푸우', 편집하다 = '자동 확인됨'}  )  자신:assert Equals(동일)('자동 확인됨', obj.수평) 끝.  기능. 스위트:테스트 보호가득한()  현지의 obj = 보호..신규(   {액션. = '편집'},   makeConfig(구성)(),   makeTitleObject(makeTitle오브젝트){페이지입니다. = '푸우', 편집하다 = 'sysop'}  )  자신:assert Equals(동일)('sysop', obj.수평) 끝.  기능. 스위트:테스트 보호 보호 없음()  현지의 obj = 보호..신규(   {액션. = '편집'},   makeConfig(구성)(),   makeTitleObject(makeTitle오브젝트){페이지입니다. = '푸우', 편집하다 = 제로}  )  자신:assert Equals(동일)('*', obj.수평) 끝.  기능. 스위트:테스트 보호 SemiMove()  현지의 obj = 보호..신규(   {액션. = '이동},   makeConfig(구성)(),   makeTitleObject(makeTitle오브젝트){페이지입니다. = '푸우', 움직이다 = '자동 확인됨'}  )  자신:assert Equals(동일)('*', obj.수평) 끝.  기능. 스위트:테스트 보호템플릿()  현지의 obj = 보호..신규(   {액션. = '편집'},   makeConfig(구성)(),   makeTitleObject(makeTitle오브젝트){페이지입니다. = '템플릿:푸우, 편집하다 = '편집자'}  )  자신:assert Equals(동일)('편집자', obj.수평) 끝.  기능. 스위트:테스트 보호제목 블랙리스트()  현지의 obj = 보호..신규(   {액션. = '편집'},   makeConfig(구성)(),   makeTitleObject(makeTitle오브젝트){페이지입니다. = '템플릿:알림/페이지/후' 편집, 편집하다 = 제로}  )  자신:assert Equals(동일)('편집자', obj.수평) 끝.  -- 이유  기능. 스위트:test Protection Reason(테스트 보호 이유)()  현지의 obj = 보호..신규(   {'푸'},   makeConfig(구성)()  )  자신:assert Equals(동일)('푸', obj.이유) 끝.  기능. 스위트:test Protection Reason Lower Case()  현지의 obj = 보호..신규(   {'후'},   makeConfig(구성)()  )  자신:assert Equals(동일)('푸', obj.이유) 끝.  기능. 스위트:test Protection Bad Reason()  자신:assert Error(아스텐 에러)(   보호..신규,   {{'푸바'}, makeConfig(구성)()},   파이프 문자("")를 포함할 수 없습니다.  ) 끝.  기능. 스위트:test Protection No Reason()  현지의 obj = 보호..신규(   {},   makeConfig(구성)()  )  자신:assert Equals(동일)(제로, obj.이유) 끝.  -- 보호 날짜  기능. 스위트:testProtectionProtectionDateIndef()  자신:assert Error(아스텐 에러)(   보호..신규,   {    {날짜. = '무한'},    makeConfig(구성){스트링 없음 = {무기한의 = 진실의}}   },   '확장 보호 날짜: 무기한'  ) 끝.  기능. 스위트:test Protection ProtectionDateTemp()  현지의 obj = 보호..신규(   {날짜. = d.보호 날짜},   makeConfig(구성)()  )  자신:assert Equals(동일)(d.보호 날짜u, obj.보호 날짜) 끝.  기능. 스위트:test Protection No Protection 날짜()  현지의 obj = 보호..신규(   {},   makeConfig(구성)()  )  자신:assert Equals(동일)(제로, obj.보호 날짜) 끝.  기능. 스위트:testProtectionBadProtectionDate()  자신:assert Error(아스텐 에러)(   보호..신규,   {    {날짜. = '푸바'},    makeConfig(구성){스트링 없음 = {무기한의 = 진실의}}   },   '보호 날짜: foobar'  ) 끝.  -- banner Config(배너 구성)  기능. 스위트:test Protection MasterBannerConfigPrecedence 1()  현지의 마스터 배너 = {본문 = '마스터 배너 텍스트'}  현지의 obj = makeDefaultProtectionObject{마스터 배너 = 마스터 배너}  자신:assert Equals(동일)('마스터 배너 텍스트', obj.배너 설정.본문) 끝.  기능. 스위트:test Protection MasterBannerConfigPrecedence 2()  현지의 마스터 배너 = {본문 = '마스터 배너 텍스트'}  현지의 default 배너 = {[d.액션.] = {체납 = {본문 = 'default기본 텍스트 배너'}}}  현지의 obj = makeDefaultProtectionObject(makeConfig(구성){   마스터 배너 = 마스터 배너,   default 배너 = default 배너  })  자신:assert Equals(동일)('default기본 텍스트 배너', obj.배너 설정.본문) 끝.  기능. 스위트:test Protection MasterBannerConfigPrecedence 3()  현지의 default 배너 = {[d.액션.] = {   [d.수평] = {본문 = '기본 배너 수준 텍스트'},   체납 = {본문 = 'default기본 텍스트 배너'}  }}  현지의 obj = makeDefaultProtectionObject(makeConfig(구성){default 배너 = default 배너})  자신:assert Equals(동일)('기본 배너 수준 텍스트', obj.배너 설정.본문) 끝.  기능. 스위트:test Protection MasterBanner ConfigPrecedence 4()  현지의 default 배너 = {[d.액션.] = {   [d.수평] = {본문 = '기본 배너 수준 텍스트'}  }}  현지의 배너 = {[d.액션.] ={   [d.이유] = {본문 = '텍스트 표시'}  }}  현지의 obj = makeDefaultProtectionObject(makeConfig(구성){   default 배너 = default 배너,   배너 = 배너  })  자신:assert Equals(동일)('텍스트 표시', obj.배너 설정.본문) 끝.  기능. 스위트:testProtectionMasterBannerConfigFields()  현지의 마스터 배너 = {   본문 = '마스터 배너 텍스트',   설명. = '마스터 배너 설명',   툴팁 = '마스터 배너 툴팁',   알트 = '마스터 배너 alt',   링크 = '마스터 배너 링크',   이미지 = '마스터 배너 이미지'  }  현지의 obj = makeDefaultProtectionObject{마스터 배너 = 마스터 배너}  자신:assert Equals(동일)('마스터 배너 텍스트', obj.배너 설정.본문)  자신:assert Equals(동일)('마스터 배너 설명', obj.배너 설정.설명.)  자신:assert Equals(동일)('마스터 배너 툴팁', obj.배너 설정.툴팁)  자신:assert Equals(동일)('마스터 배너 alt', obj.배너 설정.알트)  자신:assert Equals(동일)('마스터 배너 링크', obj.배너 설정.링크)  자신:assert Equals(동일)('마스터 배너 이미지', obj.배너 설정.이미지) 끝.  -- isUserScript  기능. 스위트:test Protection Is UserScript With UserCSS()  현지의 보호. = 보호..신규(   {},   makeConfig(구성)(),   .직함.신규('사용자: 예/공통.css')  )  자신:assert True(참)(보호.:is User Script()) 끝.  기능. 스위트:test Protection Is UserScript With UserJs()  현지의 보호. = 보호..신규(   {},   makeConfig(구성)(),   .직함.신규('사용자: 예/공통.js')  )  자신:assert True(참)(보호.:is User Script()) 끝.  기능. 스위트:testProtectionIsUserScriptWithUserPage()  현지의 보호. = 보호..신규(   {},   makeConfig(구성)(),   .직함.신규('사용자: 예')  )  자신:assert False(거짓)(보호.:is User Script()) 끝.  기능. 스위트:test Protection Is UserScript With Normal Subpage()  현지의 보호. = 보호..신규(   {},   makeConfig(구성)(),   .직함.신규('사용자: 예/공통')  )  자신:assert False(거짓)(보호.:is User Script()) 끝.  기능. 스위트:test Protection Is UserScript With Username Ending InCSS()  현지의 보호. = 보호..신규(   {},   makeConfig(구성)(),   .직함.신규('사용자: 내 사용자 이름은 .css로 끝납니다.')  )  자신:assert False(거짓)(보호.:is User Script()) 끝.   기능. 스위트:test Protection Is UserScript With Username Ending InJS()  자신:assert False(거짓)(   보호..신규(    {},    makeConfig(구성)(),    .직함.신규('사용자: 내 사용자 이름은 .js로 끝납니다.')   ):is User Script()  ) 끝.  기능. 스위트:test Protection Is UserScript With Subpage Containing CSS()  자신:assert False(거짓)(   보호..신규(    {},    makeConfig(구성)(),    .직함.신규('사용자: 예/공통.css.txt')   ):is User Script()  ) 끝.  기능. 스위트:test Protection Is UserScript With No Subpage Prefix()  자신:assert True(참)(   보호..신규(    {},    makeConfig(구성)(),    .직함.신규('사용자: 예/.css')   ):is User Script()  ) 끝.  기능. 스위트:test Protection Is UserScript With Blank Username AndNo Subpage Prefix()  자신:assert True(참)(   보호..신규(    {},    makeConfig(구성)(),    .직함.신규('사용자:/.css')   ):is User Script()  ) 끝.  기능. 스위트:test Protection Is UserScript사용자 이름이 있는 경우유일한 CSS()  자신:assert False(거짓)(   보호..신규(    {},    makeConfig(구성)(),    .직함.신규('사용자: .css')   ):is User Script()  ) 끝.  기능. 스위트:test Protection Is UserScript With Nonstandard CSSContent Model()  자신:assert True(참)(   보호..신규(    {},    makeConfig(구성)(),    makeTitleObject(makeTitle오브젝트){페이지입니다.='사용자: 예/foo', 콘텐츠 모델='css'}   ):is User Script()  ) 끝.  기능. 스위트:test Protection Is UserScript With NonstandardJSContent Model(S콘텐트 모델)()  자신:assert True(참)(   보호..신규(    {},    makeConfig(구성)(),    makeTitleObject(makeTitle오브젝트){페이지입니다.='사용자: 예/foo', 콘텐츠 모델='스크립트 삭제'}   ):is User Script()  ) 끝.  기능. 스위트:test Protection Is UserScript With NonstandardWikitext 콘텐츠 모델()  자신:assert False(거짓)(   보호..신규(    {},    makeConfig(구성)(),    makeTitleObject(makeTitle오브젝트){페이지입니다.='사용자: 예/foo.css', 콘텐츠 모델='sysitext'}   ):is User Script()  ) 끝.  기능. 스위트:testProtectionIsUserScriptWithNonUserspacePage()  자신:assert False(거짓)(   보호..신규(    {},    makeConfig(구성)(),    makeTitleObject(makeTitle오브젝트){페이지입니다.='Wikipedia:예.css', 콘텐츠 모델='css'}   ):is User Script()  ) 끝.  -- 보호되고 있다  기능. 스위트:test Protection Protected(테스트 보호)진실의()  현지의 obj = makeDefaultProtectionObject()  obj.수평 = '자동 확인됨'  자신:assert True(참)(obj:보호되고 있다()) 끝.  기능. 스위트:test Protection Is Protected False()  현지의 obj = makeDefaultProtectionObject()  obj.수평 = '*'  자신:assert False(거짓)(obj:보호되고 있다()) 끝.  -- Show Lock이 필요합니다.  기능. 스위트:테스트 보호Show Lock 표시Protected Page()  현지의 obj = 보호..신규(   {},   makeConfig(구성)(),   makeTitleObject(makeTitle오브젝트){페이지입니다.='푸우', 편집하다='sysop'}  )  자신:assert True(참)(obj:Show Lock을 표시해야 합니다.()) 끝.  기능. 스위트:테스트 보호Show Lock 표시Protected User Script 사용()  현지의 obj = 보호..신규(   {},   makeConfig(구성)(),   makeTitleObject(makeTitle오브젝트){페이지입니다.='사용자: 예/공통.css', 콘텐츠 모델='css', 편집하다='sysop'}  )  자신:assert False(거짓)(obj:Show Lock을 표시해야 합니다.()) 끝.  기능. 스위트:테스트 보호Show Lock With Unprotected 페이지 표시()  현지의 obj = 보호..신규(   {},   makeConfig(구성)(),   makeTitleObject(makeTitle오브젝트){페이지입니다.='푸우'}  )  자신:assert False(거짓)(obj:Show Lock을 표시해야 합니다.()) 끝.  -- Have Protection Category가 필요합니다.  기능. 스위트:테스트 보호Should Have Protection Category(보호 카테고리 필요)Protected Page()  현지의 obj = 보호..신규(   {},   makeConfig(구성)(),   makeTitleObject(makeTitle오브젝트){페이지입니다.='푸우', 편집하다='sysop'}  )  자신:assert True(참)(obj:should Have Protection Category()) 끝.  기능. 스위트:테스트 보호Should Have Protection Category(보호 카테고리 필요)Protected User Script 사용()  현지의 obj = 보호..신규(   {},   makeConfig(구성)(),   makeTitleObject(makeTitle오브젝트){페이지입니다.='사용자: 예/공통.css', 콘텐츠 모델='css', 편집하다='sysop'}  )  자신:assert False(거짓)(obj:should Have Protection Category()) 끝.  기능. 스위트:테스트 보호Should Have Protection Category(보호 카테고리 필요)보호되지 않은 페이지 포함()  현지의 obj = 보호..신규(   {},   makeConfig(구성)(),   makeTitleObject(makeTitle오브젝트){페이지입니다.='푸우'}  )  자신:assert False(거짓)(obj:should Have Protection Category()) 끝.  -- 일시적  기능. 스위트:test Protection Protected(테스트 보호)진실의()  현지의 obj = makeDefaultProtectionObject()  obj.기한 만료 = 123456789012  자신:assert True(참)(obj:일시적()) 끝.  기능. 스위트:test Protection Is Protected False 1()  현지의 obj = makeDefaultProtectionObject()  obj.기한 만료 = '실패'  자신:assert False(거짓)(obj:일시적()) 끝.  기능. 스위트:test Protection Is Protected False 2()  현지의 obj = makeDefaultProtectionObject()  obj.기한 만료 = 제로  자신:assert False(거짓)(obj:일시적()) 끝.  -- make Protection Category -- 기능. 스위트:test Protection Category보호되지 않은 페이지 포함()  현지의 obj = 보호..신규(   {},   makeConfig(구성)(),   makeTitleObject(makeTitle오브젝트){페이지입니다.='푸우'}  )  자신:assert Equals(동일)(obj:make Protection Category(), '') 끝.  기능. 스위트:test Protection Category Precedence 1()  -- 유효기간이 가장 낮은 우선순위를 가지는지 테스트합니다.  현지의 보호 카테고리 = {   [makeDefaultProtectionCategoryKey{기한 만료 = '모두'}] = '모든 유효기간이 허용됨',   [makeDefaultProtectionCategoryKey{네임스페이스 = '모두'}] = '모든 네임스페이스 허용',   [makeDefaultProtectionCategoryKey{이유 = '모두'}] = '모든 이유 허용',   [makeDefaultProtectionCategoryKey{수평 = '모두'}] = '모든 레벨 허용',   [makeDefaultProtectionCategoryKey{액션. = '모두'}] = '모든 작업이 허용됨'  }  현지의 obj = makeDefaultProtectionObject{   보호 카테고리 = 보호 카테고리,  }  자신:assert String 포함(   '모든 유효기간이 허용됨',   obj:make Protection Category(),   진실의  ) 끝.  기능. 스위트:test Protection Category Precedence 2()  -- 이유를 가장 우선시하는 것으로 테스트합니다.  현지의 보호 카테고리 = {   [makeProtectionCategoryKey{기한 만료 = d.expiry Fragment(확장 플래그먼트)}] = '모바일만',   [makeProtectionCategoryKey{네임스페이스 = d.네임스페이스 플래그먼트}] = '모바일만',   [makeProtectionCategoryKey{이유 = d.이유}] = '이유만',   [makeProtectionCategoryKey{수평 = d.수평}] = '레벨만',   [makeProtectionCategoryKey{액션. = d.액션.}] = '액션만'  }  현지의 obj = makeDefaultProtectionObject{   보호 카테고리 = 보호 카테고리,  }  자신:assert String 포함(   '이유만',   obj:make Protection Category(),   진실의  ) 끝.  기능. 스위트:test Protection Category Precedence 3()  -- 이유가 로 설정되어 있는 경우, 네임스페이스가 가장 높은 우선순위를 가지는 것을 테스트합니다.  -- cfg.syslogWith Namespace Priority.  현지의 보호 카테고리 = {   [makeProtectionCategoryKey{기한 만료 = d.expiry Fragment(확장 플래그먼트)}] = '모바일만',   [makeProtectionCategoryKey{네임스페이스 = d.네임스페이스 플래그먼트}] = '모바일만',   [makeProtectionCategoryKey{이유 = d.이유}] = '이유만',   [makeProtectionCategoryKey{수평 = d.수평}] = '레벨만',   [makeProtectionCategoryKey{액션. = d.액션.}] = '액션만'  }  현지의 obj = makeDefaultProtectionObject{   보호 카테고리 = 보호 카테고리,   reasons With Namespace Priority = {[d.이유] = 진실의}  }  자신:assert String 포함(   '모바일만',   obj:make Protection Category(),   진실의  ) 끝.  기능. 스위트:test Protection Category Precedence 4()  -- 이 레벨의 priority가 네임스페이스보다 높은 것을 테스트합니다.  현지의 보호 카테고리 = {   [makeDefaultProtectionCategoryKey{네임스페이스 = '모두'}] = '모든 네임스페이스 허용',   [makeDefaultProtectionCategoryKey{수평 = '모두'}] = '모든 레벨 허용',  }  현지의 obj = makeDefaultProtectionObject{   보호 카테고리 = 보호 카테고리,  }  자신:assert String 포함(   '모든 네임스페이스 허용',   obj:make Protection Category(),   진실의  ) 끝.  기능. 스위트:test Protection Category Precedence 5()  -- 액션이 수준보다 높은 우선순위를 가지고 있는지 테스트합니다.  현지의 보호 카테고리 = {   [makeDefaultProtectionCategoryKey{수평 = '모두'}] = '모든 레벨 허용',   [makeDefaultProtectionCategoryKey{액션. = '모두'}] = '모든 작업이 허용됨',  }  현지의 obj = makeDefaultProtectionObject{   보호 카테고리 = 보호 카테고리,  }  자신:assert String 포함(   '모든 레벨 허용',   obj:make Protection Category(),   진실의  ) 끝.  기능. 스위트:test Protection Category Precedence 6()  --정확한 일치가 첫 번째가 되는 것을 테스트합니다.  현지의 보호 카테고리 = {   [makeDefaultProtectionCategoryKey()] = '성적 일치',   [makeDefaultProtectionCategoryKey{액션. = '모두'}] = '모든 작업이 허용됨',  }  현지의 obj = makeDefaultProtectionObject{   보호 카테고리 = 보호 카테고리,  }  자신:assert String 포함(   '성적 일치',   obj:make Protection Category(),   진실의  ) 끝.  기능. 스위트:test Protection Category Precedence 7()  -- 3개의 키에 일치하기 전에 일치하는 4개의 키가 나타나는지 테스트합니다.  현지의 보호 카테고리 = {   [makeDefaultProtectionCategoryKey{액션. = '모두'}] = '4개의 키',   [makeDefaultProtectionCategoryKey{액션. = '모두', 수평 = '모두'}] = '세 개의 열쇠',  }  현지의 obj = makeDefaultProtectionObject{   보호 카테고리 = 보호 카테고리,  }  자신:assert String 포함(   '4개의 키',   obj:make Protection Category(),   진실의  ) 끝.  기능. 스위트:test Protection Category Precedence 8()  -- 2개의 키를 일치시키기 전에 3개의 키가 일치하는지 테스트합니다.  현지의 보호 카테고리 = {   [makeProtectionCategoryKey{이유 = d.이유, 액션. = d.액션., 수평 = d.수평}] = '세 개의 열쇠',   [makeProtectionCategoryKey{이유 = d.이유, 액션. = d.액션.}] = '키 두 개',  }  현지의 obj = makeDefaultProtectionObject{   보호 카테고리 = 보호 카테고리,  }  자신:assert String 포함(   '세 개의 열쇠',   obj:make Protection Category(),   진실의  ) 끝.  기능. 스위트:test Protection Category Precedence 9()  -- 1개의 키에 일치하기 전에 2개의 키가 일치하는지 테스트합니다.  현지의 보호 카테고리 = {   [makeProtectionCategoryKey{액션. = d.액션., 수평 = d.수평}] = '키 두 개',   [makeProtectionCategoryKey{액션. = d.액션.}] = '하나의 키',  }  현지의 obj = makeDefaultProtectionObject{   보호 카테고리 = 보호 카테고리,  }  자신:assert String 포함(   '키 두 개',   obj:make Protection Category(),   진실의  ) 끝.  기능. 스위트:test Protection Category Precedence 10()  -- 일치하는 1개의 키가 0개의 키보다 먼저 나타나는지 테스트합니다.  현지의 보호 카테고리 = {   [makeProtectionCategoryKey{액션. = d.액션.}] = '하나의 키',   [makeProtectionCategoryKey()] = '키 없음',  }  현지의 obj = makeDefaultProtectionObject{   보호 카테고리 = 보호 카테고리,  }  자신:assert String 포함(   '하나의 키',   obj:make Protection Category(),   진실의  ) 끝.  기능. 스위트:test Protection Category Alls()  -- 'all all all'이 동작하는지 테스트합니다.  현지의 보호 카테고리 = {   [makeProtectionCategoryKey()] = '키 없음',  }  현지의 obj = makeDefaultProtectionObject{   보호 카테고리 = 보호 카테고리,  }  자신:assert String 포함(   '키 없음',   obj:make Protection Category(),   진실의  ) 끝.  기능. 스위트:testProtectionCategoryNoFalseMatches()  --당신이 해서는 안 되는 것과 일치하지 않는 것을 테스트합니다.  현지의 보호 카테고리 = {   [makeProtectionCategoryKey{기한 만료 = '푸'}]    = 'foo foo foo foo',   [makeProtectionCategoryKey{네임스페이스 = '푸'}] = 'foo foo foo foo',   [makeProtectionCategoryKey{이유 = '푸'}]    = 'reason foo',   [makeProtectionCategoryKey{수평 = '푸'}]     = '레벨 foo',   [makeProtectionCategoryKey{액션. = '푸'}]    = '액션 foo',   [makeProtectionCategoryKey()]                  = '키 없음',  }  현지의 obj = makeDefaultProtectionObject{   보호 카테고리 = 보호 카테고리,  }  자신:assert String 포함(   '키 없음',   obj:make Protection Category(),   진실의  ) 끝.  기능. 스위트:testProtectionCategoryProtected()  -- 보호된 페이지가 일종의 카테고리 링크를 생성하는지 테스트합니다.  현지의 보호 카테고리 = {   [makeProtectionCategoryKey()] = '키 없음',  }  현지의 obj = makeDefaultProtectionObject{   보호 카테고리 = 보호 카테고리,  }  자신:assert String 포함(   '^%[%] [카테고리:*%]%]
                
, obj:make Protection Category() ) 끝. 기능. 스위트:testProtectionCategoryNotProtected() -- 보호되지 않은 페이지가 공백 문자열을 생성하는지 테스트합니다. 현지의 보호 카테고리 = { [makeProtectionCategoryKey()] = '키 없음', } 현지의 obj = 보호..신규( {}, makeConfig(구성){보호 카테고리 = 보호 카테고리}, makeTitleObject(makeTitle오브젝트){페이지입니다. = d.페이지입니다., '편집', 제로} ) 자신:assert Equals(동일)('', obj:make Protection Category()) 끝. 기능. 스위트:test Protection Category No Match() -- 어떤 카테고리에도 일치하지 않는 보호된 페이지를 테스트합니다. -- 빈 문자열을 생성합니다. 현지의 obj = makeDefaultProtectionObject() 자신:assert Equals(동일)('', obj:make Protection Category()) 끝. 기능. 스위트:test Protection Category Expiry부정() -- 무기한 보호가 "indef" 만료 조각과 일치하는지 테스트합니다. 현지의 obj = makeDefaultProtectionObject() obj._cfg.보호 카테고리 = { [makeProtectionCategoryKey{기한 만료 = '실패', 액션. = '자동 보기'}] = '유효기간', } obj.액션. = '자동 보기' obj.수평 = '자동 확인됨' obj.기한 만료 = '실패' 자신:assert String 포함('유효기간', obj:make Protection Category(), 진실의) 끝. 기능. 스위트:test Protection Category Expiry온도() -- 임시 보호가 "temp" 만료 조각과 일치하는지 테스트합니다. 현지의 obj = makeDefaultProtectionObject() obj._cfg.보호 카테고리 = { [makeProtectionCategoryKey{기한 만료 = '실패', 액션. = '자동 보기'}] = '유효기간', } obj.액션. = '자동 보기' obj.수평 = '자동 확인됨' obj.기한 만료 = d.유효 기간 자신:assert String 포함('유효기간', obj:make Protection Category(), 진실의) 끝. 기능. 스위트:test Protection Category No Expiry() -- 만료 세트가 없는 페이지가 "indef" 또는 "temp"와 일치하지 않는지 테스트합니다. 현지의 보호 카테고리 = { [makeProtectionCategoryKey{기한 만료 = '실패', 액션. = '자동 보기' }] = '유효기간', [makeProtectionCategoryKey{기한 만료 = '실패', 액션. = '자동 보기' }] = '무기한 만료', [makeProtectionCategoryKey()] = '일치 없음' } 현지의 obj = 보호..신규( {}, makeConfig(구성){보호 카테고리 = 보호 카테고리}, 보호하다타이틀 오브젝트() ) 자신:assert String 포함('일치 없음', obj:make Protection Category(), 진실의) 끝. 기능. 스위트:testProtectionCategoryNamespaceFragment() -- cfg.categoryNamespaceKeys 값이 기능하는지 테스트합니다. 현지의 보호 카테고리 = { [makeProtectionCategoryKey{네임스페이스 = '푸바'}] = 일치하는 것을 찾았습니다., } 현지의 obj = 보호..신규( {}, makeConfig(구성){ 보호 카테고리 = 보호 카테고리, 카테고리 네임스페이스 키 = {[10] = '푸바'} -- 템플릿 이름 공간 }, makeTitleObject(makeTitle오브젝트){페이지입니다. = '템플릿:푸우, 편집하다 = '자동 확인됨'} ) 자신:assert String 포함(일치하는 것을 찾았습니다., obj:make Protection Category(), 진실의) 끝. 기능. 스위트:test Protection Category Talk() -- 토크 페이지가 "talk" 네임스페이스 프래그먼트와 일치하는지 테스트합니다. 현지의 보호 카테고리 = { [makeProtectionCategoryKey{네임스페이스 = '말하다'}] = '토크 네임스페이스', } 현지의 obj = 보호..신규( {}, makeConfig(구성){보호 카테고리 = 보호 카테고리}, makeTitleObject(makeTitle오브젝트){페이지입니다. = '템플릿 토크:예', 편집하다 = '자동 확인됨'} ) 자신:assert String 포함('토크 네임스페이스', obj:make Protection Category(), 진실의) 끝. -- 올바르지 않다 기능. 스위트:테스트 보호올바르지 않음 True 1() 현지의 obj = makeDefaultProtectionObject() 기능. obj:보호되고 있다() 돌아가다 거짓의 끝. 자신:assert True(참)(obj:올바르지 않다(), '보호:isProtected()가 false를 반환함') 끝. 기능. 스위트:테스트 보호오답트루2() 현지의 obj = makeDefaultProtectionObject() 기능. obj:보호되고 있다() 돌아가다 진실의 끝. obj.기한 만료 = 0 자신:assert True(참)(obj:올바르지 않다(), '페이지가 보호되고 유효기간이 지났습니다.') 끝. 기능. 스위트:테스트 보호부정 False 1() 현지의 obj = makeDefaultProtectionObject() 기능. obj:보호되고 있다() 돌아가다 진실의 끝. obj.기한 만료 = d.유효 기간 자신:assert False(거짓)(obj:올바르지 않다(), '페이지는 보호되고 만료는 향후') 끝. 기능. 스위트:테스트 보호부정 False2() 현지의 obj = makeDefaultProtectionObject() obj.기한 만료 = 제로 기능. obj:보호되고 있다() 돌아가다 진실의 끝. 자신:assert False(거짓)(obj:올바르지 않다(), '페이지가 보호되고 만료가 설정되지 않았습니다.') 끝. -- isTemplateProtectedNonTemplate 기능. 스위트:테스트 보호Template Protected Non Template False 1() 현지의 obj = makeDefaultProtectionObject() obj.수평 = '자동 확인됨' 자신:assert False(거짓)(obj:isTemplateProtectedNonTemplate(), '페이지가 보호되고 있습니다.') 끝. 기능. 스위트:테스트 보호TemplateProtected NonTemplateFalse2() 현지의 obj = makeDefaultProtectionObject() obj.수평 = '편집자' obj.액션. = '편집' rawset(원래 세트)(obj.직함, '실패', 10) -- 템플릿 공간 자신:assert False(거짓)(obj:isTemplateProtectedNonTemplate(), '프로텍트된 템플릿') 끝. 기능. 스위트:테스트 보호TemplateProtected NonTemplateFalse3() 현지의 obj = makeDefaultProtectionObject() obj.수평 = '편집자' obj.액션. = '편집' rawset(원래 세트)(obj.직함, '실패', 828) -- 모듈 영역 자신:assert False(거짓)(obj:isTemplateProtectedNonTemplate(), '모듈 보호') 끝. 기능. 스위트:테스트 보호TemplateProtected NonTemplateFalse4() 현지의 obj = makeDefaultProtectionObject() obj.수평 = '오브모터' obj.액션. = '이동 rawset(원래 세트)(obj.직함, '실패', 10) -- 템플릿 공간 자신:assert False(거짓)(obj:isTemplateProtectedNonTemplate(), '프로세서 이동 보호 템플릿') 끝. 기능. 스위트:테스트 보호TemplateProtected NonTemplateFalse5() 현지의 obj = makeDefaultProtectionObject() obj.수평 = '오브모터' obj.액션. = '이동 rawset(원래 세트)(obj.직함, '실패', 828) -- 모듈 영역 자신:assert False(거짓)(obj:isTemplateProtectedNonTemplate(), '동작 보호 모듈') 끝. 기능. 스위트:테스트 보호Template Protected Non Template True 1() 현지의 obj = makeDefaultProtectionObject() obj.수평 = '편집자' obj.액션. = '자동 보기' 자신:assert True(참)(obj:isTemplateProtectedNonTemplate(), '액션이 편집 또는 이동되지 않음') 끝. 기능. 스위트:테스트 보호TemplateProtected NonTemplateTrue2() 현지의 obj = makeDefaultProtectionObject() obj.수평 = '편집자' rawset(원래 세트)(obj.직함, '실패', 2) -- 사용자 공간 자신:assert True(참)(obj:isTemplateProtectedNonTemplate(), '액션이 템플릿 또는 모듈 공간에 없습니다.') 끝. -- make Category Links 기능. 스위트:test Protection Make Category Links All Present() 현지의 obj = makeDefaultProtectionObject() obj._cfg.메시지 = { ['category-category-disply'] = '잘못된 카테고리', ['category-category-disply'] = '템플릿 카테고리' } 기능. obj:make Protection Category() 돌아가다 '[카테고리:보호 카테고리 ' .. d.기본 텍스트 .. ']]' 끝. 위해서 _, 들판 아이페어{'잘못됨', 'isTemplateProtectedNonTemplate'} 하다 obj[들판] = 기능. () 돌아가다 진실의 끝. 끝. 자신:assert Equals(동일)( '[카테고리:보호 카테고리 ' .. d.기본 텍스트 .. ']]' .. '[카테고리:올바르지 않은 카테고리 ' .. d.기본 텍스트 .. ']]' .. '[카테고리:템플릿 카테고리' .. d.기본 텍스트 .. ']]', obj:make Category Links(메이크 카테고리 링크)() ) 끝. 기능. 스위트:test Protection Make Category Links AllAbsent() 현지의 obj = makeDefaultProtectionObject() obj._cfg.메시지 = { ['category-category-disply'] = '유료 카테고리', ['category-category-disply'] = '잘못된 카테고리', ['category-category-disply'] = '템플릿 카테고리' } 기능. obj:make Protection Category() 돌아가다 '' 끝. 위해서 _, 들판 아이페어{'요구 기한', '잘못됨', 'isTemplateProtectedNonTemplate'} 하다 obj[들판] = 기능. () 돌아가다 거짓의 끝. 끝. 자신:assert Equals(동일)('', obj:make Category Links(메이크 카테고리 링크)()) 끝. -------------------------------------------------------------------------------- -- BLURB 클래스 테스트 -------------------------------------------------------------------------------- -- 초기화 기능. 스위트:테스트 신규() 현지의 obj = 블러브.신규({'푸'}, {'바'}, {'바즈}) 자신:assert Equals(동일)('푸', obj._protection Obj[1]) 자신:assert Equals(동일)('바', obj._sys[1]) 자신:assert Equals(동일)('바즈, obj._cfg[1]) 끝. -- _format Date 기능. 스위트:testBlurbFormatDateStandard (테스트블러브포맷() 현지의 obj = make Default Blurb 객체() 자신:assert Equals(동일)(1970년 1월 1일, obj:_포맷 날짜(0)) 끝. 기능. 스위트:testBlubFormatDateCustom() 현지의 obj = make Default Blurb 객체{메시지 = {['filename-date-format'] = 'YY F F J'}} 자신:assert Equals(동일)(1970년 1월 1일, obj:_포맷 날짜(0)) 끝. 기능. 스위트:testBlurbFormatDateError(테스트블러브포맷() 현지의 obj = make Default Blurb 객체() 자신:assert Equals(동일)(제로, obj:_포맷 날짜('푸')) 끝. -- _get Expanded Message 기능. 스위트:testBlubGetExpandedMessage() 현지의 obj = make Default Blurb 객체() 기능. obj:_치환 파라미터(s) 돌아가다 '실행' .. s 끝. obj._cfg.메시지 = {['테스트 키'] = '테스트 메시지'} 자신:assert Equals(동일)('테스트 메시지 표시', obj:_getExpandedMessage('테스트 키')) 끝. -- _substitute Parameters 기능. 스위트:testBlubSubstitute 파라미터() 현지의 obj = make Default Blurb 객체() obj._makeCurrentVersion 파라미터 = 기능. () 돌아가다 '1' 끝. obj._makeEditRequest 파라미터 = 기능. () 돌아가다 '2' 끝. obj._makeExpiry 파라미터 = 기능. () 돌아가다 '3' 끝. obj._makeExplanationBlub 파라미터 = 기능. () 돌아가다 '4' 끝. obj._makeImageLink 파라미터 = 기능. () 돌아가다 '5' 끝. obj._makeIntroBurb 파라미터 = 기능. () 돌아가다 '6' 끝. obj._makeIntroFragment 파라미터 = 기능. () 돌아가다 '7' 끝. obj._makePagtype 파라미터 = 기능. () 돌아가다 '8' 끝. obj._make Protection Blurb 파라미터 = 기능. () 돌아가다 '9' 끝. obj._makeProtectionDate파라미터 = 기능. () 돌아가다 '10' 끝. obj._메이크 프로텍션레벨 파라미터 = 기능. () 돌아가다 '11' 끝. obj._makeProtectionLog 파라미터 = 기능. () 돌아가다 '12' 끝. obj._makeTalkPage 파라미터 = 기능. () 돌아가다 '13' 끝. obj._make Tool tip Blurb 파라미터 = 기능. () 돌아가다 '14' 끝. obj._makeTooltipFragment 파라미터 = 기능. () 돌아가다 '15' 끝. obj._makeVandalTemplate 파라미터 = 기능. () 돌아가다 '16' 끝. 현지의 메시지 = '${CURRENTVERSION}-' .. '${EDITREQUEST}-' .. '${EXPIRY}-' .. '${설명BLURB}-' .. '${IMAGELINK}-' .. '${INTroBLURB}-' .. '${INTroFRAGMENT}-' .. '${PAGTYPE}-' .. '${ProtectionBLURB}-' .. '${PROTECTION DATE}-' .. '${PROTECTION LEVEL}-' .. '${PROTECTIONLOG}-' .. '${TalkPAGE}-' .. '${TOOL TIPBLURB}-' .. '${TOOL TIP Fragment}-' .. '${VANDAL}' 현지의 기대됩니다 = '1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16' 자신:assert Equals(동일)(기대됩니다, obj:_치환 파라미터(메시지)) 끝. -- makeCurrentVersion파라미터 기능. 스위트:testBlubMakeCurrentVersionParameterEdit() 현지의 obj = make Default Blurb 객체() obj._protection Obj.액션. = '편집' obj._cfg.메시지['current-version-edit-display'] = '표시 편집' 자신:assert Equals(동일)( '[//en.wikipedia.org/w/index.php?title=' .. .uri.부호화(d.페이지입니다.) .. '&action=이력 편집 표시', obj:_makeCurrentVersion 파라미터() ) 끝. 기능. 스위트:testBlubMakeCurrentVersionParameterMove() 현지의 obj = make Default Blurb 객체() obj._protection Obj.액션. = '이동 obj._cfg.메시지['현재 버전 이동 표시'] = '표시 이동' 자신:assert Equals(동일)( '[//en.wikipedia.org/w/index.php?title=' .. .uri.부호화('스페셜:로그') .. '&page=' .. .uri.부호화(d.페이지입니다.) .. '&type=이동표시', obj:_makeCurrentVersion 파라미터() ) 끝. -- _makeEditRequestParameter 기능. 스위트:testBlubMakeEditRequestParameterLevels() -- 편집 요청은 직접 테스트할 수 없습니다.그것은 편집 요청의 책임이기 때문입니다. -- [[모듈:편집요청 제출]). 단, 다른 것을 확인할 수 있습니다. -- 다양한 보호 수준에 대한 출력입니다. 현지의 기능. makeBlub Object With Levels(액션., 수평) 현지의 obj = make Default Blurb 객체() obj._protection Obj.액션. = 액션. obj._protection Obj.수평 = 수평 obj._cfg.메시지['edit-request-display'] = '디스플레이' 돌아가다 obj 끝. 현지의 obj1 = makeBlub Object With Levels('편집', '자동 확인됨') 현지의 obj2 = makeBlub Object With Levels('편집', '편집자') 현지의 obj3 = makeBlub Object With Levels('편집', 'sysop') 현지의 obj4 = makeBlub Object With Levels('이동, '편집자') 자신:assert False(거짓)(obj1:_makeEditRequest 파라미터() == obj2:_makeEditRequest 파라미터()) 자신:assert False(거짓)(obj2:_makeEditRequest 파라미터() == obj3:_makeEditRequest 파라미터()) 자신:assert Equals(동일)(obj3:_makeEditRequest 파라미터(), obj4:_makeEditRequest 파라미터()) 끝. 기능. 스위트:testBlubMakeEditRequestParameterLink() -- 편집 요청 링크에 항상 기대할 수 있는 기능이 있는지 확인합니다. --그곳에 있는 것.나머지는 [모듈]에 의해 변경될 수 있습니다.편집 요청 제출]] --언제든지 테스트하지 않습니다. 현지의 obj = make Default Blurb 객체() obj._protection Obj.액션. = '편집' obj._protection Obj.수평 = '자동 확인됨' obj._cfg.메시지['edit-request-display'] = '편집 요청 표시' 자신:assert String 포함( '//en.wikipedia.org/w/index.php?', obj:_makeEditRequest 파라미터(), 진실의 ) 자신:assert String 포함( 'action=편집', obj:_makeEditRequest 파라미터(), 진실의 ) 자신:assert String 포함( '제목=[a-zA-Z0-9%_]*[tT]토크', obj:_makeEditRequest 파라미터(), 거짓의 ) 자신:assert String 포함( '편집 요청 표시', obj:_makeEditRequest 파라미터(), 진실의 ) 끝. -- _makeExpiry 파라미터 기능. 스위트:testBurbMakeExpiry 파라미터온도() 현지의 obj = make Default Blurb 객체() obj._protection Obj.기한 만료 = 0 기능. obj:_포맷 날짜(숫자) 돌아가다 '최종일은 ' 입니다.' .. 스트링(숫자) 끝. 자신:assert Equals(동일)('최종일은 0'입니다., obj:_makeExpiry 파라미터()) 끝. 기능. 스위트:testBurbMakeExpiry 파라미터 기타() 현지의 obj = make Default Blurb 객체() obj._protection Obj.기한 만료 = '실패' 기능. obj:_포맷 날짜(숫자) 돌아가다 '최종일은 ' 입니다.' .. 스트링(숫자) 끝. 자신:assert Equals(동일)('실패', obj:_makeExpiry 파라미터()) 끝. -- _makeExplanationBlub 파라미터 기능. 스위트:testBurbMakeExplanationBurb 파라미터() 현지의 obj = make Default Blurb 객체() obj._protection Obj.액션. = '편집' obj._protection Obj.수평 = '자동 확인됨' rawset(원래 세트)(obj._protection Obj.직함, 'isTalkPage', 진실의) obj._cfg.설명 = { 편집하다 = { 자동 확인됨 = { 말해라. = 'edit-autoconfirmed-talk', 체납 = 'edit-autoconfirmed-default' }, 체납 = { 말해라. = 'edit-default-talk', 체납 = 'edit-default-default' } } } 기능. obj:_치환 파라미터(메시지) 돌아가다 메시지 끝. 자신:assert Equals(동일)( 'edit-autoconfirmed-talk', obj:_makeExplanationBlub 파라미터() ) obj._cfg.설명.편집하다.자동 확인됨.말해라. = 제로 자신:assert Equals(동일)( 'edit-autoconfirmed-default', obj:_makeExplanationBlub 파라미터() ) obj._cfg.설명.편집하다.자동 확인됨.체납 = 제로 자신:assert Equals(동일)( 'edit-default-talk', obj:_makeExplanationBlub 파라미터() ) obj._cfg.설명.편집하다.체납.말해라. = 제로 자신:assert Equals(동일)( 'edit-default-default', obj:_makeExplanationBlub 파라미터() ) obj._cfg.설명.편집하다.체납.체납 = 제로 자신:assert Error(아스텐 에러)( obj._makeExplanationBlub 파라미터, {obj}, '액션 "edit"에 대한 설명을 찾을 수 없습니다.' .. ' 레벨 '자동 확인' 및 '토크' 키 '토크' ) 끝. 기능. 스위트:testBurbMakeExplanationBurb 파라미터 스페셜 케이스() 현지의 obj = make Default Blurb 객체() rawset(원래 세트)(obj._protection Obj.직함, '실패', 8) 기능. obj:_getExpandedMessage(열쇠) 돌아가다 '열쇠는' .. 열쇠 끝. 자신:assert Equals(동일)( '핵심은 설명이다' '비밀보호', obj:_makeExplanationBlub 파라미터() ) 끝. -- _makeImageLink 파라미터 기능. 스위트:testBlubMakeImageLink 파라미터() 현지의 obj = make Default Blurb 객체() obj._protection Obj.액션. = '이동 obj._protection Obj.수평 = 'sysop' obj._cfg.image Links(이미지 링크) = { 편집하다 = { 시스템 = '편집-sysop', 체납 = 'edit-default' }, 움직이다 = { 시스템 = 'move-sysop', 체납 = 'move-default' } } 기능. obj:_치환 파라미터(메시지) 돌아가다 메시지 끝. 자신:assert Equals(동일)( 'move-sysop', obj:_makeImageLink 파라미터() ) obj._cfg.image Links(이미지 링크).움직이다.시스템 = 제로 자신:assert Equals(동일)( 'move-default', obj:_makeImageLink 파라미터() ) obj._cfg.image Links(이미지 링크).움직이다.체납 = 제로 자신:assert Equals(동일)( 'edit-default', obj:_makeImageLink 파라미터() ) 끝. --_makeIntroBlub 파라미터 기능. 스위트:testBlubMakeIntroBlub 파라미터() 현지의 obj = make Default Blurb 객체() 기능. obj._protection Obj:일시적() 돌아가다 진실의 끝. 기능. obj:_getExpandedMessage(열쇠) 돌아가다 '열쇠는' .. 열쇠 끝. 자신:assert Equals(동일)( '열쇠는 인트로-블러브-블러브', obj:_makeIntroBurb 파라미터() ) 기능. obj._protection Obj:일시적() 돌아가다 거짓의 끝. 자신:assert Equals(동일)( '열쇠는 인트로-블러브-노익스피리', obj:_makeIntroBurb 파라미터() ) 끝. --_makeIntro Fragment 파라미터 기능. 스위트:testBlubMakeIntroFragment 파라미터() 현지의 obj = make Default Blurb 객체() 기능. obj._protection Obj:일시적() 돌아가다 진실의 끝. 기능. obj:_getExpandedMessage(열쇠) 돌아가다 '열쇠는' .. 열쇠 끝. 자신:assert Equals(동일)( '열쇠는 인트로-인트로-인트로-프로젝트', obj:_makeIntroFragment 파라미터() ) 기능. obj._protection Obj:일시적() 돌아가다 거짓의 끝. 자신:assert Equals(동일)( '열쇠는 intro-dispiry-noexpiry', obj:_makeIntroFragment 파라미터() ) 끝. -- _make Pagtype 파라미터 기능. 스위트:testPagtype 파라미터() 현지의 obj = make Default Blurb 객체() rawset(원래 세트)(obj._protection Obj.직함, '실패', 3) obj._cfg.페이지 타입 = { [3] = '사용자 토크 페이지', 체납 = '기본 페이지' } 자신:assert Equals(동일)( '사용자 토크 페이지', obj:_makePagtype 파라미터() ) obj._cfg.페이지 타입[3] = 제로 자신:assert Equals(동일)( '기본 페이지', obj:_makePagtype 파라미터() ) obj._cfg.페이지 타입.체납 = 제로 자신:assert Error(아스텐 에러)( obj._makePagtype 파라미터, {obj}, '기본 페이지 유형이 정의되지 않았습니다.' ) 끝. -- _make Protection Blurb 파라미터 기능. 스위트:testBlubMakeProtectionBlub 파라미터() 현지의 obj = make Default Blurb 객체() obj._protection Obj.액션. = '이동 obj._protection Obj.수평 = 'sysop' obj._cfg.보호 기능 = { 편집하다 = { 시스템 = '편집-sysop', 체납 = 'edit-default' }, 움직이다 = { 시스템 = 'move-sysop', 체납 = 'move-default' } } 기능. obj:_치환 파라미터(메시지) 돌아가다 메시지 끝. 자신:assert Equals(동일)( 'move-sysop', obj:_make Protection Blurb 파라미터() ) obj._cfg.보호 기능.움직이다.시스템 = 제로 자신:assert Equals(동일)( 'move-default', obj:_make Protection Blurb 파라미터() ) obj._cfg.보호 기능.움직이다.체납 = 제로 자신:assert Equals(동일)( 'edit-default', obj:_make Protection Blurb 파라미터() ) obj._cfg.보호 기능.편집하다.체납 = 제로 자신:assert Error(아스텐 에러)( obj._make Protection Blurb 파라미터, {obj}, '보호 Blurbs.edit.default에 대해 정의된 보호 블러브 없음' ) 끝. -- _makeProtectionDate파라미터 기능. 스위트:testBurbMakeProtection 날짜 파라미터() 현지의 obj = make Default Blurb 객체() obj._protection Obj.보호 날짜 = 0 기능. obj:_포맷 날짜(숫자) 돌아가다 '최종일은 ' 입니다.' .. 스트링(숫자) 끝. 자신:assert Equals(동일)('최종일은 0'입니다., obj:_makeProtectionDate파라미터()) obj._protection Obj.보호 날짜 = '실패' 자신:assert Equals(동일)('실패', obj:_makeProtectionDate파라미터()) 끝. -- _makeProtection레벨 파라미터 기능. 스위트:testBurbMakeProtection(테스트버전 보호)레벨 파라미터() 현지의 obj = make Default Blurb 객체() obj._protection Obj.액션. = '이동 obj._protection Obj.수평 = 'sysop' obj._cfg.보호.레벨 = { 편집하다 = { 시스템 = '편집-sysop', 체납 = 'edit-default' }, 움직이다 = { 시스템 = 'move-sysop', 체납 = 'move-default' } } 기능. obj:_치환 파라미터(메시지) 돌아가다 메시지 끝. 자신:assert Equals(동일)( 'move-sysop', obj:_메이크 프로텍션레벨 파라미터() ) obj._cfg.보호.레벨.움직이다.시스템 = 제로 자신:assert Equals(동일)( 'move-default', obj:_메이크 프로텍션레벨 파라미터() ) obj._cfg.보호.레벨.움직이다.체납 = 제로 자신:assert Equals(동일)( 'edit-default', obj:_메이크 프로텍션레벨 파라미터() ) obj._cfg.보호.레벨.편집하다.체납 = 제로 자신:assert Error(아스텐 에러)( obj._메이크 프로텍션레벨 파라미터, {obj}, '보호 레벨이 정의되어 있지 않습니다.'Levels.edit.default' ) 끝. -- _make Protection Log 파라미터 기능. 스위트:testBlubMakeProtectionLog 파라미터PC() 현지의 obj = make Default Blurb 객체() obj._protection Obj.액션. = '자동 보기' 기능. obj:_getExpandedMessage(열쇠) 돌아가다 '열쇠는' .. 열쇠 끝. 자신:assert String 포함( '^%[/en%]w/index% 입니다.'php?', obj:_makeProtectionLog 파라미터(), 거짓의 ) 자신:assert String 포함( 'syslog=' .. .uri.부호화('스페셜:로그'), obj:_makeProtectionLog 파라미터(), 진실의 ) 자신:assert String 포함( 'type=syslog', obj:_makeProtectionLog 파라미터(), 진실의 ) 자신:assert String 포함( '페이지=' .. .uri.부호화(d.페이지입니다.), obj:_makeProtectionLog 파라미터(), 진실의 ) 자신:assert String 포함( 키는 pc%-log%-display%입니다.
$$SIDE_BOTTOM$$
    $$BOTTOM$$