Skip to content

Commit c6d9d0c

Browse files
committed
Fix message rendering tests for iframed message parts
1 parent be4db97 commit c6d9d0c

File tree

4 files changed

+25
-11
lines changed

4 files changed

+25
-11
lines changed

tests/MessageRendering/InlineImageTest.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,13 @@ public function testImageFromDataUri(): void
1313

1414
$this->assertSame('***SPAM*** wir gratulieren Ihnen recht herzlich.', $this->getScrubbedSubject($domxpath));
1515

16-
$divElements = $domxpath->query('//div[@class="rcmBody"]/div/div');
16+
$bodyParts = $domxpath->query('//iframe[contains(@class, "framed-message-part")]');
17+
$this->assertCount(1, $bodyParts, 'Message body parts');
18+
$params = $this->getSrcParams($bodyParts[0]);
19+
$this->assertSrcUrlParams($params, '1');
20+
$domxpath_body = $this->renderIframedBodyContent($params);
21+
22+
$divElements = $domxpath_body->query('//body/div/div');
1723
$this->assertCount(3, $divElements, 'Body HTML DIV elements');
1824

1925
$this->assertSame('wir gratulieren Ihnen recht herzlich.', $divElements[0]->textContent);
@@ -24,7 +30,7 @@ public function testImageFromDataUri(): void
2430
$this->assertStringContainsString('?_task=mail&_action=get&_mbox=INBOX&_uid=', $src);
2531
$this->assertStringContainsString('&_part=2&_embed=1&_mimeclass=image', $src);
2632

27-
$this->assertSame('v1signature', $divElements[2]->attributes->getNamedItem('class')->textContent);
33+
$this->assertSame('signature', $divElements[2]->attributes->getNamedItem('class')->textContent);
2834
// This matches a non-breakable space.
2935
$this->assertMatchesRegularExpression('|^\x{00a0}$|u', $divElements[2]->textContent);
3036

tests/MessageRendering/MessageRenderingTestCase.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ protected function assertIframedContent(\DOMNode $elem, string $partId, string $
148148
$this->assertSame($content, trim($body));
149149
}
150150

151-
private function assertSrcUrlParams(array $params, string $partId): void
151+
protected function assertSrcUrlParams(array $params, string $partId): void
152152
{
153153
$this->assertSame('mail', $params['_task']);
154154
$this->assertSame('get', $params['_action']);

tests/MessageRendering/SingleImageNoTextTest.php

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,6 @@ class SingleImageNoTextTest extends MessageRenderingTestCase
1313
*/
1414
public function testShowMultipartMixedSingleImageToo(): void
1515
{
16-
$this->markTestSkipped('TBD: test for fixing GH issue 9443');
17-
// This next comment line prevents phpstan from reporting this as
18-
// unreachable code (technically it is right, but that's on purpose
19-
// here...).
20-
// @phpstan-ignore-next-line
2116
$domxpath = $this->renderMessage('XXXXXXXXXXXXX@mx01.lytzenitmail.dk');
2217

2318
$this->assertSame('Not OK', $this->getScrubbedSubject($domxpath));

tests/MessageRendering/TnefEmailsTest.php

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ public function testTnefEmail1(): void
1111
{
1212
$domxpath = $this->renderMessage('631a672e15f742a98035f1cb7efe1f8db6310138@example.net');
1313

14-
$this->assertSame('', $this->getBody($domxpath));
14+
$bodyParts = $domxpath->query('//iframe[contains(@class, "framed-message-part")]');
15+
$this->assertCount(0, $bodyParts, 'Message body parts');
1516

1617
$attchNames = $domxpath->query('//span[@class="attachment-name"]');
1718
$this->assertCount(1, $attchNames, 'Attachments');
@@ -22,7 +23,13 @@ public function testTnefEmail2(): void
2223
{
2324
$domxpath = $this->renderMessage('b6057653610f8041b120965652ff7f26a1a8f02d@example.net');
2425

25-
$this->assertStringStartsWith('THE BILL OF RIGHTSAmendments 1-10 of the', $this->getBody($domxpath));
26+
$bodyParts = $domxpath->query('//iframe[contains(@class, "framed-message-part")]');
27+
$this->assertCount(1, $bodyParts, 'Message body parts');
28+
$params = $this->getSrcParams($bodyParts[0]);
29+
$this->assertSrcUrlParams($params, 'winmail.1.html');
30+
$body = $this->getIframedContent($params);
31+
32+
$this->assertStringStartsWith('THE BILL OF RIGHTSAmendments 1-10 of the', trim($body));
2633

2734
$attchNames = $domxpath->query('//span[@class="attachment-name"]');
2835
$this->assertCount(0, $attchNames, 'Attachments');
@@ -32,7 +39,13 @@ public function testTnefEmail3(): void
3239
{
3340
$domxpath = $this->renderMessage('cde7964538f283305609ec9146b4a80c121fd0ae@example.net');
3441

35-
$bodyParagraphs = $domxpath->query('//div[@class="rcmBody"]/p');
42+
$bodyParts = $domxpath->query('//iframe[contains(@class, "framed-message-part")]');
43+
$this->assertCount(1, $bodyParts, 'Message body parts');
44+
$params = $this->getSrcParams($bodyParts[0]);
45+
$this->assertSrcUrlParams($params, 'winmail.1.html');
46+
$domxpath_body = $this->renderIframedBodyContent($params);
47+
48+
$bodyParagraphs = $domxpath_body->query('//p');
3649
$this->assertCount(8, $bodyParagraphs, 'Body HTML paragraphs');
3750
$this->assertSame('Casdasdfasdfasd', $bodyParagraphs[0]->textContent);
3851
$this->assertSame('Casdasdfasdfasd', $bodyParagraphs[1]->textContent);

0 commit comments

Comments
 (0)