diff options
Diffstat (limited to 'www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Unit/MediaWiki/Search/Form/FormsBuilderTest.php')
-rw-r--r-- | www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Unit/MediaWiki/Search/Form/FormsBuilderTest.php | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Unit/MediaWiki/Search/Form/FormsBuilderTest.php b/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Unit/MediaWiki/Search/Form/FormsBuilderTest.php new file mode 100644 index 00000000..f7db2ae3 --- /dev/null +++ b/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Unit/MediaWiki/Search/Form/FormsBuilderTest.php @@ -0,0 +1,110 @@ +<?php + +namespace SMW\Tests\MediaWiki\Search\Form; + +use SMW\MediaWiki\Search\Form\FormsBuilder; +use SMW\Tests\TestEnvironment; + +/** + * @covers \SMW\MediaWiki\Search\Form\FormsBuilder + * @group semantic-mediawiki + * + * @license GNU GPL v2+ + * @since 3.0 + * + * @author mwjames + */ +class FormsBuilderTest extends \PHPUnit_Framework_TestCase { + + private $webRequest; + private $formsFactory; + + protected function setUp() { + + $this->webRequest = $this->getMockBuilder( '\WebRequest' ) + ->disableOriginalConstructor() + ->getMock(); + + $this->formsFactory = $this->getMockBuilder( '\SMW\MediaWiki\Search\Form\FormsFactory' ) + ->disableOriginalConstructor() + ->getMock(); + } + + public function testCanConstruct() { + + $this->assertInstanceOf( + FormsBuilder::class, + new FormsBuilder( $this->webRequest, $this->formsFactory ) + ); + } + + public function testBuildForm() { + + $title = $this->getMockBuilder( '\Title' ) + ->disableOriginalConstructor() + ->getMock(); + + $openForm = $this->getMockBuilder( '\SMW\MediaWiki\Search\Form\OpenForm' ) + ->disableOriginalConstructor() + ->getMock(); + + $customForm = $this->getMockBuilder( '\SMW\MediaWiki\Search\Form\CustomForm' ) + ->disableOriginalConstructor() + ->getMock(); + + $customForm->expects( $this->any() ) + ->method( 'getParameters' ) + ->will( $this->returnValue( [] ) ); + + $this->formsFactory->expects( $this->any() ) + ->method( 'newOpenForm' ) + ->will( $this->returnValue( $openForm ) ); + + $this->formsFactory->expects( $this->any() ) + ->method( 'newCustomForm' ) + ->will( $this->returnValue( $customForm ) ); + + $instance = new FormsBuilder( + $this->webRequest, + $this->formsFactory + ); + + $data = [ + 'forms' => [ + 'Foo' => [ + 'Property one' + ], + 'Bar' => [ + 'Property two' + ] + ] + ]; + + $expected = [ + "<div class='divider' style='display:none;'></div>", + '<div id="smw-form-definitions" class="is-disabled">', + '<div id="smw-form-bar" class="smw-fields"></div>', + '<div id="smw-form-foo" class="smw-fields"></div></div>' + ]; + + $this->assertContains( + implode( '', $expected ), + $instance->buildForm( $data ) + ); + + $stringValidator = TestEnvironment::newValidatorFactory()->newStringValidator(); + + $expected = [ + '<button type="button" id="smw-search-forms" class="smw-selectmenu-button is-disabled".*', + 'name="smw-form" value="".*', + 'data-list="[{"id":"bar","name":"Bar","desc":"Bar"},{"id":"foo","name":"Foo","desc":"Foo"}]" data-nslist="[]">Form</button><input type="hidden" name="smw-form"/>' + ]; + + $stringValidator->assertThatStringContains( + $expected, + $instance->buildFormList( $title ) + ); + } + + +} |