MediaWiki REL1_33
LocalFileTest.php
Go to the documentation of this file.
1<?php
2
9
11 private $repo_hl0;
13 private $repo_hl2;
15 private $repo_lc;
17 private $file_hl0;
19 private $file_hl2;
21 private $file_lc;
22
23 protected function setUp() {
24 parent::setUp();
25
26 $this->setMwGlobals( 'wgCapitalLinks', true );
27
28 $info = [
29 'name' => 'test',
30 'directory' => '/testdir',
31 'url' => '/testurl',
32 'hashLevels' => 2,
33 'transformVia404' => false,
34 'backend' => new FSFileBackend( [
35 'name' => 'local-backend',
36 'wikiId' => wfWikiID(),
37 'containerPaths' => [
38 'cont1' => "/testdir/local-backend/tempimages/cont1",
39 'cont2' => "/testdir/local-backend/tempimages/cont2"
40 ]
41 ] )
42 ];
43 $this->repo_hl0 = new LocalRepo( [ 'hashLevels' => 0 ] + $info );
44 $this->repo_hl2 = new LocalRepo( [ 'hashLevels' => 2 ] + $info );
45 $this->repo_lc = new LocalRepo( [ 'initialCapital' => false ] + $info );
46 $this->file_hl0 = $this->repo_hl0->newFile( 'test!' );
47 $this->file_hl2 = $this->repo_hl2->newFile( 'test!' );
48 $this->file_lc = $this->repo_lc->newFile( 'test!' );
49 }
50
54 public function testGetHashPath() {
55 $this->assertEquals( '', $this->file_hl0->getHashPath() );
56 $this->assertEquals( 'a/a2/', $this->file_hl2->getHashPath() );
57 $this->assertEquals( 'c/c4/', $this->file_lc->getHashPath() );
58 }
59
63 public function testGetRel() {
64 $this->assertEquals( 'Test!', $this->file_hl0->getRel() );
65 $this->assertEquals( 'a/a2/Test!', $this->file_hl2->getRel() );
66 $this->assertEquals( 'c/c4/test!', $this->file_lc->getRel() );
67 }
68
72 public function testGetUrlRel() {
73 $this->assertEquals( 'Test%21', $this->file_hl0->getUrlRel() );
74 $this->assertEquals( 'a/a2/Test%21', $this->file_hl2->getUrlRel() );
75 $this->assertEquals( 'c/c4/test%21', $this->file_lc->getUrlRel() );
76 }
77
81 public function testGetArchivePath() {
82 $this->assertEquals(
83 'mwstore://local-backend/test-public/archive',
84 $this->file_hl0->getArchivePath()
85 );
86 $this->assertEquals(
87 'mwstore://local-backend/test-public/archive/a/a2',
88 $this->file_hl2->getArchivePath()
89 );
90 $this->assertEquals(
91 'mwstore://local-backend/test-public/archive/!',
92 $this->file_hl0->getArchivePath( '!' )
93 );
94 $this->assertEquals(
95 'mwstore://local-backend/test-public/archive/a/a2/!',
96 $this->file_hl2->getArchivePath( '!' )
97 );
98 }
99
103 public function testGetThumbPath() {
104 $this->assertEquals(
105 'mwstore://local-backend/test-thumb/Test!',
106 $this->file_hl0->getThumbPath()
107 );
108 $this->assertEquals(
109 'mwstore://local-backend/test-thumb/a/a2/Test!',
110 $this->file_hl2->getThumbPath()
111 );
112 $this->assertEquals(
113 'mwstore://local-backend/test-thumb/Test!/x',
114 $this->file_hl0->getThumbPath( 'x' )
115 );
116 $this->assertEquals(
117 'mwstore://local-backend/test-thumb/a/a2/Test!/x',
118 $this->file_hl2->getThumbPath( 'x' )
119 );
120 }
121
125 public function testGetArchiveUrl() {
126 $this->assertEquals( '/testurl/archive', $this->file_hl0->getArchiveUrl() );
127 $this->assertEquals( '/testurl/archive/a/a2', $this->file_hl2->getArchiveUrl() );
128 $this->assertEquals( '/testurl/archive/%21', $this->file_hl0->getArchiveUrl( '!' ) );
129 $this->assertEquals( '/testurl/archive/a/a2/%21', $this->file_hl2->getArchiveUrl( '!' ) );
130 }
131
135 public function testGetThumbUrl() {
136 $this->assertEquals( '/testurl/thumb/Test%21', $this->file_hl0->getThumbUrl() );
137 $this->assertEquals( '/testurl/thumb/a/a2/Test%21', $this->file_hl2->getThumbUrl() );
138 $this->assertEquals( '/testurl/thumb/Test%21/x', $this->file_hl0->getThumbUrl( 'x' ) );
139 $this->assertEquals( '/testurl/thumb/a/a2/Test%21/x', $this->file_hl2->getThumbUrl( 'x' ) );
140 }
141
145 public function testGetArchiveVirtualUrl() {
146 $this->assertEquals( 'mwrepo://test/public/archive', $this->file_hl0->getArchiveVirtualUrl() );
147 $this->assertEquals(
148 'mwrepo://test/public/archive/a/a2',
149 $this->file_hl2->getArchiveVirtualUrl()
150 );
151 $this->assertEquals(
152 'mwrepo://test/public/archive/%21',
153 $this->file_hl0->getArchiveVirtualUrl( '!' )
154 );
155 $this->assertEquals(
156 'mwrepo://test/public/archive/a/a2/%21',
157 $this->file_hl2->getArchiveVirtualUrl( '!' )
158 );
159 }
160
164 public function testGetThumbVirtualUrl() {
165 $this->assertEquals( 'mwrepo://test/thumb/Test%21', $this->file_hl0->getThumbVirtualUrl() );
166 $this->assertEquals( 'mwrepo://test/thumb/a/a2/Test%21', $this->file_hl2->getThumbVirtualUrl() );
167 $this->assertEquals(
168 'mwrepo://test/thumb/Test%21/%21',
169 $this->file_hl0->getThumbVirtualUrl( '!' )
170 );
171 $this->assertEquals(
172 'mwrepo://test/thumb/a/a2/Test%21/%21',
173 $this->file_hl2->getThumbVirtualUrl( '!' )
174 );
175 }
176
180 public function testGetUrl() {
181 $this->assertEquals( '/testurl/Test%21', $this->file_hl0->getUrl() );
182 $this->assertEquals( '/testurl/a/a2/Test%21', $this->file_hl2->getUrl() );
183 }
184
188 public function testWfLocalFile() {
189 $file = wfLocalFile( "File:Some_file_that_probably_doesn't exist.png" );
190 $this->assertThat(
191 $file,
192 $this->isInstanceOf( LocalFile::class ),
193 'wfLocalFile() returns LocalFile for valid Titles'
194 );
195 }
196}
and that you know you can do these things To protect your we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights These restrictions translate to certain responsibilities for you if you distribute copies of the or if you modify it For if you distribute copies of such a whether gratis or for a you must give the recipients all the rights that you have You must make sure that receive or can get the source code And you must show them these terms so they know their rights We protect your rights with two and(2) offer you this license which gives you legal permission to copy
wfLocalFile( $title)
Get an object referring to a locally registered file.
wfWikiID()
Get an ASCII string identifying this wiki This is used as a prefix in memcached keys.
Class for a file system (FS) based file backend.
Implements some public methods and some protected utility functions which are required by multiple ch...
Definition File.php:52
These tests should work regardless of $wgCapitalLinks.
testGetRel()
File::getRel.
testGetThumbUrl()
File::getThumbUrl.
testGetThumbVirtualUrl()
File::getThumbVirtualUrl.
LocalRepo $repo_lc
testGetArchiveUrl()
File::getArchiveUrl.
testGetUrl()
File::getUrl.
testWfLocalFile()
wfLocalFile
testGetArchiveVirtualUrl()
File::getArchiveVirtualUrl.
testGetArchivePath()
File::getArchivePath.
LocalRepo $repo_hl0
testGetThumbPath()
File::getThumbPath.
LocalRepo $repo_hl2
testGetHashPath()
File::getHashPath.
testGetUrlRel()
File::getUrlRel.
A repository that stores files in the local filesystem and registers them in the wiki's own database.
Definition LocalRepo.php:36
setMwGlobals( $pairs, $value=null)
Sets a global, maintaining a stashed version of the previous global to be restored in tearDown.