X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=tests%2Fphpunit%2Fincludes%2Fspecialpage%2FChangesListSpecialPageTest.php;h=d612b538d0917b08c58a94f51b650034d3c80617;hp=9b81d6d77df0d524cef47fd49ebdfefcf892ebc1;hb=e4277f170be4cb8aee0fe407793db47a94ec24c2;hpb=a15bb6bb4fbc7617ed58e0bb9b73172f45b4e437 diff --git a/tests/phpunit/includes/specialpage/ChangesListSpecialPageTest.php b/tests/phpunit/includes/specialpage/ChangesListSpecialPageTest.php index 9b81d6d77d..d612b538d0 100644 --- a/tests/phpunit/includes/specialpage/ChangesListSpecialPageTest.php +++ b/tests/phpunit/includes/specialpage/ChangesListSpecialPageTest.php @@ -199,10 +199,15 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase } public function testRcHidemyselfFilter() { + $this->setMwGlobals( 'wgActorTableSchemaMigrationStage', MIGRATION_WRITE_BOTH ); + $this->overrideMwServices(); + $user = $this->getTestUser()->getUser(); + $user->getActorId( wfGetDB( DB_MASTER ) ); $this->assertConditions( [ # expected - "rc_user_text != '{$user->getName()}'", + "NOT((rc_actor = '{$user->getActorId()}') OR " + . "(rc_actor = '0' AND rc_user = '{$user->getId()}'))", ], [ 'hidemyself' => 1, @@ -212,9 +217,10 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase ); $user = User::newFromName( '10.11.12.13', false ); + $id = $user->getActorId( wfGetDB( DB_MASTER ) ); $this->assertConditions( [ # expected - "rc_user_text != '10.11.12.13'", + "NOT((rc_actor = '$id') OR (rc_actor = '0' AND rc_user_text = '10.11.12.13'))", ], [ 'hidemyself' => 1, @@ -225,10 +231,15 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase } public function testRcHidebyothersFilter() { + $this->setMwGlobals( 'wgActorTableSchemaMigrationStage', MIGRATION_WRITE_BOTH ); + $this->overrideMwServices(); + $user = $this->getTestUser()->getUser(); + $user->getActorId( wfGetDB( DB_MASTER ) ); $this->assertConditions( [ # expected - "rc_user_text = '{$user->getName()}'", + "(rc_actor = '{$user->getActorId()}') OR " + . "(rc_actor = '0' AND rc_user_text = '{$user->getName()}')", ], [ 'hidebyothers' => 1, @@ -238,9 +249,10 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase ); $user = User::newFromName( '10.11.12.13', false ); + $id = $user->getActorId( wfGetDB( DB_MASTER ) ); $this->assertConditions( [ # expected - "rc_user_text = '10.11.12.13'", + "(rc_actor = '$id') OR (rc_actor = '0' AND rc_user_text = '10.11.12.13')", ], [ 'hidebyothers' => 1, @@ -344,7 +356,7 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase $user = $this->getTestSysop()->getUser(); $this->assertConditions( [ # expected - "rc_patrolled = 1", + "rc_patrolled != 0", ], [ 'hideunpatrolled' => 1, @@ -428,10 +440,13 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase } public function testFilterUserExpLevelAllExperienceLevels() { + $this->setMwGlobals( 'wgActorTableSchemaMigrationStage', MIGRATION_WRITE_BOTH ); + $this->overrideMwServices(); + $this->assertConditions( [ # expected - 'rc_user != 0', + 'COALESCE( actor_rc_user.actor_user, rc_user ) != 0', ], [ 'userExpLevel' => 'newcomer;learner;experienced', @@ -441,10 +456,13 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase } public function testFilterUserExpLevelRegistrered() { + $this->setMwGlobals( 'wgActorTableSchemaMigrationStage', MIGRATION_WRITE_BOTH ); + $this->overrideMwServices(); + $this->assertConditions( [ # expected - 'rc_user != 0', + 'COALESCE( actor_rc_user.actor_user, rc_user ) != 0', ], [ 'userExpLevel' => 'registered', @@ -454,10 +472,13 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase } public function testFilterUserExpLevelUnregistrered() { + $this->setMwGlobals( 'wgActorTableSchemaMigrationStage', MIGRATION_WRITE_BOTH ); + $this->overrideMwServices(); + $this->assertConditions( [ # expected - 'rc_user' => 0, + 'COALESCE( actor_rc_user.actor_user, rc_user ) = 0', ], [ 'userExpLevel' => 'unregistered', @@ -467,10 +488,13 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase } public function testFilterUserExpLevelRegistreredOrLearner() { + $this->setMwGlobals( 'wgActorTableSchemaMigrationStage', MIGRATION_WRITE_BOTH ); + $this->overrideMwServices(); + $this->assertConditions( [ # expected - 'rc_user != 0', + 'COALESCE( actor_rc_user.actor_user, rc_user ) != 0', ], [ 'userExpLevel' => 'registered;learner', @@ -480,10 +504,14 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase } public function testFilterUserExpLevelUnregistreredOrExperienced() { + $this->setMwGlobals( 'wgActorTableSchemaMigrationStage', MIGRATION_WRITE_BOTH ); + $this->overrideMwServices(); + $conds = $this->buildQuery( [ 'userExpLevel' => 'unregistered;experienced' ] ); $this->assertRegExp( - '/\(rc_user = 0\) OR \(\(user_editcount >= 500\) AND \(user_registration <= \'[^\']+\'\)\)/', + '/\(COALESCE\( actor_rc_user.actor_user, rc_user \) = 0\) OR ' + . '\(\(user_editcount >= 500\) AND \(user_registration <= \'[^\']+\'\)\)/', reset( $conds ), "rc conditions: userExpLevel=unregistered;experienced" ); @@ -595,8 +623,10 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase ] ); + // @todo: This is not at all safe or sane. It just blindly assumes + // nothing in $conds depends on any other tables. $result = wfGetDB( DB_MASTER )->select( - $tables, + 'user', 'user_name', array_filter( $conds ) + [ 'user_email' => 'ut' ] );