refreshless-8.x-1.x-dev/modules/refreshless_turbo/tests/src/FunctionalJavascript/NavigationTest.php

modules/refreshless_turbo/tests/src/FunctionalJavascript/NavigationTest.php
<?php

declare(strict_types=1);

namespace Drupal\Tests\refreshless_turbo\FunctionalJavascript;

use Drupal\Core\Url;
use Drupal\Tests\refreshless_turbo\FunctionalJavascript\TurboWebDriverTestBase;

/**
 * Navigation tests.
 *
 * @group refreshless
 *
 * @group refreshless_turbo
 */
class NavigationTest extends TurboWebDriverTestBase {

  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';

  /**
   * {@inheritdoc}
   */
  protected static $modules = ['block', 'refreshless_turbo', 'system'];

  /**
   * Test basic navigation using Turbo Drive.
   */
  public function testBasic(): void {

    // Place the local tasks block so that we have Turbo Drive-enabled links to
    // click.
    $this->drupalPlaceBlock('local_tasks_block', [
      'region' => 'content', 'id' => 'local-tasks-block',
    ]);

    // Do a full page load request to start.
    $this->drupalGet('user/login');

    $this->assertSession()->assertRefreshlessIsPresent();

    $this->assertSession()->startRefreshlessPersist();

    // Click a Turbo Drive-enabled link.
    $this->click('[data-drupal-link-system-path="user/register"]');

    $this->assertWaitOnRefreshlessRequest();

    // Assert that the user register form is now available.
    $this->assertSession()->elementExists(
      'css', 'form[data-drupal-selector="user-register-form"]',
    );

    // Click a Turbo Drive-enabled link.
    $this->click('[data-drupal-link-system-path="user/password"]');

    $this->assertWaitOnRefreshlessRequest();

    // Assert that the reset password form is now available.
    $this->assertSession()->elementExists(
      'css', 'form[data-drupal-selector="user-pass"]',
    );

  }

  /**
   * Test basic navigation in admin section using Turbo Drive.
   */
  public function testAdmin(): void {

    $adminUser = $this->drupalCreateUser([], null, true);

    $this->drupalLogin($adminUser);

    $this->drupalPlaceBlock('system_breadcrumb_block', [
      'region' => 'breadcrumb', 'id' => 'breadcrumbs',
    ]);

    $adminConfigUrl = Url::fromRoute('system.admin_config');

    $siteSettingsUrl = Url::fromRoute('system.site_information_settings');

    $performanceSettingsUrl = Url::fromRoute('system.performance_settings');

    $this->drupalGet($adminConfigUrl);

    $this->assertSession()->assertRefreshlessIsPresent();

    $this->assertSession()->startRefreshlessPersist();

    $this->click('main a[href="' . $siteSettingsUrl->setAbsolute(
      false,
    )->toString() . '"]');

    $this->assertWaitOnRefreshlessRequest();

    $this->assertSession()->addressEquals($siteSettingsUrl);

    $this->assertSession()->elementExists(
      'css', 'input[data-drupal-selector="edit-site-name"]',
    );

    $this->click('#block-breadcrumbs a[href="' . $adminConfigUrl->setAbsolute(
      false,
    )->toString() . '"]');

    $this->assertWaitOnRefreshlessRequest();

    $this->assertSession()->addressEquals($adminConfigUrl);

    $this->click('main a[href="' . $performanceSettingsUrl->setAbsolute(
      false,
    )->toString() . '"]');

    $this->assertWaitOnRefreshlessRequest();

    $this->assertSession()->addressEquals($performanceSettingsUrl);

    $this->assertSession()->buttonExists('Clear all caches');

  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc