You are here

class ConfirmFormHelperTest in Zircon Profile 8.0

Same name and namespace in other branches
  1. 8 core/tests/Drupal/Tests/Core/Form/ConfirmFormHelperTest.php \Drupal\Tests\Core\Form\ConfirmFormHelperTest

@coversDefaultClass \Drupal\Core\Form\ConfirmFormHelper @group Form

Hierarchy

Expanded class hierarchy of ConfirmFormHelperTest

File

core/tests/Drupal/Tests/Core/Form/ConfirmFormHelperTest.php, line 20
Contains \Drupal\Tests\Core\Form\ConfirmFormHelperTest.

Namespace

Drupal\Tests\Core\Form
View source
class ConfirmFormHelperTest extends UnitTestCase {

  /**
   * @covers ::buildCancelLink
   *
   * Tests the cancel link title.
   */
  public function testCancelLinkTitle() {
    $cancel_text = 'Cancel text';
    $form = $this
      ->getMock('Drupal\\Core\\Form\\ConfirmFormInterface');
    $form
      ->expects($this
      ->any())
      ->method('getCancelText')
      ->will($this
      ->returnValue($cancel_text));
    $link = ConfirmFormHelper::buildCancelLink($form, new Request());
    $this
      ->assertSame($cancel_text, $link['#title']);
    $this
      ->assertSame([
      'contexts' => [
        'url.query_args:destination',
      ],
    ], $link['#cache']);
  }

  /**
   * @covers ::buildCancelLink
   *
   * Tests a cancel link route.
   */
  public function testCancelLinkRoute() {
    $route_name = 'foo_bar';
    $cancel_route = new Url($route_name);
    $form = $this
      ->getMock('Drupal\\Core\\Form\\ConfirmFormInterface');
    $form
      ->expects($this
      ->any())
      ->method('getCancelUrl')
      ->will($this
      ->returnValue($cancel_route));
    $link = ConfirmFormHelper::buildCancelLink($form, new Request());
    $this
      ->assertEquals(Url::fromRoute($route_name), $link['#url']);
    $this
      ->assertSame([
      'contexts' => [
        'url.query_args:destination',
      ],
    ], $link['#cache']);
  }

  /**
   * @covers ::buildCancelLink
   *
   * Tests a cancel link route with parameters.
   */
  public function testCancelLinkRouteWithParams() {
    $expected = Url::fromRoute('foo_bar.baz', [
      'baz' => 'banana',
    ], [
      'absolute' => TRUE,
    ]);
    $form = $this
      ->getMock('Drupal\\Core\\Form\\ConfirmFormInterface');
    $form
      ->expects($this
      ->any())
      ->method('getCancelUrl')
      ->will($this
      ->returnValue($expected));
    $link = ConfirmFormHelper::buildCancelLink($form, new Request());
    $this
      ->assertEquals($expected, $link['#url']);
    $this
      ->assertSame([
      'contexts' => [
        'url.query_args:destination',
      ],
    ], $link['#cache']);
  }

  /**
   * @covers ::buildCancelLink
   *
   * Tests a cancel link route with a URL object.
   */
  public function testCancelLinkRouteWithUrl() {
    $cancel_route = new Url('foo_bar.baz', array(
      'baz' => 'banana',
    ), array(
      'absolute' => TRUE,
    ));
    $form = $this
      ->getMock('Drupal\\Core\\Form\\ConfirmFormInterface');
    $form
      ->expects($this
      ->any())
      ->method('getCancelUrl')
      ->will($this
      ->returnValue($cancel_route));
    $link = ConfirmFormHelper::buildCancelLink($form, new Request());
    $this
      ->assertSame($cancel_route, $link['#url']);
    $this
      ->assertSame([
      'contexts' => [
        'url.query_args:destination',
      ],
    ], $link['#cache']);
  }

  /**
   * @covers ::buildCancelLink
   *
   * Tests a cancel link provided by the destination.
   *
   * @dataProvider providerTestCancelLinkDestination
   */
  public function testCancelLinkDestination($destination) {
    $query = array(
      'destination' => $destination,
    );
    $form = $this
      ->getMock('Drupal\\Core\\Form\\ConfirmFormInterface');
    $path_validator = $this
      ->getMock('Drupal\\Core\\Path\\PathValidatorInterface');
    $container_builder = new ContainerBuilder();
    $container_builder
      ->set('path.validator', $path_validator);
    \Drupal::setContainer($container_builder);
    $url = Url::fromRoute('test_route');
    $path_validator
      ->expects($this
      ->atLeastOnce())
      ->method('getUrlIfValidWithoutAccessCheck')
      ->with('baz')
      ->willReturn($url);
    $link = ConfirmFormHelper::buildCancelLink($form, new Request($query));
    $this
      ->assertSame($url, $link['#url']);
    $this
      ->assertSame([
      'contexts' => [
        'url.query_args:destination',
      ],
    ], $link['#cache']);
  }

  /**
   * Provides test data for testCancelLinkDestination().
   */
  public function providerTestCancelLinkDestination() {
    $data = [];
    $data[] = [
      'baz',
    ];
    $data[] = [
      '/baz',
    ];
    return $data;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ConfirmFormHelperTest::providerTestCancelLinkDestination public function Provides test data for testCancelLinkDestination().
ConfirmFormHelperTest::testCancelLinkDestination public function @covers ::buildCancelLink
ConfirmFormHelperTest::testCancelLinkRoute public function @covers ::buildCancelLink
ConfirmFormHelperTest::testCancelLinkRouteWithParams public function @covers ::buildCancelLink
ConfirmFormHelperTest::testCancelLinkRouteWithUrl public function @covers ::buildCancelLink
ConfirmFormHelperTest::testCancelLinkTitle public function @covers ::buildCancelLink
UnitTestCase::$randomGenerator protected property The random generator.
UnitTestCase::$root protected property The app root.
UnitTestCase::assertArrayEquals protected function Asserts if two arrays are equal by sorting them first.
UnitTestCase::getBlockMockWithMachineName protected function Mocks a block with a block plugin.
UnitTestCase::getClassResolverStub protected function Returns a stub class resolver.
UnitTestCase::getConfigFactoryStub public function Returns a stub config factory that behaves according to the passed in array.
UnitTestCase::getConfigStorageStub public function Returns a stub config storage that returns the supplied configuration.
UnitTestCase::getContainerWithCacheTagsInvalidator protected function Sets up a container with a cache tags invalidator.
UnitTestCase::getRandomGenerator protected function Gets the random generator for the utility methods.
UnitTestCase::getStringTranslationStub public function Returns a stub translation manager that just returns the passed string.
UnitTestCase::randomMachineName public function Generates a unique random string containing letters and numbers.
UnitTestCase::setUp protected function 259