Interface is @internal and is implemented by EditPage; will be used in the future when the backend is split and common status values are needed for the different classes. Doing separately to avoid cluttering the main work - just moves the constant definitions. Since EditPage implements the new interface, any existing EditPage::AS_* references will continue to work. Bug: T20654 Change-Id: I71dafec2579b4a42dd08f3fc7e569e28c14d8753
39 lines
1 KiB
PHP
39 lines
1 KiB
PHP
<?php
|
|
|
|
use MediaWiki\EditPage\IEditObject;
|
|
|
|
/**
|
|
* @covers EditPage
|
|
*
|
|
* MediaWikiCoversValidator fails when trying to say that this covers an interface,
|
|
* but this covers \MediaWiki\EditPage\IEditObject primarily
|
|
*
|
|
* @author DannyS712
|
|
*/
|
|
class IEditObjectTest extends MediaWikiUnitTestCase {
|
|
|
|
public function testConstants() {
|
|
// Ensure that each of the constants used as a status is unique
|
|
$reflection = new ReflectionClass( IEditObject::class );
|
|
$constants = $reflection->getConstants();
|
|
|
|
// Keys (constant names) are required to be unique by php, only need to
|
|
// test the values
|
|
$values = array_values( $constants );
|
|
$uniqueValues = array_unique( $values );
|
|
$this->assertArrayEquals(
|
|
$values,
|
|
$uniqueValues,
|
|
'All status constants have unique values'
|
|
);
|
|
|
|
// Make sure that any old reference to EditPage::AS_* still works
|
|
foreach ( $constants as $key => $value ) {
|
|
$this->assertSame(
|
|
constant( EditPage::class . '::' . $key ),
|
|
$value,
|
|
"EditPage::$key still works properly"
|
|
);
|
|
}
|
|
}
|
|
}
|