X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fcore%2Fmodules%2Finline_form_errors%2Ftests%2Fsrc%2FUnit%2FFormErrorHandlerTest.php;fp=web%2Fcore%2Fmodules%2Finline_form_errors%2Ftests%2Fsrc%2FUnit%2FFormErrorHandlerTest.php;h=fccf9b6f11a0dff986c3282b709a6242b78d8015;hp=f110b36af959677dabcaa3c6d6fb9d57d0c926f1;hb=0bf8d09d2542548982e81a441b1f16e75873a04f;hpb=74df008bdbb3a11eeea356744f39b802369bda3c diff --git a/web/core/modules/inline_form_errors/tests/src/Unit/FormErrorHandlerTest.php b/web/core/modules/inline_form_errors/tests/src/Unit/FormErrorHandlerTest.php index f110b36af..fccf9b6f1 100644 --- a/web/core/modules/inline_form_errors/tests/src/Unit/FormErrorHandlerTest.php +++ b/web/core/modules/inline_form_errors/tests/src/Unit/FormErrorHandlerTest.php @@ -3,6 +3,7 @@ namespace Drupal\Tests\inline_form_errors\Unit; use Drupal\Core\Form\FormState; +use Drupal\Core\Messenger\MessengerInterface; use Drupal\Core\Render\RendererInterface; use Drupal\Core\Utility\LinkGeneratorInterface; use Drupal\inline_form_errors\FormErrorHandler; @@ -14,35 +15,70 @@ use Drupal\Tests\UnitTestCase; */ class FormErrorHandlerTest extends UnitTestCase { + /** + * The form error handler. + * + * @var \Drupal\inline_form_errors\FormErrorHandler + */ + protected $formErrorHandler; + + /** + * The messenger. + * + * @var \Drupal\Core\Messenger\MessengerInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $messenger; + + /** + * The renderer. + * + * @var \Drupal\Core\Render\RendererInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $renderer; + + /** + * The link generator. + * + * @var \Drupal\Core\Utility\LinkGeneratorInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $linkGenerator; + + /** + * {@inheritdoc} + */ + protected function setUp() { + parent::setUp(); + $this->linkGenerator = $this->createMock(LinkGeneratorInterface::class); + $this->renderer = $this->createMock(RendererInterface::class); + $this->messenger = $this->createMock(MessengerInterface::class); + + $this->formErrorHandler = new FormErrorHandler($this->getStringTranslationStub(), $this->linkGenerator, $this->renderer, $this->messenger); + } + /** * @covers ::handleFormErrors * @covers ::displayErrorMessages */ public function testDisplayErrorMessagesInline() { - $link_generator = $this->getMock(LinkGeneratorInterface::class); - $link_generator->expects($this->any()) + + $this->linkGenerator->expects($this->any()) ->method('generate') ->willReturnArgument(0); - $renderer = $this->getMock(RendererInterface::class); - $form_error_handler = $this->getMockBuilder(FormErrorHandler::class) - ->setConstructorArgs([$this->getStringTranslationStub(), $link_generator, $renderer]) - ->setMethods(['drupalSetMessage']) - ->getMock(); - - $form_error_handler->expects($this->at(0)) - ->method('drupalSetMessage') - ->with('no title given', 'error'); - $form_error_handler->expects($this->at(1)) - ->method('drupalSetMessage') - ->with('element is invisible', 'error'); - $form_error_handler->expects($this->at(2)) - ->method('drupalSetMessage') - ->with('this missing element is invalid', 'error'); - $form_error_handler->expects($this->at(3)) - ->method('drupalSetMessage') - ->with('3 errors have been found: Test 1Test 2 & a halfTest 3', 'error'); - - $renderer->expects($this->any()) + + $this->messenger->expects($this->at(0)) + ->method('addError') + ->with('no title given'); + $this->messenger->expects($this->at(1)) + ->method('addError') + ->with('element is invisible'); + $this->messenger->expects($this->at(2)) + ->method('addError') + ->with('this missing element is invalid'); + $this->messenger->expects($this->at(3)) + ->method('addError') + ->with('3 errors have been found: Test 1Test 2 & a halfTest 3'); + + $this->renderer->expects($this->any()) ->method('renderPlain') ->will($this->returnCallback(function ($render_array) { return $render_array[0]['#markup'] . '' . implode(array_map('htmlspecialchars', $render_array[1]['#items']), '') . ''; @@ -107,7 +143,7 @@ class FormErrorHandlerTest extends UnitTestCase { $form_state->setErrorByName('test5', 'no title given'); $form_state->setErrorByName('test6', 'element is invisible'); $form_state->setErrorByName('missing_element', 'this missing element is invalid'); - $form_error_handler->handleFormErrors($form, $form_state); + $this->formErrorHandler->handleFormErrors($form, $form_state); $this->assertSame('invalid', $form['test1']['#errors']); } @@ -116,11 +152,6 @@ class FormErrorHandlerTest extends UnitTestCase { * @covers ::setElementErrorsFromFormState */ public function testSetElementErrorsFromFormState() { - $form_error_handler = $this->getMockBuilder(FormErrorHandler::class) - ->setConstructorArgs([$this->getStringTranslationStub(), $this->getMock(LinkGeneratorInterface::class), $this->getMock(RendererInterface::class)]) - ->setMethods(['drupalSetMessage']) - ->getMock(); - $form = [ '#parents' => [], '#form_id' => 'test_form', @@ -135,7 +166,7 @@ class FormErrorHandlerTest extends UnitTestCase { ]; $form_state = new FormState(); $form_state->setErrorByName('test', 'invalid'); - $form_error_handler->handleFormErrors($form, $form_state); + $this->formErrorHandler->handleFormErrors($form, $form_state); $this->assertSame('invalid', $form['test']['#errors']); } @@ -143,14 +174,10 @@ class FormErrorHandlerTest extends UnitTestCase { * Tests that opting out of Inline Form Errors works. */ public function testDisplayErrorMessagesNotInline() { - $form_error_handler = $this->getMockBuilder(FormErrorHandler::class) - ->setConstructorArgs([$this->getStringTranslationStub(), $this->getMock(LinkGeneratorInterface::class), $this->getMock(RendererInterface::class)]) - ->setMethods(['drupalSetMessage']) - ->getMock(); - $form_error_handler->expects($this->at(0)) - ->method('drupalSetMessage') - ->with('invalid', 'error'); + $this->messenger->expects($this->at(0)) + ->method('addMessage') + ->with('invalid', 'error', FALSE); $form = [ '#parents' => [], @@ -166,7 +193,7 @@ class FormErrorHandlerTest extends UnitTestCase { ]; $form_state = new FormState(); $form_state->setErrorByName('test', 'invalid'); - $form_error_handler->handleFormErrors($form, $form_state); + $this->formErrorHandler->handleFormErrors($form, $form_state); } }