You are here

public function EntityLegalDocumentTest::testEditForm in Entity Legal 3.0.x

Same name and namespace in other branches
  1. 8.2 src/Tests/EntityLegalDocumentTest.php \Drupal\entity_legal\Tests\EntityLegalDocumentTest::testEditForm()
  2. 4.0.x src/Tests/EntityLegalDocumentTest.php \Drupal\entity_legal\Tests\EntityLegalDocumentTest::testEditForm()

Test the functionality of the edit form.

File

src/Tests/EntityLegalDocumentTest.php, line 69

Class

EntityLegalDocumentTest
Tests admin functionality for the legal document entity.

Namespace

Drupal\entity_legal\Tests

Code

public function testEditForm() {
  $document = $this
    ->createDocument(TRUE, TRUE, [
    'new_users' => [
      'require_method' => 'form_inline',
    ],
    'existing_users' => [
      'require_method' => 'redirect',
    ],
  ]);
  $this
    ->drupalLogin($this->adminUser);
  $this
    ->drupalGet('admin/structure/legal/manage/' . $document
    ->id());

  // Test field default values.
  $this
    ->assertFieldByName('label', $document
    ->label(), 'Label is set correctly for document');
  $this
    ->assertFieldByName('settings[new_users][require]', 1, 'Require new users set correctly');
  $this
    ->assertFieldByName('settings[new_users][require_method]', 'form_inline', 'Require existing users set correctly');
  $this
    ->assertFieldByName('settings[existing_users][require]', 1, 'Require existing users set correctly');
  $this
    ->assertFieldByName('settings[existing_users][require_method]', 'redirect', 'Require existing users set correctly');

  // Test that changing values saves correctly.
  $new_label = $this
    ->randomMachineName();
  $this
    ->drupalPostForm('admin/structure/legal/manage/' . $document
    ->id(), [
    'label' => $new_label,
    'settings[new_users][require]' => FALSE,
    'settings[new_users][require_method]' => 'form_link',
    'settings[existing_users][require]' => FALSE,
    'settings[existing_users][require_method]' => 'popup',
  ], 'Save');

  /** @var \Drupal\entity_legal\EntityLegalDocumentInterface $document */
  $document = $this
    ->getUncachedEntity(ENTITY_LEGAL_DOCUMENT_ENTITY_NAME, $document
    ->id());
  $this
    ->assertEqual($new_label, $document
    ->label(), 'Label was saved correctly');
  $this
    ->assertEqual(0, $document
    ->get('require_signup'), 'Signup requirement was saved correctly');
  $this
    ->assertEqual(0, $document
    ->get('require_existing'), 'Existing user requirement was saved correctly');
  $this
    ->assertEqual('form_link', $document
    ->get('settings')['new_users']['require_method'], 'Form link method was saved correctly');
  $this
    ->assertEqual('popup', $document
    ->get('settings')['existing_users']['require_method'], 'Popup require method was saved correctly');
}