Version 1
[yaffs-website] / web / core / modules / views / tests / src / Kernel / Plugin / SqlEntityLoadingTest.php
1 <?php
2
3 namespace Drupal\Tests\views\Kernel\Plugin;
4
5 use Drupal\node\Entity\Node;
6 use Drupal\node\Entity\NodeType;
7 use Drupal\Tests\views\Kernel\ViewsKernelTestBase;
8 use Drupal\views\Views;
9
10 /**
11  * Tests the loading of entities and entity revisions.
12  *
13  * @group views
14  *
15  * @see \Drupal\views\Plugin\views\query\Sql
16  */
17 class SqlEntityLoadingTest extends ViewsKernelTestBase {
18
19   /**
20    * {@inheritdoc}
21    */
22   public static $modules = ['node', 'user'];
23
24   /**
25    * {@inheritdoc}
26    */
27   public static $testViews = ['base_and_revision'];
28
29   /**
30    * {@inheritdoc}
31    */
32   protected function setUp($import_test_views = TRUE) {
33     parent::setUp($import_test_views);
34
35     $this->installEntitySchema('node');
36     $this->installEntitySchema('user');
37     $this->installSchema('node', 'node_access');
38   }
39
40   public function testViewWithNonDefaultForwardRevision() {
41     $node_type = NodeType::create([
42       'type' => 'page',
43     ]);
44     $node_type->save();
45
46     $node = Node::create([
47       'type' => 'page',
48       'title' => 'test title',
49     ]);
50     $node->save();
51
52     // Creates the first revision, which is set as default.
53     $revision = clone $node;
54     $revision->setNewRevision(TRUE);
55     $revision->isDefaultRevision(TRUE);
56     $revision->save();
57
58     // Creates the second revision, which is not set as default.
59     $revision2 = clone $node;
60     $revision2->setNewRevision(TRUE);
61     $revision2->isDefaultRevision(FALSE);
62     $revision2->save();
63
64     $view = Views::getView('base_and_revision');
65     $view->execute();
66
67     $expected = [
68       [
69         'nid' => $node->id(),
70         // The default revision ID.
71         'vid_1' => $revision->getRevisionId(),
72         // THe latest revision ID.
73         'vid' => $revision2->getRevisionId(),
74       ],
75     ];
76     $this->assertIdenticalResultset($view, $expected, [
77       'node_field_data_node_field_revision_nid' => 'nid',
78       'vid_1' => 'vid_1',
79       'vid' => 'vid',
80     ]);
81   }
82
83 }