1 filter_js_settings.test public FilterSettingsAttachedTestCase::testJavascriptSettingsAttached()

Test that the JavaScript settings attached to page node form are correct.

File

core/modules/filter/tests/filter_js_settings.test, line 82
Functional tests for the Filter module.

Class

FilterSettingsAttachedTestCase
Test functionality specific to Filter module's attach behavior.

Code

public function testJavascriptSettingsAttached() {
  // Snippets from the script tag containing the settings.
  $empty_settings = '"filter":{"formats":[]}';
  $basic_settings = '"filter":{"formats":{"basic":{"filterSettings":[],"editor":"ckeditor5","editorSettings":';

  $this->backdropGet('node/add/page');
  $script_tag = $this->xpath('//script[contains(text(), :string)]', array(':string' => 'window.Backdrop'));
  $js_settings = (string) $script_tag[0];
  $this->assertFalse(strpos($js_settings, $empty_settings) > 0, 'JavaScript setting for filter formats is not empty');
  $this->assertTrue(strpos($js_settings, $basic_settings) > 0, 'JavaScript setting for filter formats contain basic format');

  // Move body field below content field and check again.
  config_set('field.instance.node.page.body', 'widget.weight', 7);
  field_info_cache_clear();

  $this->backdropGet('node/add/page');
  $script_tag = $this->xpath('//script[contains(text(), :string)]', array(':string' => 'window.Backdrop'));
  $js_settings = (string) $script_tag[0];
  $this->assertFalse(strpos($js_settings, $empty_settings) > 0, 'After switching field order, JavaScript setting for filter formats is not empty');
  $this->assertTrue(strpos($js_settings, $basic_settings) > 0, 'After switching field order, JavaScript setting for filter formats contain basic format');
}