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 <[email protected]>
Gerrit-Reviewer: Tpt <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits