1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
<?php
namespace MediaWiki\Tests\Unit\Settings\Source\Format;
use MediaWiki\Settings\Source\Format\JsonFormat;
use PHPUnit\Framework\TestCase;
use UnexpectedValueException;
/**
* @covers \MediaWiki\Settings\Source\Format\JsonFormat
*/
class JsonFormatTest extends TestCase {
public function testDecode() {
$format = new JsonFormat();
$this->assertSame(
[ 'config' => [ 'MySetting' => 'BlaBla' ] ],
$format->decode( '{ "config": { "MySetting": "BlaBla" } }' )
);
}
public function testDecodeBadJSON() {
$format = new JsonFormat();
$this->expectException( UnexpectedValueException::class );
$format->decode( '{ bad }' );
}
public static function provideSupportsFileExtension() {
yield 'Supported' => [ 'json', true ];
yield 'Supported, uppercase' => [ 'JSON', true ];
yield 'Unsupported' => [ 'txt', false ];
}
/**
* @dataProvider provideSupportsFileExtension
*/
public function testSupportsFileExtension( $extension, $expected ) {
$this->assertSame( $expected, JsonFormat::supportsFileExtension( $extension ) );
}
}
|