From 48bdcdce80145e28892fce81f8e95357dee7593d Mon Sep 17 00:00:00 2001 From: xjm <xjm@65776.no-reply.drupal.org> Date: Thu, 23 Jun 2022 23:30:31 -0500 Subject: [PATCH] Issue #3285230 by xjm, benjifisher, phenaproxima, mikelutz, quietone: Migrate's DownloadFunctionalTest:: testExceptionThrow() is failing on guzzlehttp/psr7 2.3.0 (cherry picked from commit c668a90a3f9e9158ad5a31f4235fcec3635be8a9) --- .../Functional/process/DownloadFunctionalTest.php | 5 ++++- core/tests/Drupal/Tests/BrowserHtmlDebugTrait.php | 13 ++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/core/modules/migrate/tests/src/Functional/process/DownloadFunctionalTest.php b/core/modules/migrate/tests/src/Functional/process/DownloadFunctionalTest.php index 26f2f3527fcb..51371ff69c83 100644 --- a/core/modules/migrate/tests/src/Functional/process/DownloadFunctionalTest.php +++ b/core/modules/migrate/tests/src/Functional/process/DownloadFunctionalTest.php @@ -76,8 +76,11 @@ public function testExceptionThrow() { $this->assertCount(1, $messages); $message = reset($messages); + // Assert critical parts of the error message, but not the exact message, + // since it depends on Guzzle's internal implementation of PSR-7. $id = $migration->getPluginId(); - $this->assertEquals("$id:uri:download: Client error: `GET $invalid_url` resulted in a `404 Not Found` response ($invalid_url)", $message->message); + $this->assertStringContainsString("$id:uri:download:", $message->message); + $this->assertStringContainsString($invalid_url, $message->message); $this->assertEquals(MigrationInterface::MESSAGE_ERROR, $message->level); // Check that the second row was migrated successfully. diff --git a/core/tests/Drupal/Tests/BrowserHtmlDebugTrait.php b/core/tests/Drupal/Tests/BrowserHtmlDebugTrait.php index 18deac7e359d..aa4a569e3cf0 100644 --- a/core/tests/Drupal/Tests/BrowserHtmlDebugTrait.php +++ b/core/tests/Drupal/Tests/BrowserHtmlDebugTrait.php @@ -179,11 +179,14 @@ protected function getResponseLogHandler() { $html_output = 'Called from ' . $caller['function'] . ' line ' . $caller['line']; $html_output .= '<hr />' . $request->getMethod() . ' request to: ' . $request->getUri(); - // Get the response body as a string. Any errors are silenced as - // tests should not fail if there is a problem. On PHP 7.4 - // \Drupal\Tests\migrate\Functional\process\DownloadFunctionalTest - // fails without the usage of a silence operator. - $body = @(string) $response->getBody(); + /* $var \Psr\Http\Message\StreamInterface $stream */ + $stream = $response->getBody(); + + // Get the response body as a string. + $body = $stream->isReadable() + ? (string) $stream + : 'Response is not readable.'; + // On redirect responses (status code starting with '3') we need // to remove the meta tag that would do a browser refresh. We // don't want to redirect developers away when they look at the -- GitLab