function RefreshVariablesTrait::refreshVariables

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/Test/RefreshVariablesTrait.php \Drupal\Core\Test\RefreshVariablesTrait::refreshVariables()
  2. 8.9.x core/lib/Drupal/Core/Test/RefreshVariablesTrait.php \Drupal\Core\Test\RefreshVariablesTrait::refreshVariables()
  3. 10 core/lib/Drupal/Core/Test/RefreshVariablesTrait.php \Drupal\Core\Test\RefreshVariablesTrait::refreshVariables()

Refreshes in-memory configuration and state information.

Useful after a page request is made that changes configuration or state in a different thread.

In other words calling a settings page with $this->submitForm() with a changed value would update configuration to reflect that change, but in the thread that made the call (thread running the test) the changed values would not be picked up.

This method clears the cache and loads a fresh copy.

17 calls to RefreshVariablesTrait::refreshVariables()
BrowserWithJavascriptTest::drupalGetWithAlert in core/tests/Drupal/FunctionalJavascriptTests/BrowserWithJavascriptTest.php
Retrieves a Drupal path or an absolute path.
CommentResourceTestBase::testPostSkipCommentApproval in core/modules/comment/tests/src/Functional/Rest/CommentResourceTestBase.php
Tests POSTing a comment with and without 'skip comment approval'.
FunctionalTestSetupTrait::resetAll in core/lib/Drupal/Core/Test/FunctionalTestSetupTrait.php
Resets all data structures after having enabled new modules.
InstallerTestBase::refreshVariables in core/tests/Drupal/FunctionalTests/Installer/InstallerTestBase.php
FunctionalTestSetupTrait::refreshVariables() tries to operate on persistent storage, which is only available after the installer completed.
LanguageNegotiationInfoTest::stateSet in core/modules/language/tests/src/Functional/LanguageNegotiationInfoTest.php
Sets state flags for language_test module.

... See full list

2 methods override RefreshVariablesTrait::refreshVariables()
InstallerTestBase::refreshVariables in core/tests/Drupal/FunctionalTests/Installer/InstallerTestBase.php
FunctionalTestSetupTrait::refreshVariables() tries to operate on persistent storage, which is only available after the installer completed.
StandardPerformanceTest::refreshVariables in core/profiles/standard/tests/src/FunctionalJavascript/StandardPerformanceTest.php
Provides an empty implementation to prevent the resetting of caches.

File

core/lib/Drupal/Core/Test/RefreshVariablesTrait.php, line 25

Class

RefreshVariablesTrait
Provides a method to refresh in-memory configuration and state information.

Namespace

Drupal\Core\Test

Code

protected function refreshVariables() {
    // Clear the tag cache.
    \Drupal::service('cache_tags.invalidator')->resetChecksums();
    foreach (Cache::getBins() as $backend) {
        if (is_callable([
            $backend,
            'reset',
        ])) {
            $backend->reset();
        }
    }
    foreach (Cache::getMemoryBins() as $backend) {
        if (is_callable([
            $backend,
            'reset',
        ])) {
            $backend->reset();
        }
    }
    \Drupal::service('config.factory')->reset();
    \Drupal::service('state')->reset();
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.