Source of file ElementFormControllerTest.php
Size: 2,680 Bytes - Last Modified: 2021-12-24T06:44:57+00:00
/var/www/docs.ssmods.com/process/src/tests/php/ElementFormControllerTest.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | <?php namespace DNADesign\ElementalUserForms\Tests; use DNADesign\Elemental\Extensions\ElementalPageExtension; use DNADesign\Elemental\Models\BaseElement; use DNADesign\ElementalUserForms\Control\ElementFormController; use DNADesign\ElementalUserForms\Model\ElementForm; use DNADesign\ElementalUserForms\Tests\Stub\TestElement; use DNADesign\ElementalUserForms\Tests\Stub\TestPage; use SilverStripe\Dev\FunctionalTest; use SilverStripe\UserForms\Control\UserDefinedFormController; class ElementFormControllerTest extends FunctionalTest { protected static $fixture_file = 'ElementFormTest.yml'; protected static $use_draft_site = true; protected static $required_extensions = [ TestPage::class => [ ElementalPageExtension::class, ], ]; protected static $extra_dataobjects = [ TestPage::class, TestElement::class, ]; public function testElementFormRendering() { $this->logInWithPermission('ADMIN'); $page = $this->objFromFixture(TestPage::class, 'page1'); $element = $this->objFromFixture(ElementForm::class, 'formelement'); $response = $this->get($page->URLSegment); $formAction = sprintf('%s/element/%d/Form', $page->URLSegment, $element->ID); $this->assertStringContainsString( $formAction, $response->getBody(), 'Element forms are rendered through ElementalArea templates' ); } public function testElementFormSubmission() { $this->logInWithPermission('ADMIN'); $page = $this->objFromFixture(TestPage::class, 'page1'); $element = $this->objFromFixture(TestElement::class, 'element1'); $response = $this->get($page->URLSegment); $response = $this->submitForm('UserForm_Form_2', 'action_process', ['TestValue' => 'Updated']); $this->assertStringContainsString( 'received your submission', $response->getBody(), 'Form values are submitted to correct element form' ); } public function testUserFormControllerInitIsCalled() { $userFormControllerMock = $this->getMockBuilder(UserDefinedFormController::class) ->setMethods(['doInit']) ->getMock(); $userFormControllerMock->expects($this->once())->method('doInit'); $controller = new ElementFormController(new BaseElement); $controller->getRequest()->setSession($this->session()); $controller->setUserFormController($userFormControllerMock); $this->assertSame($userFormControllerMock, $controller->getUserFormController()); $controller->doInit(); } } |