MediaWiki  REL1_23
LocalFileTest.php
Go to the documentation of this file.
00001 <?php
00002 
00009 class LocalFileTest extends MediaWikiTestCase {
00010 
00011     protected function setUp() {
00012         parent::setUp();
00013 
00014         $this->setMwGlobals( 'wgCapitalLinks', true );
00015 
00016         $info = array(
00017             'name' => 'test',
00018             'directory' => '/testdir',
00019             'url' => '/testurl',
00020             'hashLevels' => 2,
00021             'transformVia404' => false,
00022             'backend' => new FSFileBackend( array(
00023                 'name' => 'local-backend',
00024                 'wikiId' => wfWikiId(),
00025                 'containerPaths' => array(
00026                     'cont1' => "/testdir/local-backend/tempimages/cont1",
00027                     'cont2' => "/testdir/local-backend/tempimages/cont2"
00028                 )
00029             ) )
00030         );
00031         $this->repo_hl0 = new LocalRepo( array( 'hashLevels' => 0 ) + $info );
00032         $this->repo_hl2 = new LocalRepo( array( 'hashLevels' => 2 ) + $info );
00033         $this->repo_lc = new LocalRepo( array( 'initialCapital' => false ) + $info );
00034         $this->file_hl0 = $this->repo_hl0->newFile( 'test!' );
00035         $this->file_hl2 = $this->repo_hl2->newFile( 'test!' );
00036         $this->file_lc = $this->repo_lc->newFile( 'test!' );
00037     }
00038 
00042     public function testGetHashPath() {
00043         $this->assertEquals( '', $this->file_hl0->getHashPath() );
00044         $this->assertEquals( 'a/a2/', $this->file_hl2->getHashPath() );
00045         $this->assertEquals( 'c/c4/', $this->file_lc->getHashPath() );
00046     }
00047 
00051     public function testGetRel() {
00052         $this->assertEquals( 'Test!', $this->file_hl0->getRel() );
00053         $this->assertEquals( 'a/a2/Test!', $this->file_hl2->getRel() );
00054         $this->assertEquals( 'c/c4/test!', $this->file_lc->getRel() );
00055     }
00056 
00060     public function testGetUrlRel() {
00061         $this->assertEquals( 'Test%21', $this->file_hl0->getUrlRel() );
00062         $this->assertEquals( 'a/a2/Test%21', $this->file_hl2->getUrlRel() );
00063         $this->assertEquals( 'c/c4/test%21', $this->file_lc->getUrlRel() );
00064     }
00065 
00069     public function testGetArchivePath() {
00070         $this->assertEquals( 'mwstore://local-backend/test-public/archive', $this->file_hl0->getArchivePath() );
00071         $this->assertEquals( 'mwstore://local-backend/test-public/archive/a/a2', $this->file_hl2->getArchivePath() );
00072         $this->assertEquals( 'mwstore://local-backend/test-public/archive/!', $this->file_hl0->getArchivePath( '!' ) );
00073         $this->assertEquals( 'mwstore://local-backend/test-public/archive/a/a2/!', $this->file_hl2->getArchivePath( '!' ) );
00074     }
00075 
00079     public function testGetThumbPath() {
00080         $this->assertEquals( 'mwstore://local-backend/test-thumb/Test!', $this->file_hl0->getThumbPath() );
00081         $this->assertEquals( 'mwstore://local-backend/test-thumb/a/a2/Test!', $this->file_hl2->getThumbPath() );
00082         $this->assertEquals( 'mwstore://local-backend/test-thumb/Test!/x', $this->file_hl0->getThumbPath( 'x' ) );
00083         $this->assertEquals( 'mwstore://local-backend/test-thumb/a/a2/Test!/x', $this->file_hl2->getThumbPath( 'x' ) );
00084     }
00085 
00089     public function testGetArchiveUrl() {
00090         $this->assertEquals( '/testurl/archive', $this->file_hl0->getArchiveUrl() );
00091         $this->assertEquals( '/testurl/archive/a/a2', $this->file_hl2->getArchiveUrl() );
00092         $this->assertEquals( '/testurl/archive/%21', $this->file_hl0->getArchiveUrl( '!' ) );
00093         $this->assertEquals( '/testurl/archive/a/a2/%21', $this->file_hl2->getArchiveUrl( '!' ) );
00094     }
00095 
00099     public function testGetThumbUrl() {
00100         $this->assertEquals( '/testurl/thumb/Test%21', $this->file_hl0->getThumbUrl() );
00101         $this->assertEquals( '/testurl/thumb/a/a2/Test%21', $this->file_hl2->getThumbUrl() );
00102         $this->assertEquals( '/testurl/thumb/Test%21/x', $this->file_hl0->getThumbUrl( 'x' ) );
00103         $this->assertEquals( '/testurl/thumb/a/a2/Test%21/x', $this->file_hl2->getThumbUrl( 'x' ) );
00104     }
00105 
00109     public function testGetArchiveVirtualUrl() {
00110         $this->assertEquals( 'mwrepo://test/public/archive', $this->file_hl0->getArchiveVirtualUrl() );
00111         $this->assertEquals( 'mwrepo://test/public/archive/a/a2', $this->file_hl2->getArchiveVirtualUrl() );
00112         $this->assertEquals( 'mwrepo://test/public/archive/%21', $this->file_hl0->getArchiveVirtualUrl( '!' ) );
00113         $this->assertEquals( 'mwrepo://test/public/archive/a/a2/%21', $this->file_hl2->getArchiveVirtualUrl( '!' ) );
00114     }
00115 
00119     public function testGetThumbVirtualUrl() {
00120         $this->assertEquals( 'mwrepo://test/thumb/Test%21', $this->file_hl0->getThumbVirtualUrl() );
00121         $this->assertEquals( 'mwrepo://test/thumb/a/a2/Test%21', $this->file_hl2->getThumbVirtualUrl() );
00122         $this->assertEquals( 'mwrepo://test/thumb/Test%21/%21', $this->file_hl0->getThumbVirtualUrl( '!' ) );
00123         $this->assertEquals( 'mwrepo://test/thumb/a/a2/Test%21/%21', $this->file_hl2->getThumbVirtualUrl( '!' ) );
00124     }
00125 
00129     public function testGetUrl() {
00130         $this->assertEquals( '/testurl/Test%21', $this->file_hl0->getUrl() );
00131         $this->assertEquals( '/testurl/a/a2/Test%21', $this->file_hl2->getUrl() );
00132     }
00133 
00137     public function testWfLocalFile() {
00138         $file = wfLocalFile( "File:Some_file_that_probably_doesn't exist.png" );
00139         $this->assertThat( $file, $this->isInstanceOf( 'LocalFile' ), 'wfLocalFile() returns LocalFile for valid Titles' );
00140     }
00141 }