3 namespace Drupal\Tests\views\Kernel\Plugin;
5 use Drupal\Tests\views\Kernel\ViewsKernelTestBase;
6 use Drupal\views\Views;
9 * Tests the sql query plugin.
12 * @see \Drupal\views\Plugin\views\query\Sql
14 class SqlQueryTest extends ViewsKernelTestBase {
17 * Views used by this test.
21 public static $testViews = ['test_view'];
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'];
35 * Tests adding some metadata/tags to the views query.
37 public function testExecuteMetadata() {
38 $view = Views::getView('test_view');
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'];
48 foreach ([$main_query, $count_query] as $query) {
49 // Check query access tags.
50 $this->assertTrue($query->hasTag('test_tag'));
53 $this->assertIdentical($query->getMetaData('key1'), 'test_metadata');
54 $this->assertIdentical($query->getMetaData('key2'), 'test_metadata2');
57 $query_options = $view->display_handler->getOption('query');
58 $query_options['options']['disable_sql_rewrite'] = TRUE;
59 $view->display_handler->setOption('query', $query_options);
63 $view = Views::getView('test_view');
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'];
72 foreach ([$main_query, $count_query] as $query) {
73 // Check query access tags.
74 $this->assertFalse($query->hasTag('test_tag'));
77 $this->assertIdentical($query->getMetaData('key1'), NULL);
78 $this->assertIdentical($query->getMetaData('key2'), NULL);