View source
<?php
namespace Drupal\entity_legal\Tests;
class EntityLegalDocumentTest extends EntityLegalTestBase {
public function testAdminOverviewUi() {
$documents = [];
for ($i = 0; $i < 3; $i++) {
$documents[] = $this
->createDocument();
}
$this
->drupalLogin($this->adminUser);
$this
->drupalGet('admin/structure/legal');
foreach ($documents as $document) {
$this
->assertRaw($document
->label(), 'Legal document found on overview page');
$this
->assertLinkByHref('/admin/structure/legal/manage/' . $document
->id(), 0, 'Edit link for legal document appears on overview');
}
$this
->assertLinkByHref('/admin/structure/legal/add', 0, 'Add document link found');
}
public function testCreateForm() {
$test_label = $this
->randomMachineName();
$test_id = $this
->randomMachineName();
$this
->drupalLogin($this->adminUser);
$this
->drupalPostForm('admin/structure/legal/add', [
'label' => $test_label,
'id' => $test_id,
'settings[new_users][require]' => 1,
'settings[new_users][require_method]' => 'form_inline',
'settings[existing_users][require]' => 1,
'settings[existing_users][require_method]' => 'redirect',
], 'Save');
$created_document = $this
->getUncachedEntity(ENTITY_LEGAL_DOCUMENT_ENTITY_NAME, $test_id);
$this
->assertTrue(!empty($created_document), 'Document was successfully created');
if ($created_document) {
$this
->assertEqual($test_label, $created_document
->label(), 'Label was saved correctly');
$this
->assertEqual($test_id, $created_document
->id(), 'ID was saved correctly');
$this
->assertEqual(1, $created_document
->get('require_signup'), 'Signup requirement was saved correctly');
$this
->assertEqual(1, $created_document
->get('require_existing'), 'Existing user requirement was saved correctly');
$this
->assertEqual('form_inline', $created_document
->get('settings')['new_users']['require_method'], 'Existing user requirement was saved correctly');
$this
->assertEqual('redirect', $created_document
->get('settings')['existing_users']['require_method'], 'Existing user requirement was saved correctly');
}
}
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());
$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');
$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');
$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');
}
public function testDeleteForm() {
$document = $this
->createDocument();
$document_name = $document
->id();
$this
->drupalLogin($this->adminUser);
$this
->drupalGet('admin/structure/legal');
$this
->assertRaw($document_name, 'Document found in overview list');
$this
->drupalPostForm('admin/structure/legal/manage/' . $document_name . '/delete', [], 'Delete');
$this
->assertUrl('admin/structure/legal', [], 'Returned to overview page after deletion');
$this
->assertNoText($document_name, 'Document not found in overview list');
}
}