public function AjaxTest::testDrupalSettingsCachingRegression in Drupal 10
Same name and namespace in other branches
- 8 core/tests/Drupal/FunctionalJavascriptTests/Ajax/AjaxTest.php \Drupal\FunctionalJavascriptTests\Ajax\AjaxTest::testDrupalSettingsCachingRegression()
- 9 core/tests/Drupal/FunctionalJavascriptTests/Ajax/AjaxTest.php \Drupal\FunctionalJavascriptTests\Ajax\AjaxTest::testDrupalSettingsCachingRegression()
Tests that AJAX loaded libraries are not retained between requests.
See also
https://www.drupal.org/node/2647916
File
- core/
tests/ Drupal/ FunctionalJavascriptTests/ Ajax/ AjaxTest.php, line 55
Class
- AjaxTest
- Tests AJAX responses.
Namespace
Drupal\FunctionalJavascriptTests\AjaxCode
public function testDrupalSettingsCachingRegression() {
$this
->drupalGet('ajax-test/dialog');
$assert = $this
->assertSession();
$session = $this
->getSession();
// Insert a fake library into the already loaded library settings.
$fake_library = 'fakeLibrary/fakeLibrary';
$session
->evaluateScript("drupalSettings.ajaxPageState.libraries = drupalSettings.ajaxPageState.libraries + ',{$fake_library}';");
$libraries = $session
->evaluateScript('drupalSettings.ajaxPageState.libraries');
// Test that the fake library is set.
$this
->assertStringContainsString($fake_library, $libraries);
// Click on the AJAX link.
$this
->clickLink('Link 8 (ajax)');
$assert
->assertWaitOnAjaxRequest();
// Test that the fake library is still set after the AJAX call.
$libraries = $session
->evaluateScript('drupalSettings.ajaxPageState.libraries');
$this
->assertStringContainsString($fake_library, $libraries);
// Reload the page, this should reset the loaded libraries and remove the
// fake library.
$this
->drupalGet('ajax-test/dialog');
$libraries = $session
->evaluateScript('drupalSettings.ajaxPageState.libraries');
$this
->assertStringNotContainsString($fake_library, $libraries);
// Click on the AJAX link again, and the libraries should still not contain
// the fake library.
$this
->clickLink('Link 8 (ajax)');
$assert
->assertWaitOnAjaxRequest();
$libraries = $session
->evaluateScript('drupalSettings.ajaxPageState.libraries');
$this
->assertStringNotContainsString($fake_library, $libraries);
}