.../EntityResource/EntityTest/EntityTestDatetimeTest.php | 10 ++++++++++ .../EntityResource/EntityTest/EntityTestDateRangeTest.php | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/core/modules/datetime/tests/src/Functional/EntityResource/EntityTest/EntityTestDatetimeTest.php b/core/modules/datetime/tests/src/Functional/EntityResource/EntityTest/EntityTestDatetimeTest.php index a37f20d..143475b 100644 --- a/core/modules/datetime/tests/src/Functional/EntityResource/EntityTest/EntityTestDatetimeTest.php +++ b/core/modules/datetime/tests/src/Functional/EntityResource/EntityTest/EntityTestDatetimeTest.php @@ -148,6 +148,16 @@ protected function assertNormalizationEdgeCases($method, Url $url, array $reques $response = $this->request($method, $url, $request_options); $message = "The specified date \"$value\" is not in an accepted format: \"Y-m-d\\TH:i:sP\" (RFC 3339), \"Y-m-d\\TH:i:sO\" (ISO 8601)."; $this->assertResourceErrorResponse(422, $message, $response); + + // DX: 422 when date value is invalid. + $normalization = $this->getNormalizedPostEntity(); + $value = '2017-13-55T20:02:00+00:00'; + $normalization[static::$fieldName][0]['value'] = $value; + + $request_options[RequestOptions::BODY] = $this->serializer->encode($normalization, static::$format); + $response = $this->request($method, $url, $request_options); + $message = "The specified date \"$value\" is not in an accepted format: \"Y-m-d\\TH:i:sP\" (RFC 3339), \"Y-m-d\\TH:i:sO\" (ISO 8601)."; + $this->assertResourceErrorResponse(422, $message, $response); } } diff --git a/core/modules/datetime_range/tests/src/Functional/EntityResource/EntityTest/EntityTestDateRangeTest.php b/core/modules/datetime_range/tests/src/Functional/EntityResource/EntityTest/EntityTestDateRangeTest.php index 926b7e8..e83ca38 100644 --- a/core/modules/datetime_range/tests/src/Functional/EntityResource/EntityTest/EntityTestDateRangeTest.php +++ b/core/modules/datetime_range/tests/src/Functional/EntityResource/EntityTest/EntityTestDateRangeTest.php @@ -147,6 +147,16 @@ protected function assertNormalizationEdgeCases($method, Url $url, array $reques $message = "Unprocessable Entity: validation failed.\n{$fieldName}.0.end_value: This value should be of the correct primitive type.\n"; $this->assertResourceErrorResponse(422, $message, $response); + // DX: 422 when end date value is invalid. + $normalization = $this->getNormalizedPostEntity(); + $value = '2017-13-55T20:02:00+00:00'; + $normalization[static::$fieldName][0]['end_value'] = $value; + + $request_options[RequestOptions::BODY] = $this->serializer->encode($normalization, static::$format); + $response = $this->request($method, $url, $request_options); + $message = "The specified date \"$value\" is not in an accepted format: \"Y-m-d\\TH:i:sP\" (RFC 3339), \"Y-m-d\\TH:i:sO\" (ISO 8601)."; + $this->assertResourceErrorResponse(422, $message, $response); + // @todo Expand in https://www.drupal.org/project/drupal/issues/2847041. } }