52 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			52 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								declare(strict_types=1);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace Drupal\FunctionalJavascriptTests;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Tests Drupal settings retrieval in WebDriverTestBase tests.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @group javascript
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								class JavascriptGetDrupalSettingsTest extends WebDriverTestBase {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * {@inheritdoc}
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  protected static $modules = ['test_page_test'];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * {@inheritdoc}
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  protected $defaultTheme = 'stark';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Tests retrieval of Drupal settings.
							 | 
						||
| 
								 | 
							
								   *
							 | 
						||
| 
								 | 
							
								   * @see \Drupal\FunctionalJavascriptTests\WebDriverTestBase::getDrupalSettings()
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  public function testGetDrupalSettings(): void {
							 | 
						||
| 
								 | 
							
								    $this->drupalLogin($this->drupalCreateUser());
							 | 
						||
| 
								 | 
							
								    $this->drupalGet('test-page');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // Check that we can read the JS settings.
							 | 
						||
| 
								 | 
							
								    $js_settings = $this->getDrupalSettings();
							 | 
						||
| 
								 | 
							
								    $this->assertSame('azAZ09();.,\\\/-_{}', $js_settings['test-setting']);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // Dynamically change the setting using JavaScript.
							 | 
						||
| 
								 | 
							
								    $script = <<<EndOfScript
							 | 
						||
| 
								 | 
							
								(function () {
							 | 
						||
| 
								 | 
							
								  drupalSettings['test-setting'] = 'foo';
							 | 
						||
| 
								 | 
							
								})();
							 | 
						||
| 
								 | 
							
								EndOfScript;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    $this->getSession()->evaluateScript($script);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // Check that the setting has been changed.
							 | 
						||
| 
								 | 
							
								    $js_settings = $this->getDrupalSettings();
							 | 
						||
| 
								 | 
							
								    $this->assertSame('foo', $js_settings['test-setting']);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |