Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
QueuerConfigFormTest.php 2.25 KiB
<?php

namespace Drupal\Tests\purge_queuer_url\FunctionalJavascript;

use Drupal\purge_queuer_url\Form\ConfigurationForm;
use Drupal\Tests\purge_ui\FunctionalJavascript\Form\Config\QueuerConfigFormTestBase;

/**
 * Tests \Drupal\purge_queuer_url\Form\ConfigurationForm.
 *
 * @group purge_queuer_url
 */
class QueuerConfigFormTest extends QueuerConfigFormTestBase {

  /**
   * {@inheritdoc}
   */
  public static $modules = ['purge_queuer_url'];

  /**
   * {@inheritdoc}
   */
  protected $pluginId = 'urlpath';

  /**
   * {@inheritdoc}
   */
  protected $formClass = ConfigurationForm::class;

  /**
   * {@inheritdoc}
   */
  protected $formId = 'purge_queuer_url.configuration_form';

  /**
   * {@inheritdoc}
   */
  public function testSaveConfigurationSubmit(): void {
    $this->drupalLogin($this->adminUser);
    $this->drupalGet($this->getPath());
    // Assert the standard fields and their default values.
    $this->assertSession()->fieldExists('edit-queue-paths');
    $this->assertSession()->checkboxNotChecked('edit-queue-paths');
    $this->assertSession()->fieldExists('edit-host-override');
    $this->assertSession()->checkboxNotChecked('edit-host-override');
    $this->assertSession()->fieldExists('edit-host');
    $this->assertSession()->fieldValueEquals('edit-host', '');
    $this->assertSession()->fieldExists('edit-scheme-override');
    $this->assertSession()->checkboxNotChecked('edit-scheme-override');
    $this->assertSession()->fieldExists('edit-scheme');
    $this->assertSession()->fieldValueEquals('edit-scheme', 'http');
    $this->assertRaw('Clear traffic history');
    // Test that direct configuration changes are reflected properly.
    $this->config('purge_queuer_url.settings')
      ->set('queue_paths', TRUE)
      ->set('host_override', TRUE)
      ->set('host', 'foobar.baz')
      ->set('scheme_override', TRUE)
      ->set('scheme', 'https')
      ->save();
    $this->drupalGet($this->getPath());
    $this->assertSession()->checkboxChecked('edit-queue-paths');
    $this->assertSession()->checkboxChecked('edit-host-override');
    $this->assertSession()->fieldValueEquals('edit-host', 'foobar.baz');
    $this->assertSession()->checkboxChecked('edit-scheme-override');
    $this->assertSession()->fieldValueEquals('edit-scheme', 'https');
  }

}