Upgraded imagemagick and manually altered pdf to image module to handle changes....
[yaffs-website] / web / modules / contrib / entity_reference_revisions / src / Tests / EntityReferenceRevisionsNormalizerTest.php
1 <?php
2
3 namespace Drupal\entity_reference_revisions\Tests;
4
5 use Drupal\field_ui\Tests\FieldUiTestTrait;
6 use Drupal\node\Entity\Node;
7 use Drupal\simpletest\WebTestBase;
8
9 /**
10  * Tests the entity_reference_revisions configuration.
11  *
12  * @group entity_reference_revisions
13  */
14 class EntityReferenceRevisionsNormalizerTest extends WebTestBase {
15
16   use FieldUiTestTrait;
17   use EntityReferenceRevisionsCoreVersionUiTestTrait;
18
19   /**
20    * Modules to enable.
21    *
22    * @var array
23    */
24   public static $modules = array(
25     'node',
26     'field',
27     'entity_reference_revisions',
28     'field_ui',
29     'block',
30     'hal',
31     'serialization',
32     'rest',
33   );
34
35   /**
36    * {@inheritdoc}
37    */
38   protected function setUp() {
39     parent::setUp();
40     // Create paragraphs and article content types.
41     $this->drupalCreateContentType(array('type' => 'entity_revisions', 'name' => 'Entity revisions'));
42     $this->drupalCreateContentType(array('type' => 'article', 'name' => 'Article'));
43     // Place the breadcrumb, tested in fieldUIAddNewField().
44     $this->drupalPlaceBlock('system_breadcrumb_block');
45   }
46
47   /**
48    * Tests the entity reference revisions configuration.
49    */
50   public function testEntityReferenceRevisions() {
51     $admin_user = $this->drupalCreateUser(array(
52       'administer site configuration',
53       'administer nodes',
54       'create article content',
55       'administer content types',
56       'administer node fields',
57       'administer node display',
58       'administer node form display',
59       'edit any article content',
60     ));
61     $this->drupalLogin($admin_user);
62     // Create entity reference revisions field.
63     static::fieldUIAddNewField('admin/structure/types/manage/entity_revisions', 'entity_reference_revisions', 'Entity reference revisions', 'entity_reference_revisions', array('settings[target_type]' => 'node', 'cardinality' => '-1'), array('settings[handler_settings][target_bundles][article]' => TRUE));
64     $this->assertText('Saved Entity reference revisions configuration.');
65
66     // Create an article.
67     $title = $this->randomMachineName();
68     $edit = array(
69       'title[0][value]' => $title,
70       'body[0][value]' => 'Revision 1',
71     );
72     $this->drupalPostNodeForm('node/add/article', $edit, t('Save and publish'));
73     $this->assertText($title);
74     $this->assertText('Revision 1');
75     $node = $this->drupalGetNodeByTitle($title);
76
77     // Create entity revisions content that includes the above article.
78     $err_title = 'Entity reference revision content';
79     $edit = array(
80       'title[0][value]' => $err_title,
81       'field_entity_reference_revisions[0][target_id]' => $node->label() . ' (' . $node->id() . ')',
82     );
83     $this->drupalPostNodeForm('node/add/entity_revisions', $edit, t('Save and publish'));
84     $this->assertText('Entity revisions Entity reference revision content has been created.');
85     $err_node = $this->drupalGetNodeByTitle($err_title);
86
87     $this->assertText($err_title);
88     $this->assertText($title);
89     $this->assertText('Revision 1');
90
91     // Create 2nd revision of the article.
92     $edit = array(
93       'body[0][value]' => 'Revision 2',
94       'revision' => TRUE,
95     );
96     $this->drupalPostNodeForm('node/' . $node->id() . '/edit', $edit, t('Save and keep published'));
97     $serializer = $this->container->get('serializer');
98     $normalized = $serializer->normalize($err_node, 'hal_json');
99     $request = \Drupal::request();
100     $link_domain = $request->getSchemeAndHttpHost() . $request->getBasePath();
101     $this->assertEqual($err_node->field_entity_reference_revisions->target_revision_id, $normalized['_embedded'][$link_domain . '/rest/relation/node/entity_revisions/field_entity_reference_revisions'][0]['target_revision_id']);
102     $new_err_node = $serializer->denormalize($normalized, Node::class, 'hal_json');
103     $this->assertEqual($err_node->field_entity_reference_revisions->target_revision_id, $new_err_node->field_entity_reference_revisions->target_revision_id);
104   }
105
106 }