Further Drupal 8.6.4 changes. Some core files were not committed before a commit...
[yaffs-website] / web / core / modules / views / tests / src / Kernel / BasicTest.php
1 <?php
2
3 namespace Drupal\Tests\views\Kernel;
4
5 use Drupal\views\Views;
6
7 /**
8  * A basic query test for Views.
9  *
10  * @group views
11  */
12 class BasicTest extends ViewsKernelTestBase {
13
14   /**
15    * Views used by this test.
16    *
17    * @var array
18    */
19   public static $testViews = ['test_view', 'test_simple_argument'];
20
21   /**
22    * Tests a trivial result set.
23    */
24   public function testSimpleResultSet() {
25     $view = Views::getView('test_view');
26     $view->setDisplay();
27
28     // Execute the view.
29     $this->executeView($view);
30
31     // Verify the result.
32     $this->assertEqual(5, count($view->result), 'The number of returned rows match.');
33     $this->assertIdenticalResultset($view, $this->dataSet(), [
34       'views_test_data_name' => 'name',
35       'views_test_data_age' => 'age',
36     ]);
37   }
38
39   /**
40    * Tests filtering of the result set.
41    */
42   public function testSimpleFiltering() {
43     $view = Views::getView('test_view');
44     $view->setDisplay();
45
46     // Add a filter.
47     $view->displayHandlers->get('default')->overrideOption('filters', [
48       'age' => [
49         'operator' => '<',
50         'value' => [
51           'value' => '28',
52           'min' => '',
53           'max' => '',
54         ],
55         'group' => '0',
56         'exposed' => FALSE,
57         'expose' => [
58           'operator' => FALSE,
59           'label' => '',
60         ],
61         'id' => 'age',
62         'table' => 'views_test_data',
63         'field' => 'age',
64         'relationship' => 'none',
65       ],
66     ]);
67
68     // Execute the view.
69     $this->executeView($view);
70
71     // Build the expected result.
72     $dataset = [
73       [
74         'id' => 1,
75         'name' => 'John',
76         'age' => 25,
77       ],
78       [
79         'id' => 2,
80         'name' => 'George',
81         'age' => 27,
82       ],
83       [
84         'id' => 4,
85         'name' => 'Paul',
86         'age' => 26,
87       ],
88     ];
89
90     // Verify the result.
91     $this->assertEqual(3, count($view->result), 'The number of returned rows match.');
92     $this->assertIdenticalResultSet($view, $dataset, [
93       'views_test_data_name' => 'name',
94       'views_test_data_age' => 'age',
95     ]);
96   }
97
98   /**
99    * Tests simple argument.
100    */
101   public function testSimpleArgument() {
102     // Execute with a view
103     $view = Views::getView('test_simple_argument');
104     $view->setArguments([27]);
105     $this->executeView($view);
106
107     // Build the expected result.
108     $dataset = [
109       [
110         'id' => 2,
111         'name' => 'George',
112         'age' => 27,
113       ],
114     ];
115
116     // Verify the result.
117     $this->assertEqual(1, count($view->result), 'The number of returned rows match.');
118     $this->assertIdenticalResultSet($view, $dataset, [
119       'views_test_data_name' => 'name',
120       'views_test_data_age' => 'age',
121     ]);
122
123     // Test "show all" if no argument is present.
124     $view = Views::getView('test_simple_argument');
125     $this->executeView($view);
126
127     // Build the expected result.
128     $dataset = $this->dataSet();
129
130     $this->assertEqual(5, count($view->result), 'The number of returned rows match.');
131     $this->assertIdenticalResultSet($view, $dataset, [
132       'views_test_data_name' => 'name',
133       'views_test_data_age' => 'age',
134     ]);
135   }
136
137 }