コード例 #1
0
 /**
 	@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");
 }