aboutsummaryrefslogtreecommitdiffstats
path: root/tests/phpunit/includes/filerepo/file/FileTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/phpunit/includes/filerepo/file/FileTest.php')
-rw-r--r--tests/phpunit/includes/filerepo/file/FileTest.php39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/phpunit/includes/filerepo/file/FileTest.php b/tests/phpunit/includes/filerepo/file/FileTest.php
index 76be387442ff..590ed89c0f49 100644
--- a/tests/phpunit/includes/filerepo/file/FileTest.php
+++ b/tests/phpunit/includes/filerepo/file/FileTest.php
@@ -1,5 +1,7 @@
<?php
+use MediaWiki\Page\PageIdentityValue;
+
class FileTest extends MediaWikiMediaTestCase {
/**
@@ -442,4 +444,41 @@ class FileTest extends MediaWikiMediaTestCase {
],
];
}
+
+ public function provideNormalizeTitle() {
+ yield [ 'some name.jpg', 'Some_name.jpg' ];
+ yield [ new TitleValue( NS_FILE, 'Some_name.jpg' ), 'Some_name.jpg' ];
+ yield [ new TitleValue( NS_MEDIA, 'Some_name.jpg' ), 'Some_name.jpg' ];
+ yield [ new PageIdentityValue( 0, NS_FILE, 'Some_name.jpg', false ), 'Some_name.jpg' ];
+ }
+
+ /**
+ * @covers File::normalizeTitle
+ * @dataProvider provideNormalizeTitle
+ */
+ public function testNormalizeTitle( $title, $expected ) {
+ $actual = File::normalizeTitle( $title );
+
+ $this->assertSame( NS_FILE, $actual->getNamespace() );
+ $this->assertSame( $expected, $actual->getDBkey() );
+ }
+
+ public function provideNormalizeTitleFails() {
+ yield [ '' ];
+ yield [ '#' ];
+ yield [ new TitleValue( NS_USER, 'Some_name.jpg' ) ];
+ yield [ new PageIdentityValue( 0, NS_USER, 'Some_name.jpg', false ) ];
+ }
+
+ /**
+ * @covers File::normalizeTitle
+ * @dataProvider provideNormalizeTitleFails
+ */
+ public function testNormalizeTitleFails( $title ) {
+ $actual = File::normalizeTitle( $title );
+ $this->assertNull( $actual );
+
+ $this->expectException( MWException::class );
+ File::normalizeTitle( $title, 'exception' );
+ }
}