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

Reply via email to