Revert "Issue #2969107 by raman.b, matiasmiranda, kkalashnikov, L-four, daffie, Lendude: 500 error on passing invalid month to MonthDate view argument handler"
This reverts commit a9c69a35fe
.
merge-requests/278/head^2
parent
a9c69a35fe
commit
68378465a3
|
@ -24,12 +24,7 @@ class MonthDate extends Date {
|
||||||
*/
|
*/
|
||||||
public function summaryName($data) {
|
public function summaryName($data) {
|
||||||
$month = str_pad($data->{$this->name_alias}, 2, '0', STR_PAD_LEFT);
|
$month = str_pad($data->{$this->name_alias}, 2, '0', STR_PAD_LEFT);
|
||||||
try {
|
return $this->dateFormatter->format(strtotime("2005" . $month . "15" . " 00:00:00 UTC"), 'custom', $this->format, 'UTC');
|
||||||
return $this->dateFormatter->format(strtotime("2005" . $month . "15" . " 00:00:00 UTC"), 'custom', $this->format, 'UTC');
|
|
||||||
}
|
|
||||||
catch (\InvalidArgumentException $e) {
|
|
||||||
return parent::summaryName($data);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -37,12 +32,7 @@ class MonthDate extends Date {
|
||||||
*/
|
*/
|
||||||
public function title() {
|
public function title() {
|
||||||
$month = str_pad($this->argument, 2, '0', STR_PAD_LEFT);
|
$month = str_pad($this->argument, 2, '0', STR_PAD_LEFT);
|
||||||
try {
|
return $this->dateFormatter->format(strtotime("2005" . $month . "15" . " 00:00:00 UTC"), 'custom', $this->format, 'UTC');
|
||||||
return $this->dateFormatter->format(strtotime("2005" . $month . "15" . " 00:00:00 UTC"), 'custom', $this->format, 'UTC');
|
|
||||||
}
|
|
||||||
catch (\InvalidArgumentException $e) {
|
|
||||||
return parent::title();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function summaryArgument($data) {
|
public function summaryArgument($data) {
|
||||||
|
|
|
@ -1,173 +0,0 @@
|
||||||
langcode: en
|
|
||||||
status: true
|
|
||||||
dependencies:
|
|
||||||
module:
|
|
||||||
- node
|
|
||||||
id: test_month_date_plugin
|
|
||||||
label: 'Test Month Date Plugin'
|
|
||||||
module: views
|
|
||||||
description: ''
|
|
||||||
tag: ''
|
|
||||||
base_table: node_field_data
|
|
||||||
base_field: nid
|
|
||||||
display:
|
|
||||||
default:
|
|
||||||
display_plugin: default
|
|
||||||
id: default
|
|
||||||
display_title: Master
|
|
||||||
position: 0
|
|
||||||
display_options:
|
|
||||||
access:
|
|
||||||
type: none
|
|
||||||
options: { }
|
|
||||||
cache:
|
|
||||||
type: tag
|
|
||||||
options: { }
|
|
||||||
query:
|
|
||||||
type: views_query
|
|
||||||
options:
|
|
||||||
disable_sql_rewrite: false
|
|
||||||
distinct: false
|
|
||||||
replica: false
|
|
||||||
query_comment: ''
|
|
||||||
query_tags: { }
|
|
||||||
exposed_form:
|
|
||||||
type: basic
|
|
||||||
options:
|
|
||||||
submit_button: Apply
|
|
||||||
reset_button: false
|
|
||||||
reset_button_label: Reset
|
|
||||||
exposed_sorts_label: 'Sort by'
|
|
||||||
expose_sort_order: true
|
|
||||||
sort_asc_label: Asc
|
|
||||||
sort_desc_label: Desc
|
|
||||||
pager:
|
|
||||||
type: none
|
|
||||||
options:
|
|
||||||
offset: 0
|
|
||||||
style:
|
|
||||||
type: default
|
|
||||||
options:
|
|
||||||
grouping: { }
|
|
||||||
row_class: ''
|
|
||||||
default_row_class: true
|
|
||||||
uses_fields: false
|
|
||||||
row:
|
|
||||||
type: fields
|
|
||||||
options:
|
|
||||||
inline: { }
|
|
||||||
separator: ''
|
|
||||||
hide_empty: false
|
|
||||||
default_field_elements: true
|
|
||||||
fields:
|
|
||||||
title:
|
|
||||||
id: title
|
|
||||||
table: node_field_data
|
|
||||||
field: title
|
|
||||||
entity_type: node
|
|
||||||
entity_field: title
|
|
||||||
label: ''
|
|
||||||
alter:
|
|
||||||
alter_text: false
|
|
||||||
make_link: false
|
|
||||||
absolute: false
|
|
||||||
trim: false
|
|
||||||
word_boundary: false
|
|
||||||
ellipsis: false
|
|
||||||
strip_tags: false
|
|
||||||
html: false
|
|
||||||
hide_empty: false
|
|
||||||
empty_zero: false
|
|
||||||
settings:
|
|
||||||
link_to_entity: true
|
|
||||||
plugin_id: field
|
|
||||||
relationship: none
|
|
||||||
group_type: group
|
|
||||||
admin_label: ''
|
|
||||||
exclude: false
|
|
||||||
element_type: ''
|
|
||||||
element_class: ''
|
|
||||||
element_label_type: ''
|
|
||||||
element_label_class: ''
|
|
||||||
element_label_colon: true
|
|
||||||
element_wrapper_type: ''
|
|
||||||
element_wrapper_class: ''
|
|
||||||
element_default_classes: true
|
|
||||||
empty: ''
|
|
||||||
hide_alter_empty: true
|
|
||||||
click_sort_column: value
|
|
||||||
type: string
|
|
||||||
group_column: value
|
|
||||||
group_columns: { }
|
|
||||||
group_rows: true
|
|
||||||
delta_limit: 0
|
|
||||||
delta_offset: 0
|
|
||||||
delta_reversed: false
|
|
||||||
delta_first_last: false
|
|
||||||
multi_type: separator
|
|
||||||
separator: ', '
|
|
||||||
field_api_classes: false
|
|
||||||
filters: { }
|
|
||||||
sorts: { }
|
|
||||||
header: { }
|
|
||||||
footer: { }
|
|
||||||
empty: { }
|
|
||||||
relationships: { }
|
|
||||||
arguments:
|
|
||||||
created_month:
|
|
||||||
id: created_month
|
|
||||||
table: node_field_data
|
|
||||||
field: created_month
|
|
||||||
relationship: none
|
|
||||||
group_type: group
|
|
||||||
admin_label: ''
|
|
||||||
default_action: default
|
|
||||||
exception:
|
|
||||||
value: all
|
|
||||||
title_enable: false
|
|
||||||
title: All
|
|
||||||
title_enable: false
|
|
||||||
title: ''
|
|
||||||
default_argument_type: query_parameter
|
|
||||||
default_argument_options:
|
|
||||||
query_param: month
|
|
||||||
fallback: all
|
|
||||||
multiple: or
|
|
||||||
default_argument_skip_url: false
|
|
||||||
summary_options:
|
|
||||||
base_path: ''
|
|
||||||
count: true
|
|
||||||
items_per_page: 25
|
|
||||||
override: false
|
|
||||||
summary:
|
|
||||||
sort_order: asc
|
|
||||||
number_of_records: 0
|
|
||||||
format: default_summary
|
|
||||||
specify_validation: false
|
|
||||||
validate:
|
|
||||||
type: none
|
|
||||||
fail: 'not found'
|
|
||||||
validate_options: { }
|
|
||||||
entity_type: node
|
|
||||||
plugin_id: date_month
|
|
||||||
display_extenders: { }
|
|
||||||
cache_metadata:
|
|
||||||
max-age: -1
|
|
||||||
contexts:
|
|
||||||
- url
|
|
||||||
- 'user.node_grants:view'
|
|
||||||
tags: { }
|
|
||||||
page_1:
|
|
||||||
display_plugin: page
|
|
||||||
id: page_1
|
|
||||||
display_title: Page
|
|
||||||
position: 1
|
|
||||||
display_options:
|
|
||||||
display_extenders: { }
|
|
||||||
path: test-month-date-plugin
|
|
||||||
cache_metadata:
|
|
||||||
max-age: -1
|
|
||||||
contexts:
|
|
||||||
- url
|
|
||||||
- 'user.node_grants:view'
|
|
||||||
tags: { }
|
|
|
@ -1,101 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace Drupal\Tests\views\Functional\Plugin;
|
|
||||||
|
|
||||||
use Drupal\Core\Url;
|
|
||||||
use Drupal\Tests\views\Functional\ViewTestBase;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tests the Month Date Plugin.
|
|
||||||
*
|
|
||||||
* @group views
|
|
||||||
*/
|
|
||||||
class MonthDatePluginTest extends ViewTestBase {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Views used by this test.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
public static $testViews = ['test_month_date_plugin'];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Modules to enable.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
protected static $modules = ['node'];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
protected $defaultTheme = 'stark';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Test node 1.
|
|
||||||
*
|
|
||||||
* @var \Drupal\node\NodeInterface
|
|
||||||
*/
|
|
||||||
protected $node1;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Test node 2.
|
|
||||||
*
|
|
||||||
* @var \Drupal\node\NodeInterface
|
|
||||||
*/
|
|
||||||
protected $node2;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function setUp($import_test_views = TRUE): void {
|
|
||||||
parent::setUp($import_test_views);
|
|
||||||
$date1 = '2020-10-01 00:00:00';
|
|
||||||
$this->node1 = $this->drupalCreateNode(['created' => strtotime($date1)]);
|
|
||||||
$date2 = '2020-11-01 00:00:00';
|
|
||||||
$this->node2 = $this->drupalCreateNode(['created' => strtotime($date2)]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tests the Month Date Plugin.
|
|
||||||
*/
|
|
||||||
public function testMonthDatePlugin() {
|
|
||||||
$assert_session = $this->assertSession();
|
|
||||||
|
|
||||||
// Test fallback value.
|
|
||||||
$this->drupalGet('test-month-date-plugin');
|
|
||||||
$assert_session->statusCodeEquals(200);
|
|
||||||
$assert_session->pageTextContains($this->node1->getTitle());
|
|
||||||
$assert_session->pageTextContains($this->node2->getTitle());
|
|
||||||
|
|
||||||
// Test 'all' values.
|
|
||||||
$this->drupalGet('test-month-date-plugin/all');
|
|
||||||
$assert_session->statusCodeEquals(200);
|
|
||||||
$assert_session->pageTextContains($this->node1->getTitle());
|
|
||||||
$assert_session->pageTextContains($this->node2->getTitle());
|
|
||||||
|
|
||||||
// Test valid month value.
|
|
||||||
$this->drupalGet('test-month-date-plugin/10');
|
|
||||||
$assert_session->statusCodeEquals(200);
|
|
||||||
$assert_session->pageTextContains($this->node1->getTitle());
|
|
||||||
$assert_session->pageTextNotContains($this->node2->getTitle());
|
|
||||||
|
|
||||||
// Test query parameter.
|
|
||||||
$url = Url::fromUserInput('/test-month-date-plugin', [
|
|
||||||
'query' => [
|
|
||||||
'month' => 10,
|
|
||||||
],
|
|
||||||
]);
|
|
||||||
$this->drupalGet($url);
|
|
||||||
$assert_session->statusCodeEquals(200);
|
|
||||||
$assert_session->pageTextContains($this->node1->getTitle());
|
|
||||||
$assert_session->pageTextNotContains($this->node2->getTitle());
|
|
||||||
|
|
||||||
// Test invalid month name.
|
|
||||||
$this->drupalGet('test-month-date-plugin/invalid-month');
|
|
||||||
$assert_session->statusCodeEquals(200);
|
|
||||||
$assert_session->pageTextNotContains($this->node1->getTitle());
|
|
||||||
$assert_session->pageTextNotContains($this->node2->getTitle());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in New Issue