OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
cream
/
aws-ses
/
vendor
/
phpmailer
/
phpmailer
/
test
/
PHPMailer
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/19/2025 10:07:19 AM
rwxr-xr-x
📄
AddEmbeddedImageTest.php
6.45 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
AddStringAttachmentTest.php
5.19 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
AddStringEmbeddedImageTest.php
5.53 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
AddrFormatTest.php
2.08 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
AuthCRAMMD5Test.php
1.54 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
CustomHeaderTest.php
9.2 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
DKIMTest.php
9.51 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
DSNConfiguratorTest.php
6.49 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
EncodeQTest.php
3.96 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
EncodeStringTest.php
4.58 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
FileIsAccessibleTest.php
3.32 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
FilenameToTypeTest.php
2.22 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
GenerateIdTest.php
2.63 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
GetLastMessageIDTest.php
3.32 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
HasLineLongerThanMaxTest.php
4.69 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
Html2TextTest.php
9.79 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
ICalTest.php
4.32 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
IsPermittedPathTest.php
3.74 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
IsValidHostTest.php
4.18 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
LocalizationTest.php
18.51 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
MailTransportTest.php
3.67 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
MbPathinfoTest.php
5.74 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
MimeTypesTest.php
1.93 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
NormalizeBreaksTest.php
3.62 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
PHPMailerTest.php
47.39 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
ParseAddressesTest.php
14.27 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
PunyencodeAddressTest.php
4.77 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
QuotedStringTest.php
2.08 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
ReplyToGetSetClearTest.php
17.23 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
SetErrorTest.php
5.19 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
SetFromTest.php
7.08 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
SetTest.php
2.32 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
SetWordWrapTest.php
4.01 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
Utf8CharBoundaryTest.php
1.95 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
ValidateAddressCustomValidatorTest.php
3.65 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
ValidateAddressTest.php
17.2 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
WrapTextTest.php
6.05 KB
05/19/2025 10:07:19 AM
rw-r--r--
📄
XMailerTest.php
2 KB
05/19/2025 10:07:19 AM
rw-r--r--
Editing: CustomHeaderTest.php
Close
<?php /** * PHPMailer - PHP email transport unit tests. * PHP version 5.5. * * @author Marcus Bointon <phpmailer@synchromedia.co.uk> * @author Andy Prevost * @copyright 2012 - 2020 Marcus Bointon * @copyright 2004 - 2009 Andy Prevost * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License */ namespace PHPMailer\Test\PHPMailer; use PHPMailer\PHPMailer\Exception; use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\Test\TestCase; /** * Test custom header functionality. */ final class CustomHeaderTest extends TestCase { /** * Tests setting and getting custom headers. * * @covers \PHPMailer\PHPMailer\PHPMailer::addCustomHeader * @covers \PHPMailer\PHPMailer\PHPMailer::getCustomHeaders * * @dataProvider dataAddAndGetCustomHeader * * @param array $headers Array of headers to set. * @param array|null $expected Optional. The expected set headers. * Only needs to be passed if different from the $headers array. */ public function testAddAndGetCustomHeader($headers, $expected = null) { if (isset($expected) === false) { $expected = $headers; } // Test setting the custom header(s). foreach ($headers as $header) { if (isset($header[1])) { $set = $this->Mail->addCustomHeader($header[0], $header[1]); } else { $set = $this->Mail->addCustomHeader($header[0]); } self::assertTrue($set, 'Custom header failed to set for ' . var_export($header, true)); } // Test retrieving the custom header(s) and verify they have been correctly set. self::assertSame( $expected, $this->Mail->getCustomHeaders(), 'Custom headers retrieved not the same as expected' ); } /** * Data provider. * * @return array */ public function dataAddAndGetCustomHeader() { return [ 'Single custom header' => [ 'headers' => [ ['foo', 'bar'], ], ], 'Multiple custom headers' => [ 'headers' => [ ['foo', 'bar'], ['foo', 'baz'], ], ], 'Custom header: only name, no colon' => [ 'headers' => [ ['yux'], ], 'expected' => [ ['yux', ''], ], ], 'Custom header: whitespace around name and value' => [ 'headers' => [ [' name ', ' value '], ], 'expected' => [ ['name', 'value'], ], ], 'Custom headers: "name: value" sets' => [ 'headers' => [ ['Content-Type: application/json'], ['SomeHeader: Some Value'], ], 'expected' => [ ['Content-Type', 'application/json'], ['SomeHeader', 'Some Value'], ], ], 'Custom headers: "name:value" sets, no space and lots of space' => [ 'headers' => [ ['Content-Type:application/json'], ['SomeHeader : Some Value'], ], 'expected' => [ ['Content-Type', 'application/json'], ['SomeHeader', 'Some Value'], ], ], 'Custom headers: "name: value" set with a colon in the value' => [ 'headers' => [ ['name: value:value'], ], 'expected' => [ ['name', 'value:value'], ], ], 'Custom headers: "name: value" set without a value' => [ 'headers' => [ ['name:'], ], 'expected' => [ ['name', ''], ], ], 'Custom header: "name: value" set with whitespace around name and value' => [ 'headers' => [ [' name : value '], ], 'expected' => [ ['name', 'value'], ], ], 'Custom headers: duplicate headers' => [ 'headers' => [ ['SomeHeader: Some Value'], ['SomeHeader', 'Some Value'] ], 'expected' => [ ['SomeHeader', 'Some Value'], ['SomeHeader', 'Some Value'], ], ], ]; } /** * Tests failing to set custom headers when the header info provided does not validate. * * @covers \PHPMailer\PHPMailer\PHPMailer::addCustomHeader * @dataProvider dataAddCustomHeaderInvalid * * @param string $name Custom header name. * @param mixed $value Optional. Custom header value. */ public function testAddCustomHeaderInvalid($name, $value = null) { self::assertFalse($this->Mail->addCustomHeader($name, $value)); } /** * Data provider. * * @return array */ public function dataAddCustomHeaderInvalid() { return [ 'Invalid: new line in value' => [ 'name' => 'SomeHeader', 'value' => "Some\n Value", ], 'Invalid: new line in name' => [ 'name' => "Some\nHeader", 'value' => 'Some Value', ], 'Invalid: empty name' => [ 'name' => ' ', ], 'Invalid: empty name and empty value' => [ 'name' => ' : ', ], ]; } /** * Test removing previously set custom header. * * @covers \PHPMailer\PHPMailer\PHPMailer::clearCustomHeader */ public function testClearCustomHeader() { // make sure 'foo' is cleared, even if there is more than one header set. $this->Mail->addCustomHeader('foo', 'bar'); $this->Mail->addCustomHeader('foo', 'baz'); self::assertSame([['foo', 'bar'], ['foo', 'baz']], $this->Mail->getCustomHeaders()); $this->Mail->clearCustomHeader('foo'); $cleared = $this->Mail->getCustomHeaders(); self::assertIsArray($cleared); self::assertEmpty($cleared); } /** * Test removing previously set custom header value. * * @covers \PHPMailer\PHPMailer\PHPMailer::clearCustomHeader */ public function testClearCustomHeaderValue() { // Test clearing 'name', 'value' $this->Mail->addCustomHeader('foo', 'bar'); $this->Mail->addCustomHeader('foo', 'baz'); self::assertSame([['foo', 'bar'], ['foo', 'baz']], $this->Mail->getCustomHeaders()); $this->Mail->clearCustomHeader('foo', 'bar'); self::assertSame([['foo', 'baz']], array_values($this->Mail->getCustomHeaders())); // Test clearing 'name: value' $this->Mail->addCustomHeader('foo', 'bar'); self::assertSame([['foo', 'baz'], ['foo', 'bar']], array_values($this->Mail->getCustomHeaders())); $this->Mail->clearCustomHeader('foo: bar'); self::assertSame([['foo', 'baz']], array_values($this->Mail->getCustomHeaders())); } /** * Test removing previously set custom headers. * * @covers \PHPMailer\PHPMailer\PHPMailer::clearCustomHeaders */ public function testClearCustomHeaders() { $this->Mail->addCustomHeader('foo', 'bar'); self::assertSame([['foo', 'bar']], $this->Mail->getCustomHeaders()); $this->Mail->clearCustomHeaders(); $cleared = $this->Mail->getCustomHeaders(); self::assertIsArray($cleared); self::assertEmpty($cleared); } /** * Check whether setting a bad custom header throws exceptions. * * @covers \PHPMailer\PHPMailer\PHPMailer::addCustomHeader * * @throws Exception */ public function testInvalidHeaderException() { $this->expectException(Exception::class); $this->expectExceptionMessage('Invalid header name or value'); $mail = new PHPMailer(true); $mail->addCustomHeader('SomeHeader', "Some\n Value"); } /** * Test replacing a previously set custom header. * * @covers \PHPMailer\PHPMailer\PHPMailer::replaceCustomHeader */ public function testReplaceCustomHeader() { $this->Mail->addCustomHeader('foo', 'bar'); $this->Mail->replaceCustomHeader('foo', 'baz'); // Test retrieving the custom header(s) and verify the updated value is seet. self::assertSame( [['foo', 'baz']], $this->Mail->getCustomHeaders(), 'Custom header does not contain expected update' ); } }