diff --git a/core/modules/views/src/Tests/Plugin/ArgumentDefaultTest.php b/core/modules/views/src/Tests/Plugin/ArgumentDefaultTest.php index 0708b86..dd5db0b 100644 --- a/core/modules/views/src/Tests/Plugin/ArgumentDefaultTest.php +++ b/core/modules/views/src/Tests/Plugin/ArgumentDefaultTest.php @@ -2,10 +2,12 @@ namespace Drupal\views\Tests\Plugin; +use Drupal\Core\Url; use Drupal\node\Entity\Node; use Drupal\node\Entity\NodeType; use Drupal\views\Views; use Drupal\views_test_data\Plugin\views\argument_default\ArgumentDefaultTest as ArgumentDefaultTestPlugin; +use Symfony\Component\HttpFoundation\Request; /** @@ -25,6 +27,7 @@ class ArgumentDefaultTest extends PluginTestBase { 'test_argument_default_fixed', 'test_argument_default_current_user', 'test_argument_default_node', + 'test_argument_default_query_param', ); /** @@ -163,4 +166,18 @@ public function testArgumentDefaultNode() { $this->assertTrue(strpos($this->xpath($xpath)[0]->asXml(), $node2->getTitle())); } + /** + * Tests the query parameter default argument. + */ + public function testArgumentDefaultQueryParameter() { + $view = Views::getView('test_argument_default_query_param'); + + $options = ['query' => ['the_node_type' => 'page'], 'absolute' => TRUE]; + $request = Request::create(Url::fromUri('internal:/whatever', $options)->toString()); + $view->setRequest($request); + $view->initHandlers(); + + $this->assertEqual($view->argument['type']->getDefaultArgument(), 'page'); + } + } diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_default_query_param.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_default_query_param.yml new file mode 100644 index 0000000..7f97bfd --- /dev/null +++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_default_query_param.yml @@ -0,0 +1,62 @@ +langcode: en +status: true +dependencies: + module: + - node +id: test_argument_default_query_param +label: '' +module: views +description: '' +tag: '' +base_table: node_field_data +base_field: nid +core: '8' +display: + default: + display_options: + arguments: + type: + id: type + table: node_field_data + field: type + default_action: default + default_argument_type: query_parameter + default_argument_options: + query_param: the_node_type + fallback: all + multiple: and + entity_type: node + entity_field: type + plugin_id: node_type + fields: + title: + alter: + alter_text: false + ellipsis: true + html: false + make_link: false + strip_tags: false + trim: false + word_boundary: true + empty_zero: false + field: title + hide_empty: false + id: title + table: node_field_data + plugin_id: field + entity_type: node + entity_field: title + pager: + options: + id: 0 + items_per_page: 10 + offset: 0 + type: full + style: + type: default + row: + type: fields + display_plugin: default + display_title: Master + id: default + position: 0