Same name and namespace in other branches
  1. 8.x-1.x tests/src/Functional/EasyBreabcrumbConfigureTest.php \Drupal\Tests\easy_email\Functional\EasyBreabcrumbConfigureTest::doUpdateTest() 1 comment

Tests easy_breadcrumb_update_8006().

Calls the update method manually on a fixture.

Parameters

string $fixture: Path to fixture.

2 calls to EasyBreabcrumbConfigureTest::doUpdateTest()
EasyBreabcrumbConfigureTest::test8006AfterFormSaveConfigurationUpdate in tests/src/Functional/EasyBreabcrumbConfigureTest.php
Tests easy_breadcrumb_update_8006() on config that has been saved via form.
EasyBreabcrumbConfigureTest::test8006DefaultConfigurationUpdate in tests/src/Functional/EasyBreabcrumbConfigureTest.php
Tests easy_breadcrumb_update_8006() on default install config.

File

tests/src/Functional/EasyBreabcrumbConfigureTest.php, line 67

Class

EasyBreabcrumbConfigureTest
Tests configuring easy_breadcrumb.

Namespace

Drupal\Tests\easy_email\Functional

Code

protected function doUpdateTest($fixture) {
    $assert = $this->assertSession();
    \Drupal::moduleHandler()->loadInclude('easy_breadcrumb', 'install');
    // Reset the configuration to pre 8006 values. Directly write to the
    // database to avoid schema checking.
    $pre8006_install_configuration = Yaml::decode(file_get_contents($fixture));
    \Drupal::database()->update('config')
        ->fields([
        'data' => serialize($pre8006_install_configuration),
    ])
        ->condition('name', 'easy_breadcrumb.settings')
        ->condition('collection', '')
        ->execute();
    // Run the update.
    easy_breadcrumb_update_8006();
    $this->refreshVariables();
    $config_after_update = $this->config('easy_breadcrumb.settings')
        ->get();
    $this->assertArrayNotHasKey('dependencies', $config_after_update);
    $this->assertArrayNotHasKey('add_structured_data_jsonld', $config_after_update);
    $this->assertArrayHasKey(EasyBreadcrumbConstants::ADD_STRUCTURED_DATA_JSON_LD, $config_after_update);
    $this->assertArrayHasKey(EasyBreadcrumbConstants::CAPITALIZATOR_FORCED_WORDS, $config_after_update);
    $this->assertArrayHasKey(EasyBreadcrumbConstants::INCLUDE_INVALID_PATHS, $config_after_update);
    $this->assertArrayHasKey(EasyBreadcrumbConstants::EXCLUDED_PATHS, $config_after_update);
    $this->assertArrayHasKey(EasyBreadcrumbConstants::REPLACED_TITLES, $config_after_update);
    $this->assertArrayHasKey(EasyBreadcrumbConstants::CUSTOM_PATHS, $config_after_update);
    $this->assertArrayHasKey(EasyBreadcrumbConstants::TITLE_SEGMENT_AS_LINK, $config_after_update);
    // Ensure that 'capitalizator_ignored_words' and
    // 'capitalizator_forced_words' are lists and not maps.
    $this->assertSame(array_keys($config_after_update[EasyBreadcrumbConstants::CAPITALIZATOR_IGNORED_WORDS]), array_keys(array_values($config_after_update[EasyBreadcrumbConstants::CAPITALIZATOR_IGNORED_WORDS])));
    $this->assertSame(array_keys($config_after_update[EasyBreadcrumbConstants::CAPITALIZATOR_FORCED_WORDS]), array_keys(array_values($config_after_update[EasyBreadcrumbConstants::CAPITALIZATOR_FORCED_WORDS])));
    // Easy configuration is not changed by visiting configuration form.
    $this->drupalLogin($this->createUser([
        'administer easy breadcrumb',
    ]));
    $this->drupalGet('admin/config/user-interface/easy-breadcrumb');
    $assert->statusCodeEquals(200);
    $this->submitForm([], 'Save configuration');
    $assert->statusCodeEquals(200);
    $assert->pageTextContainsOnce('The configuration options have been saved.');
    $this->assertSame($config_after_update, $this->config('easy_breadcrumb.settings')
        ->get());
}