Updated all the contrib modules to their latest versions.
[yaffs-website] / web / modules / contrib / inline_entity_form / src / Tests / ElementWebTest.php
1 <?php
2
3 namespace Drupal\inline_entity_form\Tests;
4
5 /**
6  * Tests the IEF element on a custom form.
7  *
8  * @group inline_entity_form
9  */
10 class ElementWebTest extends InlineEntityFormTestBase {
11
12   /**
13    * Modules to enable.
14    *
15    * @var array
16    */
17   public static $modules = ['inline_entity_form_test'];
18
19   /**
20    * Prepares environment for
21    */
22   protected function setUp() {
23     parent::setUp();
24
25     $this->user = $this->createUser([
26       'create ief_simple_single content',
27       'edit any ief_test_custom content',
28       'view own unpublished content',
29       'administer nodes',
30     ]);
31
32     $this->drupalLogin($this->user);
33
34     $this->fieldStorageConfigStorage = $this->container->get('entity_type.manager')->getStorage('field_storage_config');
35   }
36
37   /**
38    * Tests IEF on a custom form.
39    */
40   public function testCustomFormIEF() {
41     $form_mode_possibilities = [
42       'default',
43       'inline',
44     ];
45     foreach ($form_mode_possibilities as $form_mode_possibility) {
46       $title = $this->randomMachineName();
47       $this->drupalGet("ief-test/$form_mode_possibility");
48       $this->assertText(t('Title'), 'Title field found on the form.');
49       $this->assertText(t('Positive int'), 'Positive int field found on form.');
50       $this->checkFormDisplayFields("node.ief_test_custom.$form_mode_possibility", 'inline_entity_form');
51
52       $edit = [];
53       $this->drupalPostForm('ief-test', $edit, t('Save'));
54       $this->assertText('Title field is required.');
55       $this->assertNoNodeByTitle($title);
56
57       $edit['inline_entity_form[title][0][value]'] = $title;
58       $edit['inline_entity_form[positive_int][0][value]'] = -1;
59       $this->drupalPostForm('ief-test', $edit, t('Save'));
60       $this->assertText('Positive int must be higher than or equal to 1');
61       $this->assertNoNodeByTitle($title);
62
63       $edit['inline_entity_form[positive_int][0][value]'] = 11;
64       $this->drupalPostForm('ief-test', $edit, t('Save'));
65       $message = t('Created @entity_type @label.', ['@entity_type' => t('Content'), '@label' => $edit['inline_entity_form[title][0][value]']]);
66       $this->assertText($message, 'Status message found on the page.');
67       $this->assertNodeByTitle($title, 'ief_test_custom');
68
69       if ($node = $this->getNodeByTitle($title)) {
70         $this->drupalGet("ief-test/$form_mode_possibility/{$node->id()}");
71         $this->assertFieldByName('inline_entity_form[title][0][value]', $title, 'Node title appears in form.');
72         $this->checkFormDisplayFields("node.ief_test_custom.$form_mode_possibility", 'inline_entity_form');
73         $this->assertFieldByName('inline_entity_form[positive_int][0][value]', 11, 'Positive int field appears in form.');
74         $updated_title = $title . ' - updated';
75         $edit['inline_entity_form[title][0][value]'] = $updated_title;
76         $this->drupalPostForm(NULL, $edit, t('Update'));
77         $this->assertNodeByTitle($updated_title, 'ief_test_custom');
78       }
79     }
80   }
81
82 }