mirror of
https://github.com/roundcube/roundcubemail.git
synced 2026-02-24 19:41:19 +01:00
* Check if "inline" msg part is actually referred to If there's no reference to it in a sibling HTML part then we handle it as a classic attachment (which is shown as downloadable). * Fetch all msg headers also for images to always get Content-Location Previously all headers were only fetched for message/rfc822, or if the Content-Type's "name" parameter was set, or if a Content-ID was set. The RFC doesn't require neither the "name" parameter nor a Content-ID for using Content-Location, though, so we shouldn't depend on those. Instead now all headers are also fetched if the main part of the Content-Type is "image", to catch more cases. * Parse HTML for references only on demand * Typos and comment formatting * Don't skip test anymore We want it tested! * More MR tests with images * Remove early special handling for "inline" images We decide later, which attachment is considered "inline" and which isn't. * Remove early resolving of references in TNEF parts * Testing message rendering of TNEF emails * Don't use image disposition, it's unreliable * Split adding raw parts and attachments * Fix renaming variable * Rename file to make its test be run * Remove outdated script * Annotate test cases with GitHub issue numbers * Fix test case class name * remove comment * Test inline image message rendering * Rename test file to reflect cases better * Reduce image used in test email It doesn't change much, but there's also no sense in decoding big images that we don't use. * Remove unused variable initialisation
35 lines
1.4 KiB
PHP
35 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace Tests\MessageRendering;
|
|
|
|
/**
|
|
* Test class to test simple messages.
|
|
*/
|
|
class InlineImageTest extends MessageRenderingTestCase
|
|
{
|
|
public function testImageFromDataUri()
|
|
{
|
|
$domxpath = $this->runAndGetHtmlOutputDomxpath('trinity-eb9e559b-1926-4b09-990d-80e9da9a9c35-1723163091112@3c-app-mailcom-bs14');
|
|
|
|
$this->assertSame('***SPAM*** wir gratulieren Ihnen recht herzlich.', $this->getScrubbedSubject($domxpath));
|
|
|
|
$divElements = $domxpath->query('//div[@class="rcmBody"]/div/div');
|
|
$this->assertCount(3, $divElements, 'Body HTML DIV elements');
|
|
|
|
$this->assertSame('wir gratulieren Ihnen recht herzlich.', $divElements[0]->textContent);
|
|
|
|
$img = $divElements[1]->firstChild->firstChild;
|
|
$this->assertSame('img', $img->nodeName);
|
|
$src = $img->attributes->getNamedItem('src')->textContent;
|
|
$this->assertStringContainsString('?_task=mail&_action=get&_mbox=INBOX&_uid=', $src);
|
|
$this->assertStringContainsString('&_part=2&_embed=1&_mimeclass=image', $src);
|
|
|
|
$this->assertSame('v1signature', $divElements[2]->attributes->getNamedItem('class')->textContent);
|
|
// This matches a non-breakable space.
|
|
$this->assertMatchesRegularExpression('|^\x{00a0}$|u', $divElements[2]->textContent);
|
|
|
|
$attchNames = $domxpath->query('//span[@class="attachment-name"]');
|
|
$this->assertCount(0, $attchNames, 'Attachments');
|
|
}
|
|
}
|