https://gerrit.wikimedia.org/r/q/owner:Krinkle+is:merged+message:Widen > Given all called methods are de-facto and liberally claimed, and > that we keep the coverage limited to the subject class, it maintains > the spirit and intent by listing the class explicitly instead. > > PHPUnit offers a more precise tool when you need it (i.e. when testing > legacy monster/god classes), but for well-written code, the > class-wide tag is exactly what you want. > > We lose useful coverage and waste valuable time on keeping tags > accurate through refactors (or worse, forget to do so). > Tracking tiny per-method details wastes time in realizing (and > fixing) when people inevitably don't keep them in sync, and time > lost in finding uncovered code to write tests to realize it was > already covered but "not yet claimed". While at it, also fix PHPUnit warnings in CssContentHandlerIntegrationTest and JavaScriptContentHandlerIntegrationTest about not having any `@covers` annotations. Change-Id: I5afd9fe0bca0fa86cc096f6e5e79f2ba1cfbfa77
52 lines
1.6 KiB
PHP
52 lines
1.6 KiB
PHP
<?php
|
|
|
|
use MediaWiki\Content\TextContentHandler;
|
|
|
|
/**
|
|
* @group ContentHandler
|
|
* @covers \MediaWiki\Content\TextContentHandler
|
|
* @covers \ContentHandler
|
|
*/
|
|
class TextContentHandlerTest extends MediaWikiUnitTestCase {
|
|
|
|
public function testSupportsDirectEditing() {
|
|
$handler = new TextContentHandler();
|
|
$this->assertTrue( $handler->supportsDirectEditing(), 'direct editing is supported' );
|
|
}
|
|
|
|
/**
|
|
* @covers \SearchEngine
|
|
*/
|
|
public function testFieldsForIndex() {
|
|
$handler = new TextContentHandler();
|
|
|
|
$mockEngine = $this->createMock( SearchEngine::class );
|
|
|
|
$mockEngine->expects( $this->atLeastOnce() )
|
|
->method( 'makeSearchFieldMapping' )
|
|
->willReturnCallback( function ( $name, $type ) {
|
|
$mockField =
|
|
$this->getMockBuilder( SearchIndexFieldDefinition::class )
|
|
->setConstructorArgs( [ $name, $type ] )
|
|
->getMock();
|
|
$mockField->expects( $this->atLeastOnce() )->method( 'getMapping' )->willReturn( [
|
|
'testData' => 'test',
|
|
'name' => $name,
|
|
'type' => $type,
|
|
] );
|
|
return $mockField;
|
|
} );
|
|
|
|
/** @var SearchEngine $mockEngine */
|
|
$fields = $handler->getFieldsForSearchIndex( $mockEngine );
|
|
$mappedFields = [];
|
|
foreach ( $fields as $name => $field ) {
|
|
$this->assertInstanceOf( SearchIndexField::class, $field );
|
|
/** @var SearchIndexField $field */
|
|
$mappedFields[$name] = $field->getMapping( $mockEngine );
|
|
}
|
|
$this->assertArrayHasKey( 'language', $mappedFields );
|
|
$this->assertEquals( 'test', $mappedFields['language']['testData'] );
|
|
$this->assertEquals( 'language', $mappedFields['language']['name'] );
|
|
}
|
|
}
|