Completed
Push — 8.x-1.x ( a94db3...a3ff3e )
by Janez
02:24
created

InlineEntityIntegrationTest::setUp()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
nc 1
nop 0
dl 0
loc 6
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace Drupal\entity_browser_entity_form\Tests;
4
5
use Drupal\simpletest\WebTestBase;
6
7
/**
8
 * Tests integration with Inline entity form.
9
 *
10
 * @group entity_browser_entity_form
11
 */
12
class InlineEntityIntegrationTest extends WebTestBase {
13
14
  /**
15
   * Modules to enable.
16
   *
17
   * @var array
18
   */
19
  public static $modules = [
20
    'entity_browser_entity_form',
21
    'node',
22
    'field_ui',
23
    'entity_browser_entity_form_test',
24
  ];
25
26
  /**
27
   * {@inheritdoc}
28
   */
29
  protected function setUp() {
30
    parent::setUp();
31
    // Delete unnecessary entity browser.
32
    $browser = $this->container->get('entity_type.manager')->getStorage('entity_browser')->load('entity_browser_test_entity_form');
33
    $this->container->get('entity_type.manager')->getStorage('entity_browser')->delete([$browser]);
34
  }
35
36
  /**
37
   * Tests integration with Inline entity form.
38
   */
39
  public function testInlineEntityIntegration() {
40
    $account = $this->drupalCreateUser([
41
      'administer node form display',
42
      'administer node display',
43
      'create article content',
44
    ]);
45
    $this->drupalLogin($account);
46
    $this->drupalGet('admin/structure/types/manage/article/form-display');
47
    $edit = [
48
      'fields[field_content_reference][region]' => 'content',
49
      'fields[field_content_reference][type]' => 'inline_entity_form_complex',
50
    ];
51
    $this->drupalPostForm(NULL, $edit, t('Save'));
52
    $this->drupalPostAjaxForm(NULL, [], 'field_content_reference_settings_edit');
53
    $this->assertRaw('fields[field_content_reference][settings_edit_form][third_party_settings][entity_browser_entity_form][entity_browser_id]', 'Field to select entity browser is available.');
54
    $edit = [
55
      'fields[field_content_reference][settings_edit_form][third_party_settings][entity_browser_entity_form][entity_browser_id]' => 'entity_browser_entity_form_test',
56
      'fields[field_content_reference][settings_edit_form][settings][allow_existing]' => TRUE,
57
    ];
58
    $this->drupalPostAjaxForm(NULL, $edit, 'field_content_reference_plugin_settings_update');
59
    $this->drupalPostForm(NULL, [], t('Save'));
60
    $this->assertText('Entity browser: Entity browser entity form test', 'Settings summary is working correctly.');
61
62
    $this->drupalGet('node/add');
63
    $elements = $this->xpath('//input[@type="submit" and @value="Add existing node"]');
64
    $button_name = $elements[0]->attributes()['name'];
65
    $this->drupalPostAjaxForm(NULL, [], $button_name);
66
    $this->assertLink('Select entities', 0, 'Entity browser is available.');
67
68
    $browsers = $this->container->get('entity_type.manager')->getStorage('entity_browser')->loadMultiple();
69
    $browser = current($browsers);
70
    $this->container->get('entity_type.manager')->getStorage('entity_browser')->delete([$browser]);
71
    $this->drupalGet('admin/structure/types/manage/article/form-display');
72
    $this->drupalPostAjaxForm(NULL, [], 'field_content_reference_settings_edit');
73
    $this->assertText(t('There are no entity browsers available. You can create one here'), 'Massage displays when no entity browser is available.');
74
  }
75
76
}
77