wiki.techinc.nl/tests/phpunit/includes/specials/SpecialBooksourcesTest.php
Umherirrender b87a6daa5b Inject services into SpecialBookSources
This covers only direct used services by this special page
Services used by the base class are not part of this patch set

Bug: T259960
Change-Id: I4113ffa0c5e2e279eb611fa5c1da89c5970e6bc8
2020-10-06 21:07:32 +02:00

58 lines
1.6 KiB
PHP

<?php
use MediaWiki\MediaWikiServices;
class SpecialBooksourcesTest extends SpecialPageTestBase {
public static function provideISBNs() {
return [
[ '978-0-300-14424-6', true ],
[ '0-14-020652-3', true ],
[ '020652-3', false ],
[ '9781234567897', true ],
[ '1-4133-0454-0', true ],
[ '978-1413304541', true ],
[ '0136091814', true ],
[ '0136091812', false ],
[ '9780136091813', true ],
[ '9780136091817', false ],
[ '123456789X', true ],
// T69021
[ '1413304541', false ],
[ '141330454X', false ],
[ '1413304540', true ],
[ '14133X4540', false ],
[ '97814133X4541', false ],
[ '978035642615X', false ],
[ '9781413304541', true ],
[ '9780356426150', true ],
];
}
/**
* @covers SpecialBookSources::isValidISBN
* @dataProvider provideISBNs
*/
public function testIsValidISBN( $isbn, $isValid ) {
$this->assertSame( $isValid, SpecialBookSources::isValidISBN( $isbn ) );
}
protected function newSpecialPage() {
$services = MediaWikiServices::getInstance();
return new SpecialBookSources(
$services->getRevisionLookup(),
$services->getContentLanguage()
);
}
/**
* @covers SpecialBookSources::execute
*/
public function testExecute() {
list( $html, ) = $this->executeSpecialPage( 'Invalid', null, 'qqx' );
$this->assertStringContainsString( '(booksources-invalid-isbn)', $html );
list( $html, ) = $this->executeSpecialPage( '0-7475-3269-9', null, 'qqx' );
$this->assertStringNotContainsString( '(booksources-invalid-isbn)', $html );
$this->assertStringContainsString( '(booksources-text)', $html );
}
}