MediaWiki  REL1_24
EnhancedChangesListTest.php
Go to the documentation of this file.
00001 <?php
00002 
00011 class EnhancedChangesListTest extends MediaWikiLangTestCase {
00012 
00016     private $testRecentChangesHelper;
00017 
00018     public function __construct( $name = null, array $data = array(), $dataName = '' ) {
00019         parent::__construct( $name, $data, $dataName );
00020 
00021         $this->testRecentChangesHelper = new TestRecentChangesHelper();
00022     }
00023 
00024     public function testBeginRecentChangesList_styleModules() {
00025         $enhancedChangesList = $this->newEnhancedChangesList();
00026         $enhancedChangesList->beginRecentChangesList();
00027 
00028         $styleModules = $enhancedChangesList->getOutput()->getModuleStyles();
00029 
00030         $this->assertContains(
00031             'mediawiki.special.changeslist',
00032             $styleModules,
00033             'has mediawiki.special.changeslist'
00034          );
00035 
00036         $this->assertContains(
00037             'mediawiki.special.changeslist.enhanced',
00038             $styleModules,
00039             'has mediawiki.special.changeslist.enhanced'
00040         );
00041     }
00042 
00043     public function testBeginRecentChangesList_jsModules() {
00044         $enhancedChangesList = $this->newEnhancedChangesList();
00045         $enhancedChangesList->beginRecentChangesList();
00046 
00047         $modules = $enhancedChangesList->getOutput()->getModules();
00048 
00049         $this->assertContains( 'jquery.makeCollapsible', $modules, 'has jquery.makeCollapsible' );
00050         $this->assertContains( 'mediawiki.icon', $modules, 'has mediawiki.icon' );
00051     }
00052 
00053     public function testBeginRecentChangesList_html() {
00054         $enhancedChangesList = $this->newEnhancedChangesList();
00055         $html = $enhancedChangesList->beginRecentChangesList();
00056 
00057         $this->assertEquals( '<div class="mw-changeslist">', $html );
00058     }
00059 
00063     public function testRecentChangesLine() {
00064         $enhancedChangesList = $this->newEnhancedChangesList();
00065         $enhancedChangesList->beginRecentChangesList();
00066 
00067         $recentChange = $this->getEditChange( '20131103092153' );
00068         $html = $enhancedChangesList->recentChangesLine( $recentChange, false );
00069 
00070         $this->assertInternalType( 'string', $html );
00071 
00072         $recentChange2 = $this->getEditChange( '20131103092253' );
00073         $html = $enhancedChangesList->recentChangesLine( $recentChange2, false );
00074 
00075         $this->assertEquals( '', $html );
00076     }
00077 
00081       public function testEndRecentChangesList() {
00082         $enhancedChangesList = $this->newEnhancedChangesList();
00083         $enhancedChangesList->beginRecentChangesList();
00084 
00085         $recentChange = $this->getEditChange( '20131103092153' );
00086         $enhancedChangesList->recentChangesLine( $recentChange, false );
00087 
00088         $recentChange2 = $this->getEditChange( '20131103092253' );
00089         $enhancedChangesList->recentChangesLine( $recentChange2, false );
00090 
00091         $html = $enhancedChangesList->endRecentChangesList();
00092 
00093         preg_match_all( '/td class="mw-enhanced-rc-nested"/', $html, $matches );
00094         $this->assertCount( 2, $matches[0] );
00095       }
00096 
00100     private function newEnhancedChangesList() {
00101         $user = User::newFromId( 0 );
00102         $context = $this->testRecentChangesHelper->getTestContext( $user );
00103 
00104         return new EnhancedChangesList( $context );
00105     }
00106 
00110     private function getEditChange( $timestamp ) {
00111         $user = $this->getTestUser();
00112         $recentChange = $this->testRecentChangesHelper->makeEditRecentChange(
00113             $user, 'Cat', $timestamp, 5, 191, 190, 0, 0
00114         );
00115 
00116         return $recentChange;
00117     }
00118 
00122     private function getTestUser() {
00123         $user = User::newFromName( 'TestRecentChangesUser' );
00124 
00125         if ( !$user->getId() ) {
00126             $user->addToDatabase();
00127         }
00128 
00129         return $user;
00130     }
00131 
00132 }