/** @covers ModerationCheckUserHook */ public function testPreverveUserAgent() { global $wgSpecialPages; $t = new ModerationTestsuite(); $dbw = wfGetDB(DB_MASTER); if (!array_key_exists('CheckUser', $wgSpecialPages) || !$dbw->tableExists('cu_changes')) { $this->markTestIncomplete('Test skipped: CheckUser extension must be installed to run it.'); } $moderatorUA = 'UserAgent of Moderator/1.0'; $userUA = 'UserAgent of UnprivilegedUser/1.0'; # When the edit is approved, cu_changes.cuc_agent field should # contain UserAgent of user who made the edit, # not UserAgent or the moderator who approved it. $t->setUserAgent($userUA); $entry = $t->getSampleEntry(); $t->setUserAgent($moderatorUA); $t->httpGet($entry->approveLink); $row = $dbw->selectRow('cu_changes', array('cuc_agent AS agent'), array('1'), __METHOD__, array('ORDER BY' => 'cuc_id DESC', 'LIMIT' => 1)); $this->assertNotEquals($moderatorUA, $row->agent, "testPreverveUserAgent(): UserAgent in checkuser tables matches moderator's UserAgent"); $this->assertEquals($userUA, $row->agent, "testPreverveUserAgent(): UserAgent in checkuser tables doesn't match UserAgent of user who made the edit"); }