From abbbeea236a18ccf91ee141d3d0f6cf9b488017c Mon Sep 17 00:00:00 2001 From: Denis Date: Tue, 10 Dec 2013 00:25:55 +0200 Subject: [PATCH] Content-Transfer-Encoding value not case sensitive --- library/Zend/Mail/Header/ContentTransferEncoding.php | 3 +++ tests/ZendTest/Mail/Header/ContentTransferEncodingTest.php | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/library/Zend/Mail/Header/ContentTransferEncoding.php b/library/Zend/Mail/Header/ContentTransferEncoding.php index 3c371474916..1a9491a1a93 100644 --- a/library/Zend/Mail/Header/ContentTransferEncoding.php +++ b/library/Zend/Mail/Header/ContentTransferEncoding.php @@ -91,6 +91,9 @@ public function toString() */ public function setTransferEncoding($transferEncoding) { + // Per RFC 1521, the value of the header is not case sensitive + $transferEncoding = strtolower($transferEncoding); + if (!in_array($transferEncoding, self::$allowedTransferEncodings)) { throw new Exception\InvalidArgumentException(sprintf( '%s expects one of "'. implode(', ', self::$allowedTransferEncodings) . '"; received "%s"', diff --git a/tests/ZendTest/Mail/Header/ContentTransferEncodingTest.php b/tests/ZendTest/Mail/Header/ContentTransferEncodingTest.php index ffbc3729cfe..16e5eb7490a 100644 --- a/tests/ZendTest/Mail/Header/ContentTransferEncodingTest.php +++ b/tests/ZendTest/Mail/Header/ContentTransferEncodingTest.php @@ -43,6 +43,13 @@ public function testContentTransferEncodingGetFieldValueReturnsProperValue() $this->assertEquals('7bit', $contentTransferEncodingHeader->getFieldValue()); } + public function testContentTransferEncodingHandlesCaseInsensitivity() + { + $encoding = new ContentTransferEncoding(); + $encoding->setTransferEncoding('quOtED-printAble'); + $this->assertEquals('quoted-printable', strtolower($encoding->getFieldValue())); + } + public function testContentTransferEncodingToStringReturnsHeaderFormattedString() { $contentTransferEncodingHeader = new ContentTransferEncoding();