TabledragMenuTest.php

Same filename and directory in other branches
  1. 4.0.x modules/tabledrag_example/tests/src/Functional/TabledragMenuTest.php

Namespace

Drupal\Tests\tabledrag_example\Functional

File

modules/tabledrag_example/tests/src/Functional/TabledragMenuTest.php

View source
<?php

namespace Drupal\Tests\tabledrag_example\Functional;

use Drupal\Core\Url;
use Drupal\Tests\BrowserTestBase;

/**
 * Verify functionalities of tabledrag_example.
 *
 * @group tabledrag_example
 * @group examples
 *
 * @ingroup tabledrag_example
 *
 * @todo Add more tests in
 *   https://www.drupal.org/project/examples/issues/2925368
 */
class TabledragMenuTest extends BrowserTestBase {
  
  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';
  
  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'tabledrag_example',
  ];
  
  /**
   * The installation profile to use with this test.
   *
   * We need the 'minimal' profile in order to make sure the Tool block is
   * available.
   *
   * @var string
   */
  protected $profile = 'minimal';
  
  /**
   * Tests tabledrag_example menus.
   */
  public function testTabledragInteractions() {
    $links = [
      'examples/tabledrag-example',
      'examples/tabledrag-example/row',
      'examples/tabledrag-example/nested',
      'examples/tabledrag-example/roots-and-leaves',
      'examples/tabledrag-example/reset',
    ];
    // Login a user that can access content.
    $this->drupalLogin($this->createUser([
      'access content',
    ]));
    $assertion = $this->assertSession();
    // Get the front page, which should only have the links in the sidebar.
    $this->drupalGet('');
    foreach ($links as $path) {
      $assertion->linkByHrefExists($path);
    }
    // Get each path and verify a 200 response.
    foreach ($links as $path) {
      $this->drupalGet($path);
      $assertion->statusCodeEquals(200);
    }
    // Click all the submit and cancel buttons.
    $pages = [
      'tabledrag_example.simple_form' => [
        'Save All Changes',
        'Cancel',
      ],
      'tabledrag_example.parent_form' => [
        'Save All Changes',
        'Cancel',
      ],
      'tabledrag_example.rootleaf_form' => [
        'Save All Changes',
        'Cancel',
      ],
      'tabledrag_example.reset_form' => [
        'Yes, Reset It!',
      ],
    ];
    foreach ($pages as $route => $buttons) {
      $path = Url::fromRoute($route);
      foreach ($buttons as $button) {
        $this->drupalGet($path);
        $this->submitForm([], $button);
        $assertion->statusCodeEquals(200);
      }
    }
    // The reset form implements 'Cancel' as a link.
    $this->drupalGet(Url::fromRoute('tabledrag_example.reset_form'));
    $this->clickLink('Cancel');
    $assertion->statusCodeEquals(200);
  }

}

Classes

Title Deprecated Summary
TabledragMenuTest Verify functionalities of tabledrag_example.