freelinking-8.x-3.x-dev/tests/src/Functional/FreelinkingBrowserTestBase.php

tests/src/Functional/FreelinkingBrowserTestBase.php
<?php

namespace Drupal\Tests\freelinking\Functional;

use Drupal\Tests\BrowserTestBase;

/**
 * Base test class for functional tests.
 */
abstract class FreelinkingBrowserTestBase extends BrowserTestBase {

  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'node',
    'user',
    'path',
    'file',
    'filter',
    'search',
    'freelinking',
  ];

  /**
   * A privileged user account to test with.
   *
   * @var \Drupal\user\Entity\User
   */
  protected $privilegedUser;

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

  /**
   * {@inheritdoc}
   */
  protected function setUp(): void {
    parent::setUp();

    // Create a content type.
    $this->createContentType(['name' => 'Basic page', 'type' => 'page']);

    $this->privilegedUser = $this->createUser([
      'access administration pages',
      'access content',
      'administer content types',
      'administer filters',
      'access user profiles',
      'create page content',
      'edit own page content',
      'search content',
    ]);
    $this->drupalLogin($this->privilegedUser);

    // Create two nodes as the very basic requirements for freelinking.
    $this->drupalCreateNode(['type' => 'page', 'title' => t('First page')]);
    $this->drupalCreateNode(['type' => 'page', 'title' => t('Second page')]);
  }

  /**
   * Update filter settings.
   *
   * @param string $name
   *   The filter name to edit. Defaults to 'plain_text'.
   * @param mixed[]|null $edit
   *   The Freelinking filter configuration to edit. Defaults to all freelinking
   *   plugins enabled.
   */
  protected function updateFilterSettings($name = 'plain_text', ?array $edit = NULL) {
    $label = str_replace('_', ' ', ucwords($name));

    // Set default edit options.
    if (!isset($edit)) {
      $edit = [
        'filters[freelinking][status]' => '1',
        'filters[freelinking][weight]' => 0,
        'filters[freelinking][settings][plugins][nodetitle][enabled]' => '1',
        'filters[freelinking][settings][plugins][external][enabled]' => '1',
        'filters[freelinking][settings][plugins][external][settings][scrape]' => '0',
        'filters[freelinking][settings][plugins][file][enabled]' => '1',
        'filters[freelinking][settings][plugins][file][settings][scheme]' => 'public',
        'filters[freelinking][settings][plugins][drupalorg][enabled]' => '1',
        'filters[freelinking][settings][plugins][drupalorg][settings][scrape]' => '0',
        'filters[freelinking][settings][plugins][drupalorg][settings][node]' => '1',
        'filters[freelinking][settings][plugins][drupalorg][settings][project]' => '1',
        'filters[freelinking][settings][plugins][google][enabled]' => '1',
        'filters[freelinking][settings][plugins][nid][enabled]' => '1',
        'filters[freelinking][settings][plugins][path_alias][enabled]' => '1',
        'filters[freelinking][settings][plugins][search][enabled]' => '1',
        'filters[freelinking][settings][plugins][user][enabled]' => '1',
        'filters[freelinking][settings][plugins][wiki][enabled]' => '1',
        'filters[filter_url][weight]' => 1,
        'filters[filter_html][weight]' => 2,
        'filters[filter_autop][weight]' => 3,
        'filters[filter_htmlcorrector][weight]' => 4,
      ];
    }

    $this->drupalGet('admin/config/content/formats/manage/' . $name);
    $this->submitForm($edit, 'Save configuration');
    $this->assertSession()
      ->pageTextContains(t('The text format @label has been updated.', ['@label' => $label]));
    $this->drupalGet('admin/config/content/formats/manage/' . $name);
    $this->assertSession()
      ->checkboxChecked('edit-filters-freelinking-status');
  }

}

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

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