Issue #3285230 by xjm, benjifisher, phenaproxima, mikelutz, quietone: Migrate's DownloadFunctionalTest:: testExceptionThrow() is failing on guzzlehttp/psr7 2.3.0

merge-requests/2439/head
xjm 2022-06-23 23:30:31 -05:00
parent 740a7a8004
commit c668a90a3f
No known key found for this signature in database
GPG Key ID: 206B0B8743BDF4C2
2 changed files with 12 additions and 6 deletions

View File

@ -76,8 +76,11 @@ class DownloadFunctionalTest extends BrowserTestBase {
$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.

View File

@ -179,11 +179,14 @@ trait BrowserHtmlDebugTrait {
$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