jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/392213 )
Change subject: Introduces constants for Page: pages quality levels ...................................................................... Introduces constants for Page: pages quality levels Change-Id: I3a971f0b6ecf95485dbc98c1ece861c18e24a860 --- M includes/page/PageLevel.php M tests/phpunit/page/PageContentTest.php M tests/phpunit/page/PageLevelTest.php 3 files changed, 69 insertions(+), 47 deletions(-) Approvals: jenkins-bot: Verified Tpt: Looks good to me, approved diff --git a/includes/page/PageLevel.php b/includes/page/PageLevel.php index 39951ea..da72342 100644 --- a/includes/page/PageLevel.php +++ b/includes/page/PageLevel.php @@ -12,10 +12,16 @@ */ class PageLevel { + const WITHOUT_TEXT = 0; + const NOT_PROOFREAD = 1; + const PROBLEMATIC = 2; + const PROOFREAD = 3; + const VALIDATED = 4; + /** * @var integer proofreading level of the page */ - protected $level = 1; + protected $level = self::NOT_PROOFREAD; /** * @var User|null last user of the page @@ -27,7 +33,7 @@ * @param int $level * @param User|null $user */ - public function __construct( $level = 1, User $user = null ) { + public function __construct( $level = self::NOT_PROOFREAD, User $user = null ) { $this->level = $level; $this->user = $user; } @@ -54,7 +60,7 @@ * @return bool */ public function isValid() { - return is_integer( $this->level ) && 0 <= $this->level && $this->level <= 4; + return is_int( $this->level ) && 0 <= $this->level && $this->level <= 4; } /** @@ -68,11 +74,14 @@ return false; } - return - $this->level === $that->getLevel() && - ( $this->user === null && $that->getUser() === null || - $this->user instanceof User && $that->getUser() instanceof User && - $this->user->getName() === $that->getUser()->getName() ); + return $this->level === $that->getLevel() && + ( + ( $this->user === null && $that->getUser() === null ) || + ( + ( $this->user instanceof User && $that->getUser() instanceof User ) && + ( $this->user->getName() === $that->getUser()->getName() ) + ) + ); } /** @@ -89,14 +98,17 @@ } $fromUser = ( $this->user instanceof User ) ? $this->user : $to->getUser(); - if ( $to->getLevel() === 4 && ( $this->level < 3 || $this->level === 3 && - $fromUser->getName() === $to->getUser()->getName() ) && + return !( + $to->getLevel() === self::VALIDATED && + ( + $this->level < self::PROOFREAD || + ( + $this->level === self::PROOFREAD && + $fromUser !== null && $fromUser->getName() === $to->getUser()->getName() + ) + ) && !$to->getUser()->isAllowed( 'pagequality-admin' ) - ) { - return false; - } - - return true; + ); } /** diff --git a/tests/phpunit/page/PageContentTest.php b/tests/phpunit/page/PageContentTest.php index 7f18235..67b0e9f 100644 --- a/tests/phpunit/page/PageContentTest.php +++ b/tests/phpunit/page/PageContentTest.php @@ -239,7 +239,7 @@ ], [ Status::newFatal( 'proofreadpage_notallowedtext' ), - self::newContent( '', '', '', 4 ) + self::newContent( '', '', '', PageLevel::VALIDATED ) ] ]; } diff --git a/tests/phpunit/page/PageLevelTest.php b/tests/phpunit/page/PageLevelTest.php index 1105909..dc1e471 100644 --- a/tests/phpunit/page/PageLevelTest.php +++ b/tests/phpunit/page/PageLevelTest.php @@ -7,7 +7,7 @@ /** * @group ProofreadPage - * @covers ProofreadPageLevel + * @covers PageLevel */ class PageLevelTest extends ProofreadPageTestCase { @@ -78,53 +78,63 @@ return [ [ - new PageLevel( 1, $testUser ), - new PageLevel( 2, $ipUser ), + new PageLevel( PageLevel::NOT_PROOFREAD, $testUser ), + new PageLevel( PageLevel::NOT_PROOFREAD, $ipUser ), + true + ], + [ + new PageLevel( PageLevel::NOT_PROOFREAD, $testUser ), + new PageLevel( PageLevel::NOT_PROOFREAD, $test2User ), + true + ], + [ + new PageLevel( PageLevel::NOT_PROOFREAD, null ), + new PageLevel( PageLevel::NOT_PROOFREAD, $ipUser ), + true + ], + [ + new PageLevel( PageLevel::PROOFREAD, null ), + new PageLevel( PageLevel::PROOFREAD, $ipUser ), + true + ], + [ + new PageLevel( PageLevel::PROOFREAD, $testUser ), + new PageLevel( PageLevel::VALIDATED, $testUser ), false ], [ - new PageLevel( 1, $testUser ), - new PageLevel( 2, $test2User ), - true - ], - [ - new PageLevel( 1, null ), - new PageLevel( 1, $ipUser ), - true - ], - [ - new PageLevel( 3, $testUser ), - new PageLevel( 4, $testUser ), + new PageLevel( PageLevel::NOT_PROOFREAD, $testUser ), + new PageLevel( PageLevel::VALIDATED, $test2User ), false ], [ - new PageLevel( 1, $testUser ), - new PageLevel( 4, $test2User ), + new PageLevel( PageLevel::NOT_PROOFREAD, null ), + new PageLevel( PageLevel::VALIDATED, $testUser ), false ], [ - new PageLevel( 1, null ), - new PageLevel( 4, $testUser ), - false - ], - [ - new PageLevel( 3, $testUser ), - new PageLevel( 4, $test3User ), + new PageLevel( PageLevel::PROOFREAD, $testUser ), + new PageLevel( PageLevel::VALIDATED, $test3User ), true ], [ - new PageLevel( 3, $test3User ), - new PageLevel( 4, $test3User ), + new PageLevel( PageLevel::PROOFREAD, $test3User ), + new PageLevel( PageLevel::VALIDATED, $test3User ), true ], [ - new PageLevel( 3, null ), - new PageLevel( 4, $test3User ), + new PageLevel( PageLevel::PROOFREAD, null ), + new PageLevel( PageLevel::VALIDATED, $test3User ), true ], [ - new PageLevel( 1, $test3User ), - new PageLevel( 4, $test3User ), + new PageLevel( PageLevel::NOT_PROOFREAD, $test3User ), + new PageLevel( PageLevel::VALIDATED, $test3User ), + true + ], + [ + new PageLevel( PageLevel::VALIDATED, $testUser ), + new PageLevel( PageLevel::VALIDATED, $testUser ), true ], ]; @@ -133,7 +143,7 @@ /** * @dataProvider isChangeAllowedProvider */ - public function testIsChangeAllowed( $old, $new, $result ) { + public function testIsChangeAllowed( PageLevel $old, PageLevel $new, $result ) { $this->assertEquals( $result, $old->isChangeAllowed( $new ) ); } -- To view, visit https://gerrit.wikimedia.org/r/392213 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I3a971f0b6ecf95485dbc98c1ece861c18e24a860 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/ProofreadPage Gerrit-Branch: master Gerrit-Owner: Tpt <thoma...@hotmail.fr> Gerrit-Reviewer: Tpt <thoma...@hotmail.fr> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits