MediaWiki
REL1_24
|
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 }