You are here

public function GlobalSettingsTest::testSettingSaving in Simplify 8

Check that Simplify module global configuration files saves settings.

File

src/Tests/GlobalSettingsTest.php, line 46

Class

GlobalSettingsTest
Test Simplify module global settings.

Namespace

Drupal\simplify\Tests

Code

public function testSettingSaving() {

  // Open admin UI.
  $this
    ->drupalGet('/admin/config/user-interface/simplify');

  /* -------------------------------------------------------.
   * 1/ Check only basic options are there but unchecked.
   */

  // Admin user option.
  $this
    ->assertField('edit-simplify-admin', 'Admin user option is here.');
  $this
    ->assertNoFieldChecked('edit-simplify-admin', 'Admin user option is unchecked.');

  // Node globals.
  $this
    ->assertNoRaw('Nodes', 'Nodes options are not available.');
  $this
    ->assertNoField('edit-simplify-nodes-global-author', 'Author option is not available.');

  // User globals.
  $this
    ->assertRaw('Users', 'Users options are not available.');
  $this
    ->assertNoFieldChecked('edit-simplify-users-global-format', 'Text selection option is not available.');

  // Taxonomy is not here.
  $this
    ->assertNoRaw('Taxonomy', 'Taxonomy options are not available.');
  $this
    ->assertNoField('edit-simplify-taxonomy-global-format', 'Text selection from taxonomy option is not available.');

  // Blocks is not here.
  $this
    ->assertNoRaw('Block', 'Blocks options are now available.');
  $this
    ->assertNoField('edit-simplify-blocks-global-format', 'Text format option is not available.');

  /* -------------------------------------------------------.
   * 2/ Check optionnal options are added if modules becomes available.
   */
  $this->container
    ->get('module_installer')
    ->install([
    'node',
    'book',
    'taxonomy',
    'block',
    'comment',
    'menu_ui',
    'path',
  ], TRUE);
  $this
    ->drupalGet('/admin/config/user-interface/simplify');

  // Node globals.
  $this
    ->assertRaw('Nodes', 'Nodes options are now available.');
  $this
    ->assertNoFieldChecked('edit-simplify-nodes-global-author', 'Author option is unchecked.');
  $this
    ->assertNoFieldChecked('edit-simplify-nodes-global-format', 'Format option is unchecked.');
  $this
    ->assertNoFieldChecked('edit-simplify-nodes-global-options', 'Publishing option is unchecked.');
  $this
    ->assertNoFieldChecked('edit-simplify-nodes-global-revision-information', 'Revision option is unchecked.');

  // User globals.
  $this
    ->assertRaw('Users', 'Users options are now available.');
  $this
    ->assertNoFieldChecked('edit-simplify-users-global-format', 'Text selection option is unchecked.');
  $this
    ->assertNoFieldChecked('edit-simplify-users-global-status', 'Status option is unchecked.');

  // Taxonomy is not here.
  $this
    ->assertRaw('Taxonomy', 'Taxonomy options are now available.');
  $this
    ->assertNoFieldChecked('edit-simplify-taxonomies-global-format', 'Taxonomy selection option is unchecked.');
  $this
    ->assertNoFieldChecked('edit-simplify-taxonomies-global-relations', 'Taxonomy relation option is unchecked.');
  $this
    ->assertNoFieldChecked('edit-simplify-taxonomies-global-path', 'Taxonomy url alias option is unchecked.');

  // Blocks is not here.
  $this
    ->assertRaw('Block', 'Blocks options are now available.');
  $this
    ->assertNoFieldChecked('edit-simplify-blocks-global-format', 'Text format option is unchecked.');

  /*  -------------------------------------------------------.
   * 3/ Check and validate some options.
   */
  $options = [
    'simplify_admin' => TRUE,
    'simplify_nodes_global[author]' => 'author',
    'simplify_nodes_global[comment]' => 'comment',
    'simplify_nodes_global[options]' => 'options',
    'simplify_taxonomies_global[format]' => 'format',
    'simplify_taxonomies_global[path]' => 'path',
  ];
  $this
    ->drupalPostForm(NULL, $options, $this
    ->t('Save configuration'));

  // User1.
  $this
    ->assertFieldChecked('edit-simplify-admin', 'Admin user option is checked.');

  // Nodes.
  $this
    ->assertFieldChecked('edit-simplify-nodes-global-author', 'Node authoring information option is checked.');
  $this
    ->assertNoFieldChecked('edit-simplify-nodes-global-format', 'Node text fomat selection option is not checked.');
  $this
    ->assertFieldChecked('edit-simplify-nodes-global-options', 'Node promoting options option is checked.');
  $this
    ->assertNoFieldChecked('edit-simplify-nodes-global-revision-information', 'Node revision information option is not checked.');
  $this
    ->assertNoFieldChecked('edit-simplify-nodes-global-book', 'Node book outline option is not checked.');
  $this
    ->assertFieldChecked('edit-simplify-nodes-global-comment', 'Node comment settings option is checked.');
  $this
    ->assertNoFieldChecked('edit-simplify-nodes-global-menu', 'Node menu settings option is not checked.');
  $this
    ->assertNoFieldChecked('edit-simplify-nodes-global-path-settings', 'Node URL path settings option is not checked.');

  // Vocabularies.
  $this
    ->assertFieldChecked('edit-simplify-taxonomies-global-format', 'Taxonomy text fomat selection option is checked.');
  $this
    ->assertNoFieldChecked('edit-simplify-taxonomies-global-relations', 'Taxonomy relation option is not checked.');
  $this
    ->assertFieldChecked('edit-simplify-taxonomies-global-path', 'Taxonomy url alias option is checked.');
}