Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / web / core / modules / views / tests / src / Kernel / Handler / HandlerAliasTest.php
1 <?php
2
3 namespace Drupal\Tests\views\Kernel\Handler;
4
5 use Drupal\Tests\views\Kernel\ViewsKernelTestBase;
6 use Drupal\views\Views;
7
8 /**
9  * Tests handler table and field aliases.
10  *
11  * @group views
12  */
13 class HandlerAliasTest extends ViewsKernelTestBase {
14
15   public static $modules = ['user'];
16
17   /**
18    * Views used by this test.
19    *
20    * @var array
21    */
22   public static $testViews = ['test_filter', 'test_alias'];
23
24   protected function setUp($import_test_views = TRUE) {
25     parent::setUp();
26
27     $this->installEntitySchema('user');
28   }
29
30   /**
31    * {@inheritdoc}
32    */
33   protected function viewsData() {
34     $data = parent::viewsData();
35     // User the existing test_filter plugin.
36     $data['views_test_data_alias']['table']['real table'] = 'views_test_data';
37     $data['views_test_data_alias']['name_alias']['filter']['id'] = 'test_filter';
38     $data['views_test_data_alias']['name_alias']['filter']['real field'] = 'name';
39
40     return $data;
41   }
42
43   public function testPluginAliases() {
44     $view = Views::getView('test_filter');
45     $view->initDisplay();
46
47     // Change the filtering.
48     $view->displayHandlers->get('default')->overrideOption('filters', [
49       'test_filter' => [
50         'id' => 'test_filter',
51         'table' => 'views_test_data_alias',
52         'field' => 'name_alias',
53         'operator' => '=',
54         'value' => 'John',
55         'group' => 0,
56       ],
57     ]);
58
59     $this->executeView($view);
60
61     $filter = $view->filter['test_filter'];
62
63     // Check the definition values are present.
64     $this->assertIdentical($filter->definition['real table'], 'views_test_data');
65     $this->assertIdentical($filter->definition['real field'], 'name');
66
67     $this->assertIdentical($filter->table, 'views_test_data');
68     $this->assertIdentical($filter->realField, 'name');
69
70     // Test an existing user uid field.
71     $view = Views::getView('test_alias');
72     $view->initDisplay();
73     $this->executeView($view);
74
75     $filter = $view->filter['uid_raw'];
76
77     $this->assertIdentical($filter->definition['real field'], 'uid');
78
79     $this->assertIdentical($filter->field, 'uid_raw');
80     $this->assertIdentical($filter->table, 'users_field_data');
81     $this->assertIdentical($filter->realField, 'uid');
82   }
83
84 }