expectException( \Wikimedia\Assert\PreconditionException::class ); new HTMLLegacySkinVersionField( [ 'default' => $default ] ); } public function provideGetInput() { yield [ Constants::SKIN_VERSION_LEGACY, true ]; yield [ Constants::SKIN_VERSION_LATEST, false ]; } /** * @dataProvider provideGetInput * @covers ::getInputHTML * @covers ::getInputOOUI */ public function testGetInput( $skinVersionValue, $checkValue ) { $params = [ 'fieldname' => 'VectorSkinVersion', 'class' => HTMLLegacySkinVersionField::class, 'section' => 'rendering/skin/skin-prefs', 'label-message' => 'prefs-vector-enable-vector-1-label', 'help-message' => 'prefs-vector-enable-vector-1-help', 'default' => true, 'hide-if' => [ '!==', 'wpskin', Constants::SKIN_NAME ], ]; $skinVersionField = new HTMLLegacySkinVersionField( $params ); $checkField = new \HTMLCheckField( $params ); $this->assertSame( $skinVersionField->getInputHTML( $skinVersionValue ), $checkField->getInputHTML( $checkValue ), '::getInputHTML matches HTMLCheckField::getInputHTML with mapped value' ); $this->assertEquals( $skinVersionField->getInputOOUI( $skinVersionValue ), $checkField->getInputOOUI( $checkValue ), '::getInputOOUI matches HTMLCheckField::getInputOOUI with mapped value' ); } public function provideLoadDataFromRequest() { yield [ null, Constants::SKIN_VERSION_LEGACY ]; yield [ true, Constants::SKIN_VERSION_LEGACY ]; yield [ false, Constants::SKIN_VERSION_LATEST ]; } /** * @dataProvider provideLoadDataFromRequest * @covers ::loadDataFromRequest */ public function testLoadDataFromRequest( $wpVectorSkinVersion, $expectedResult ) { $skinVerionField = new HTMLLegacySkinVersionField( [ 'fieldname' => 'VectorSkinVersion', 'default' => true, ] ); $request = new \WebRequest(); $request->setVal( 'wpVectorSkinVersion', $wpVectorSkinVersion ); $this->assertSame( $skinVerionField->loadDataFromRequest( $request ), $expectedResult ); } }