Upgraded imagemagick and manually altered pdf to image module to handle changes....
[yaffs-website] / web / modules / contrib / entity_reference_revisions / src / Tests / EntityReferenceRevisionsDiffTest.php
1 <?php
2
3 namespace Drupal\entity_reference_revisions\Tests;
4
5 use Drupal\field_ui\Tests\FieldUiTestTrait;
6 use Drupal\simpletest\WebTestBase;
7
8 /**
9  * Tests the entity_reference_revisions diff plugin.
10  *
11  * @group entity_reference_revisions
12  *
13  * @dependencies diff
14  */
15 class EntityReferenceRevisionsDiffTest extends WebTestBase {
16
17   use FieldUiTestTrait;
18   use EntityReferenceRevisionsCoreVersionUiTestTrait;
19
20   /**
21    * Modules to enable.
22    *
23    * @var array
24    */
25   public static $modules = [
26     'block_content',
27     'node',
28     'field',
29     'entity_reference_revisions',
30     'field_ui',
31     'diff',
32   ];
33
34   /**
35    * {@inheritdoc}
36    */
37   protected function setUp() {
38     parent::setUp();
39     // Create article content type.
40     $this->drupalCreateContentType(['type' => 'article', 'name' => 'Article']);
41
42     // Disable visual inline diff.
43     $config = $this->config('diff.settings')
44       ->set('general_settings.layout_plugins.visual_inline.enabled', FALSE);
45     $config->save();
46
47     $admin_user = $this->drupalCreateUser([
48       'administer site configuration',
49       'administer nodes',
50       'administer content types',
51       'administer node fields',
52       'administer node display',
53       'administer node form display',
54       'view all revisions',
55       'edit any article content',
56     ]);
57     $this->drupalLogin($admin_user);
58     $this->drupalPlaceBlock('system_breadcrumb_block');
59   }
60
61   /**
62    * Test for diff plugin of ERR.
63    *
64    * Tests that the diff is displayed when changes are made in an ERR field.
65    */
66   public function testEntityReferenceRevisionsDiff() {
67     // Add an entity_reference_revisions field.
68     static::fieldUIAddNewField('admin/structure/types/manage/article', 'err_field', 'err_field', 'entity_reference_revisions', [
69       'settings[target_type]' => 'node',
70       'cardinality' => '-1',
71     ], [
72       'settings[handler_settings][target_bundles][article]' => TRUE,
73     ]);
74
75     // Create first referenced node.
76     $title_node_1 = 'referenced_node_1';
77     $edit = [
78       'title[0][value]' => $title_node_1,
79       'body[0][value]' => 'body_node_1',
80     ];
81     $this->drupalPostNodeForm('node/add/article', $edit, t('Save and publish'));
82
83     // Create second referenced node.
84     $title_node_2 = 'referenced_node_2';
85     $edit = [
86       'title[0][value]' => $title_node_2,
87       'body[0][value]' => 'body_node_2',
88     ];
89     $this->drupalPostNodeForm('node/add/article', $edit, t('Save and publish'));
90
91     // Create referencing node.
92     $title = 'referencing_node';
93     $node = $this->drupalGetNodeByTitle($title_node_1);
94     $edit = [
95       'title[0][value]' => $title,
96       'field_err_field[0][target_id]' => $title_node_1 . ' (' . $node->id() . ')',
97     ];
98     $this->drupalPostNodeForm('node/add/article', $edit, t('Save and publish'));
99
100     // Check the plugin is set.
101     $this->drupalGet('admin/config/content/diff/fields');
102     $this->drupalPostForm(NULL, ['fields[node.field_err_field][plugin][type]' => 'entity_reference_revisions_field_diff_builder'], t('Save'));
103
104     // Update the referenced node of the err field and create a new revision.
105     $node = $this->drupalGetNodeByTitle($title);
106     $referenced_node_new = $this->drupalGetNodeByTitle($title_node_2);
107     $edit = [
108       'field_err_field[0][target_id]' => $title_node_2 . ' (' . $referenced_node_new->id() . ')',
109       'revision' => TRUE,
110     ];
111     $this->drupalPostNodeForm('node/' . $node->id() . '/edit', $edit, t('Save and keep published'));
112
113     // Compare the revisions of the referencing node.
114     $this->drupalPostForm('node/' . $node->id() . '/revisions', [], t('Compare selected revisions'));
115
116     // Assert the field changes.
117     $this->assertRaw('class="diff-context diff-deletedline">' . $title_node_1);
118     $this->assertRaw('class="diff-context diff-addedline">' . $title_node_2);
119   }
120
121 }