6846f77630462c4032c9424600f37dfec2320df1
[yaffs-website] / web / core / modules / views / tests / src / Kernel / Plugin / SqlQueryTest.php
1 <?php
2
3 namespace Drupal\Tests\views\Kernel\Plugin;
4
5 use Drupal\Tests\views\Kernel\ViewsKernelTestBase;
6 use Drupal\views\Views;
7
8 /**
9  * Tests the sql query plugin.
10  *
11  * @group views
12  * @see \Drupal\views\Plugin\views\query\Sql
13  */
14 class SqlQueryTest extends ViewsKernelTestBase {
15
16   /**
17    * Views used by this test.
18    *
19    * @var array
20    */
21   public static $testViews = ['test_view'];
22
23   /**
24    * {@inheritdoc}
25    */
26   protected function viewsData() {
27     $data = parent::viewsData();
28     $data['views_test_data']['table']['base']['access query tag'] = 'test_tag';
29     $data['views_test_data']['table']['base']['query metadata'] = ['key1' => 'test_metadata', 'key2' => 'test_metadata2'];
30
31     return $data;
32   }
33
34   /**
35    * Tests adding some metadata/tags to the views query.
36    */
37   public function testExecuteMetadata() {
38     $view = Views::getView('test_view');
39     $view->setDisplay();
40
41     $view->initQuery();
42     $view->execute();
43     /** @var \Drupal\Core\Database\Query\Select $query */
44     $main_query = $view->build_info['query'];
45     /** @var \Drupal\Core\Database\Query\Select $count_query */
46     $count_query = $view->build_info['count_query'];
47
48     foreach ([$main_query, $count_query] as $query) {
49       // Check query access tags.
50       $this->assertTrue($query->hasTag('test_tag'));
51
52       // Check metadata.
53       $this->assertIdentical($query->getMetaData('key1'), 'test_metadata');
54       $this->assertIdentical($query->getMetaData('key2'), 'test_metadata2');
55     }
56
57     $query_options = $view->display_handler->getOption('query');
58     $query_options['options']['disable_sql_rewrite'] = TRUE;
59     $view->display_handler->setOption('query', $query_options);
60     $view->save();
61     $view->destroy();
62
63     $view = Views::getView('test_view');
64     $view->setDisplay();
65     $view->initQuery();
66     $view->execute();
67     /** @var \Drupal\Core\Database\Query\Select $query */
68     $main_query = $view->build_info['query'];
69     /** @var \Drupal\Core\Database\Query\Select $count_query */
70     $count_query = $view->build_info['count_query'];
71
72     foreach ([$main_query, $count_query] as $query) {
73       // Check query access tags.
74       $this->assertFalse($query->hasTag('test_tag'));
75
76       // Check metadata.
77       $this->assertIdentical($query->getMetaData('key1'), NULL);
78       $this->assertIdentical($query->getMetaData('key2'), NULL);
79     }
80   }
81
82 }