From: Bennet Becker Date: Tue, 3 Jan 2023 14:03:40 +0000 (+0100) Subject: refactor AutoSubmittedValue to Headers\AutoSubmitted and adding X-Git-Tag: v26.0.0beta1~147^2~3 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=4dc09571648634d23880cc04f958d4ff3d1ace68;p=nextcloud-server.git refactor AutoSubmittedValue to Headers\AutoSubmitted and adding header name to constants Signed-off-by: Bennet Becker --- diff --git a/lib/private/Mail/Message.php b/lib/private/Mail/Message.php index cf69d9cb3ef..3313b39e2e2 100644 --- a/lib/private/Mail/Message.php +++ b/lib/private/Mail/Message.php @@ -31,7 +31,7 @@ declare(strict_types=1); */ namespace OC\Mail; -use OCP\Mail\AutoSubmittedValue; +use OCP\Mail\Headers\AutoSubmitted; use OCP\Mail\IAttachment; use OCP\Mail\IEMailTemplate; use OCP\Mail\IMessage; @@ -307,22 +307,22 @@ class Message implements IMessage { * Add the Auto-Submitted header to the email, preventing most automated * responses to automated messages. * - * @param AutoSubmittedValue::* $value (one of AutoSubmittedValue::NO, AutoSubmittedValue::AUTO_GENERATED, AutoSubmittedValue::AUTO_REPLIED) + * @param AutoSubmitted::VALUE_* $value (one of AutoSubmitted::VALUE_NO, AutoSubmitted::VALUE_AUTO_GENERATED, AutoSubmitted::VALUE_AUTO_REPLIED) * @return $this */ public function setAutoSubmitted(string $value): IMessage { $headers = $this->swiftMessage->getHeaders(); - if ($headers->has('Auto-Submitted')) { + if ($headers->has(AutoSubmitted::HEADER)) { // if the header already exsists, remove it. // the value can be modified with some implementations // of the interface \Swift_Mime_Header, however the // interface doesn't, and this makes the static-code // analysis unhappy. - $headers->remove('Auto-Submitted'); + $headers->remove(AutoSubmitted::HEADER); } - $headers->addTextHeader('Auto-Submitted', $value); + $headers->addTextHeader(AutoSubmitted::HEADER, $value); return $this; } @@ -336,7 +336,7 @@ class Message implements IMessage { public function getAutoSubmitted(): string { $headers = $this->swiftMessage->getHeaders(); - return $headers->has('Auto-Submitted') ? - $headers->get('Auto-Submitted')->toString() : AutoSubmittedValue::NO; + return $headers->has(AutoSubmitted::HEADER) ? + $headers->get(AutoSubmitted::HEADER)->toString() : AutoSubmitted::VALUE_NO; } } diff --git a/lib/public/Mail/AutoSubmittedValue.php b/lib/public/Mail/AutoSubmittedValue.php deleted file mode 100644 index 3cf669d00f7..00000000000 --- a/lib/public/Mail/AutoSubmittedValue.php +++ /dev/null @@ -1,66 +0,0 @@ - - * - * @author Bennet Becker - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCP\Mail; - -/** - * Keyword values for the Auto-Submitted email header, as per RFC 3834. - * - * The value "auto-notified" as per RFC 5436 is deliberately omitted as it is - * meant of notification of the sieve system. - * - * @link https://www.iana.org/assignments/auto-submitted-keywords/auto-submitted-keywords.xhtml - * - * @since 26.0.0 - */ -final class AutoSubmittedValue { - /** - * Indicates that a message was NOT automatically generated, but was - * created by a human (or following human interaction). It is the equivalent - * to the absence of an Auto-Submitted header altogether. - * - * @var string - * @since 26.0.0 - */ - public const NO = 'no'; - - /** - * Indicates that a message was generated by an automatic process, and is - * not a direct response to another message - * - * @var string - * @since 26.0.0 - */ - public const AUTO_GENERATED = 'auto-generated'; - - /** - * Indicates that a message was automatically generated as a direct response - * to another message. - * - * @var string - * @since 26.0.0 - */ - public const AUTO_REPLIED = 'auto-replied'; -} diff --git a/lib/public/Mail/Headers/AutoSubmitted.php b/lib/public/Mail/Headers/AutoSubmitted.php new file mode 100644 index 00000000000..73bd35e129e --- /dev/null +++ b/lib/public/Mail/Headers/AutoSubmitted.php @@ -0,0 +1,75 @@ + + * + * @author Bennet Becker + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ +namespace OCP\Mail\Headers; + +/** + * Keyword values for the Auto-Submitted email header, as per RFC 3834. + * + * The value "auto-notified" as per RFC 5436 is deliberately omitted as it is + * meant of notification of the sieve system. + * + * @link https://www.iana.org/assignments/auto-submitted-keywords/auto-submitted-keywords.xhtml + * + * @since 26.0.0 + */ +final class AutoSubmitted { + + /** + * Name of the Header as used in the final message later + * + * @var string + * @since 26.0.0 + */ + public const HEADER = 'Auto-Submitted'; + + /** + * Indicates that a message was NOT automatically generated, but was + * created by a human (or following human interaction). It is the equivalent + * to the absence of an Auto-Submitted header altogether. + * + * @var string + * @since 26.0.0 + */ + public const VALUE_NO = 'no'; + + /** + * Indicates that a message was generated by an automatic process, and is + * not a direct response to another message + * + * @var string + * @since 26.0.0 + */ + public const VALUE_AUTO_GENERATED = 'auto-generated'; + + /** + * Indicates that a message was automatically generated as a direct response + * to another message. + * + * @var string + * @since 26.0.0 + */ + public const VALUE_AUTO_REPLIED = 'auto-replied'; +} diff --git a/lib/public/Mail/IMessage.php b/lib/public/Mail/IMessage.php index 352c47022fd..c53ab12bbb7 100644 --- a/lib/public/Mail/IMessage.php +++ b/lib/public/Mail/IMessage.php @@ -98,7 +98,7 @@ interface IMessage { * Add the Auto-Submitted header to the email, preventing most automated * responses to automated messages. * - * @param AutoSubmittedValue::* $value (one of AutoSubmittedValue::NO, AutoSubmittedValue::AUTO_GENERATED, AutoSubmittedValue::AUTO_REPLIED) + * @param AutoSubmitted::VALUE_* $value (one of AutoSubmitted::VALUE_NO, AutoSubmitted::VALUE_AUTO_GENERATED, AutoSubmitted::VALUE_AUTO_REPLIED) * @return IMessage * @since 26.0.0 */ diff --git a/tests/lib/Mail/MessageTest.php b/tests/lib/Mail/MessageTest.php index cf9a48e29f2..b97240d1336 100644 --- a/tests/lib/Mail/MessageTest.php +++ b/tests/lib/Mail/MessageTest.php @@ -9,7 +9,7 @@ namespace Test\Mail; use OC\Mail\Message; -use OCP\Mail\AutoSubmittedValue; +use OCP\Mail\Headers\AutoSubmitted; use OCP\Mail\IEMailTemplate; use Swift_Message; use Test\TestCase; @@ -285,10 +285,10 @@ class MessageTest extends TestCase { ->method('remove'); $swiftMimeSimpleHeaderSet->expects($this->once()) ->method('addTextHeader') - ->with('Auto-Submitted', AutoSubmittedValue::AUTO_GENERATED); + ->with('Auto-Submitted', AutoSubmitted::VALUE_AUTO_GENERATED); $message = new Message($swiftMessage, false); - $message->setAutoSubmitted(AutoSubmittedValue::AUTO_GENERATED); + $message->setAutoSubmitted(AutoSubmitted::VALUE_AUTO_GENERATED); } public function testSetAutoSubmitted2() { @@ -313,10 +313,10 @@ class MessageTest extends TestCase { ->with('Auto-Submitted'); $swiftMimeSimpleHeaderSet->expects($this->once()) ->method('addTextHeader') - ->with('Auto-Submitted', AutoSubmittedValue::AUTO_GENERATED); + ->with('Auto-Submitted', AutoSubmitted::VALUE_AUTO_GENERATED); $message = new Message($swiftMessage, false); - $message->setAutoSubmitted(AutoSubmittedValue::AUTO_GENERATED); + $message->setAutoSubmitted(AutoSubmitted::VALUE_AUTO_GENERATED); } public function testGetAutoSubmitted1() { @@ -357,7 +357,7 @@ class MessageTest extends TestCase { $swiftMessage->method('getHeaders')->willReturn($swiftMimeSimpleHeaderSet); - $swiftMimeHeader->method('toString')->willReturn(AutoSubmittedValue::AUTO_GENERATED); + $swiftMimeHeader->method('toString')->willReturn(AutoSubmitted::VALUE_AUTO_GENERATED); $swiftMimeSimpleHeaderSet->expects($this->once()) ->method('has') @@ -368,6 +368,6 @@ class MessageTest extends TestCase { ->willReturn($swiftMimeHeader); $message = new Message($swiftMessage, false); - $this->assertSame(AutoSubmittedValue::AUTO_GENERATED, $message->getAutoSubmitted()); + $this->assertSame(AutoSubmitted::VALUE_AUTO_GENERATED, $message->getAutoSubmitted()); } }