Skip to content

Commit 5f800e1

Browse files
committed
Fixture tests added
1 parent 0492379 commit 5f800e1

File tree

79 files changed

+3551
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+3551
-0
lines changed

phpunit.xml.dist

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<testsuites>
1414
<testsuite name="PHP-IMAP Test Suite">
1515
<directory>tests</directory>
16+
<directory>tests/fixtures</directory>
1617
<directory>tests/issues</directory>
1718
<directory>tests/live</directory>
1819
</testsuite>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<?php
2+
/*
3+
* File: AttachmentEncodedFilenameTest.php
4+
* Category: -
5+
* Author: M.Goldenbaum
6+
* Created: 09.03.23 02:24
7+
* Updated: -
8+
*
9+
* Description:
10+
* -
11+
*/
12+
13+
namespace Tests\fixtures;
14+
15+
use Webklex\PHPIMAP\Attachment;
16+
17+
/**
18+
* Class AttachmentEncodedFilenameTest
19+
*
20+
* @package Tests\fixtures
21+
*/
22+
class AttachmentEncodedFilenameTest extends FixtureTestCase {
23+
24+
/**
25+
* Test the fixture attachment_encoded_filename.eml
26+
*
27+
* @return void
28+
*/
29+
public function testFixture() : void {
30+
$message = $this->getFixture("attachment_encoded_filename.eml");
31+
32+
self::assertEquals("", $message->subject);
33+
self::assertEquals("multipart/mixed", $message->content_type->last());
34+
self::assertFalse($message->hasTextBody());
35+
self::assertFalse($message->hasHTMLBody());
36+
37+
self::assertCount(1, $message->attachments());
38+
39+
$attachment = $message->attachments()->first();
40+
self::assertInstanceOf(Attachment::class, $attachment);
41+
self::assertEquals("Prostřeno_2014_poslední volné termíny.xls", $attachment->filename);
42+
self::assertEquals("Prostřeno_2014_poslední volné termíny.xls", $attachment->name);
43+
self::assertEquals('text', $attachment->type);
44+
self::assertEquals("application/vnd.ms-excel", $attachment->content_type);
45+
self::assertEquals("a0ef7cfbc05b73dbcb298fe0bc224b41900cdaf60f9904e3fea5ba6c7670013c", hash("sha256", $attachment->content));
46+
self::assertEquals(146, $attachment->size);
47+
self::assertEquals(0, $attachment->part_number);
48+
self::assertEquals("attachment", $attachment->disposition);
49+
self::assertNotEmpty($attachment->id);
50+
}
51+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
<?php
2+
/*
3+
* File: AttachmentLongFilenameTest.php
4+
* Category: -
5+
* Author: M.Goldenbaum
6+
* Created: 09.03.23 02:24
7+
* Updated: -
8+
*
9+
* Description:
10+
* -
11+
*/
12+
13+
namespace Tests\fixtures;
14+
15+
use Webklex\PHPIMAP\Attachment;
16+
17+
/**
18+
* Class AttachmentLongFilenameTest
19+
*
20+
* @package Tests\fixtures
21+
*/
22+
class AttachmentLongFilenameTest extends FixtureTestCase {
23+
24+
/**
25+
* Test the fixture attachment_long_filename.eml
26+
*
27+
* @return void
28+
*/
29+
public function testFixture() : void {
30+
$message = $this->getFixture("attachment_long_filename.eml");
31+
32+
self::assertEquals("", $message->subject);
33+
self::assertEquals("multipart/mixed", $message->content_type->last());
34+
self::assertFalse($message->hasTextBody());
35+
self::assertFalse($message->hasHTMLBody());
36+
37+
$attachments = $message->attachments();
38+
self::assertCount(3, $attachments);
39+
40+
$attachment = $attachments[0];
41+
self::assertInstanceOf(Attachment::class, $attachment);
42+
self::assertEquals("Buchungsbestätigung- Rechnung-Geschäftsbedingungen-Nr.B123-45 - XXXX xxxxxxxxxxxxxxxxx XxxX, Lüdxxxxxxxx - VM Klaus XXXXXX - xxxxxxxx.pdf", $attachment->name);
43+
self::assertEquals("Buchungsbestätigung- Rechnung-Geschäftsbedingungen-Nr.B123-45 - XXXXX xxxxxxxxxxxxxxxxx XxxX, Lüxxxxxxxxxx - VM Klaus XXXXXX - xxxxxxxx.pdf", $attachment->filename);
44+
self::assertEquals('text', $attachment->type);
45+
self::assertEquals("text/plain", $attachment->content_type);
46+
self::assertEquals("ca51ce1fb15acc6d69b8a5700256172fcc507e02073e6f19592e341bd6508ab8", hash("sha256", $attachment->content));
47+
self::assertEquals(4, $attachment->size);
48+
self::assertEquals(0, $attachment->part_number);
49+
self::assertEquals("attachment", $attachment->disposition);
50+
self::assertNotEmpty($attachment->id);
51+
52+
$attachment = $attachments[1];
53+
self::assertInstanceOf(Attachment::class, $attachment);
54+
self::assertEquals('01_A€àäąбيد@Z-0123456789-qwertyuiopasdfghjklzxcvbnmopqrstuvz-0123456789-qwertyuiopasdfghjklzxcvbnmopqrstuvz-0123456789-qwertyuiopasdfghjklzxcvbnmopqrstuvz.txt', $attachment->name);
55+
self::assertEquals("f7b5181985862431bfc443d26e3af2371e20a0afd676eeb9b9595a26d42e0b73", hash("sha256", $attachment->filename));
56+
self::assertEquals('text', $attachment->type);
57+
self::assertEquals("text/plain", $attachment->content_type);
58+
self::assertEquals("ca51ce1fb15acc6d69b8a5700256172fcc507e02073e6f19592e341bd6508ab8", hash("sha256", $attachment->content));
59+
self::assertEquals(4, $attachment->size);
60+
self::assertEquals(1, $attachment->part_number);
61+
self::assertEquals("attachment", $attachment->disposition);
62+
self::assertNotEmpty($attachment->id);
63+
64+
$attachment = $attachments[2];
65+
self::assertInstanceOf(Attachment::class, $attachment);
66+
self::assertEquals('02_A€àäąбيد@Z-0123456789-qwertyuiopasdfghjklzxcvbnmopqrstuvz-0123456789-qwertyuiopasdfghjklzxcvbnmopqrstuvz-0123456789-qwertyuiopasdfghjklzxcvbnmopqrstuvz.txt', $attachment->name);
67+
self::assertEquals('02_A€àäąбيد@Z-0123456789-qwertyuiopasdfghjklzxcvbnmopqrstuvz-0123456789-qwertyuiopasdfghjklzxcvbnmopqrstuvz-0123456789-qwertyuiopasdfghjklzxcvbnmopqrstuvz.txt', $attachment->filename);
68+
self::assertEquals('text', $attachment->type);
69+
self::assertEquals("text/plain", $attachment->content_type);
70+
self::assertEquals("ca51ce1fb15acc6d69b8a5700256172fcc507e02073e6f19592e341bd6508ab8", hash("sha256", $attachment->content));
71+
self::assertEquals(4, $attachment->size);
72+
self::assertEquals(2, $attachment->part_number);
73+
self::assertEquals("attachment", $attachment->disposition);
74+
self::assertNotEmpty($attachment->id);
75+
}
76+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<?php
2+
/*
3+
* File: AttachmentNoDispositionTest.php
4+
* Category: -
5+
* Author: M.Goldenbaum
6+
* Created: 09.03.23 02:24
7+
* Updated: -
8+
*
9+
* Description:
10+
* -
11+
*/
12+
13+
namespace Tests\fixtures;
14+
15+
use Webklex\PHPIMAP\Attachment;
16+
17+
/**
18+
* Class AttachmentNoDispositionTest
19+
*
20+
* @package Tests\fixtures
21+
*/
22+
class AttachmentNoDispositionTest extends FixtureTestCase {
23+
24+
/**
25+
* Test the fixture attachment_no_disposition.eml
26+
*
27+
* @return void
28+
*/
29+
public function testFixture() : void {
30+
$message = $this->getFixture("attachment_no_disposition.eml");
31+
32+
self::assertEquals("", $message->subject);
33+
self::assertEquals("multipart/mixed", $message->content_type->last());
34+
self::assertFalse($message->hasTextBody());
35+
self::assertFalse($message->hasHTMLBody());
36+
37+
self::assertCount(1, $message->attachments());
38+
39+
$attachment = $message->attachments()->first();
40+
self::assertInstanceOf(Attachment::class, $attachment);
41+
self::assertEquals("Prostřeno_2014_poslední volné termíny.xls", $attachment->filename);
42+
self::assertEquals("Prostřeno_2014_poslední volné termíny.xls", $attachment->name);
43+
self::assertEquals('text', $attachment->type);
44+
self::assertEquals("application/vnd.ms-excel", $attachment->content_type);
45+
self::assertEquals("a0ef7cfbc05b73dbcb298fe0bc224b41900cdaf60f9904e3fea5ba6c7670013c", hash("sha256", $attachment->content));
46+
self::assertEquals(146, $attachment->size);
47+
self::assertEquals(0, $attachment->part_number);
48+
self::assertNull($attachment->disposition);
49+
self::assertNotEmpty($attachment->id);
50+
}
51+
}

tests/fixtures/BccTest.php

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?php
2+
/*
3+
* File: BccTest.php
4+
* Category: -
5+
* Author: M.Goldenbaum
6+
* Created: 09.03.23 02:24
7+
* Updated: -
8+
*
9+
* Description:
10+
* -
11+
*/
12+
13+
namespace Tests\fixtures;
14+
15+
/**
16+
* Class BccTest
17+
*
18+
* @package Tests\fixtures
19+
*/
20+
class BccTest extends FixtureTestCase {
21+
22+
/**
23+
* Test the fixture bcc.eml
24+
*
25+
* @return void
26+
*/
27+
public function testFixture() : void {
28+
$message = $this->getFixture("bcc.eml");
29+
30+
self::assertEquals("test", $message->subject);
31+
self::assertEquals("<[email protected]>", $message->return_path);
32+
self::assertEquals("1.0", $message->mime_version);
33+
self::assertEquals("text/plain", $message->content_type);
34+
self::assertEquals("Hi!", $message->getTextBody());
35+
self::assertFalse($message->hasHTMLBody());
36+
self::assertEquals("2017-09-27 10:48:51", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
37+
self::assertEquals("[email protected]", $message->from);
38+
self::assertEquals("[email protected]", $message->to);
39+
self::assertEquals("A_€@{è_Z <[email protected]>", $message->bcc);
40+
self::assertEquals("[email protected]", $message->sender);
41+
self::assertEquals("[email protected]", $message->reply_to);
42+
}
43+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
<?php
2+
/*
3+
* File: BooleanDecodedContentTest.php
4+
* Category: -
5+
* Author: M.Goldenbaum
6+
* Created: 09.03.23 02:24
7+
* Updated: -
8+
*
9+
* Description:
10+
* -
11+
*/
12+
13+
namespace Tests\fixtures;
14+
15+
use Webklex\PHPIMAP\Attachment;
16+
17+
/**
18+
* Class BooleanDecodedContentTest
19+
*
20+
* @package Tests\fixtures
21+
*/
22+
class BooleanDecodedContentTest extends FixtureTestCase {
23+
24+
/**
25+
* Test the fixture boolean_decoded_content.eml
26+
*
27+
* @return void
28+
*/
29+
public function testFixture() : void {
30+
$message = $this->getFixture("boolean_decoded_content.eml");
31+
32+
self::assertEquals("Nuu", $message->subject);
33+
self::assertEquals("Here is the problem mail\r\n \r\nBody text", $message->getTextBody());
34+
self::assertEquals("Here is the problem mail\r\n \r\nBody text", $message->getHTMLBody());
35+
36+
self::assertEquals("2017-09-13 11:05:45", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
37+
self::assertEquals("[email protected]", $message->from);
38+
self::assertEquals("[email protected]", $message->to);
39+
40+
$attachments = $message->getAttachments();
41+
self::assertCount(1, $attachments);
42+
43+
$attachment = $attachments[0];
44+
self::assertInstanceOf(Attachment::class, $attachment);
45+
self::assertEquals("Example Domain.pdf", $attachment->name);
46+
self::assertEquals('text', $attachment->type);
47+
self::assertEquals("application/pdf", $attachment->content_type);
48+
self::assertEquals("1c449aaab4f509012fa5eaa180fd017eb7724ccacabdffc1c6066d3756dcde5c", hash("sha256", $attachment->content));
49+
self::assertEquals(53, $attachment->size);
50+
self::assertEquals(3, $attachment->part_number);
51+
self::assertEquals("attachment", $attachment->disposition);
52+
self::assertNotEmpty($attachment->id);
53+
}
54+
}

0 commit comments

Comments
 (0)