fix getAutoSubmitted return type and adding unit tests

Signed-off-by: Bennet Becker <bbecker@pks.mpg.de>
This commit is contained in:
Bennet Becker 2022-12-23 12:46:15 +01:00 committed by Bennet Becker
parent 7a9f4fbbbe
commit c1c6d215c7
No known key found for this signature in database
GPG key ID: B4C66D4902D1FA86
2 changed files with 143 additions and 1 deletions

View file

@ -328,7 +328,7 @@ class Message implements IMessage {
*
* @return string
*/
public function getAutoSubmitted(): AutoSubmittedValue {
public function getAutoSubmitted(): string {
$headers = $this->swiftMessage->getHeaders();
return $headers->has('Auto-Submitted') ?

View file

@ -8,7 +8,9 @@
namespace Test\Mail;
use Egulias\EmailValidator\EmailValidator;
use OC\Mail\Message;
use OCP\Mail\AutoSubmittedValue;
use OCP\Mail\IEMailTemplate;
use Swift_Message;
use Test\TestCase;
@ -263,4 +265,144 @@ class MessageTest extends TestCase {
$message->useTemplate($template);
}
public function testSetAutoSubmitted1() {
$swiftMimeSimpleHeaderSet = $this->getMockBuilder('\Swift_Mime_SimpleHeaderSet')
->disableOriginalConstructor()
->getMock();
$swiftMessage = $this->getMockBuilder('\Swift_Message')
->disableOriginalConstructor()
->disableOriginalClone()
->disableArgumentCloning()
->disallowMockingUnknownTypes()
->getMock();
$swiftMessage->method('getHeaders')->willReturn($swiftMimeSimpleHeaderSet);
$swiftMimeSimpleHeaderSet->expects($this->once())
->method('has')
->with('Auto-Submitted');
$swiftMimeSimpleHeaderSet->expects($this->never())
->method('get');
$swiftMimeSimpleHeaderSet->expects($this->once())
->method('addTextHeader')
->with('Auto-Submitted', AutoSubmittedValue::AUTO_GENERATED);
$message = new Message($swiftMessage, false);
$message->setAutoSubmitted(AutoSubmittedValue::AUTO_GENERATED);
}
public function testSetAutoSubmitted2() {
$swiftMimeHeader = $this->getMockBuilder('\Swift_Mime_Header')
->disableOriginalConstructor()
->addMethods(['setValue'])
->getMockForAbstractClass();
$swiftMimeSimpleHeaderSet = $this->getMockBuilder('\Swift_Mime_SimpleHeaderSet')
->disableOriginalConstructor()
->getMock();
$swiftMessage = $this->getMockBuilder('\Swift_Message')
->disableOriginalConstructor()
->disableOriginalClone()
->disableArgumentCloning()
->disallowMockingUnknownTypes()
->getMock();
$swiftMessage->method('getHeaders')->willReturn($swiftMimeSimpleHeaderSet);
$swiftMimeSimpleHeaderSet->method('get')->with("Auto-Submitted")->willReturn($swiftMimeHeader);
$swiftMimeSimpleHeaderSet->expects($this->once())
->method('has')
->with('Auto-Submitted')
->willReturn(true);
$swiftMimeSimpleHeaderSet->expects($this->once())
->method('get');
$swiftMimeSimpleHeaderSet->expects($this->never())
->method('addTextHeader')
->with('Auto-Submitted', AutoSubmittedValue::AUTO_GENERATED);
$swiftMimeHeader->expects($this->once())
->method('setValue')
->with(AutoSubmittedValue::AUTO_GENERATED);
$message = new Message($swiftMessage, false);
$message->setAutoSubmitted(AutoSubmittedValue::AUTO_GENERATED);
}
public function testGetAutoSubmitted1() {
$swiftMimeSimpleHeaderSet = $this->getMockBuilder('\Swift_Mime_SimpleHeaderSet')
->disableOriginalConstructor()
->getMock();
$swiftMessage = $this->getMockBuilder('\Swift_Message')
->disableOriginalConstructor()
->disableOriginalClone()
->disableArgumentCloning()
->disallowMockingUnknownTypes()
->getMock();
$swiftMessage->method('getHeaders')->willReturn($swiftMimeSimpleHeaderSet);
$swiftMimeSimpleHeaderSet->expects($this->once())
->method('has')
->with('Auto-Submitted');
$swiftMimeSimpleHeaderSet->expects($this->never())
->method('get');
$message = new Message($swiftMessage, false);
$this->assertSame("no", $message->getAutoSubmitted());
}
public function testGetAutoSubmitted2() {
$swiftMimeHeader = $this->getMockBuilder('\Swift_Mime_Header')
->disableOriginalConstructor()
->getMockForAbstractClass();
$swiftMimeSimpleHeaderSet = $this->getMockBuilder('\Swift_Mime_SimpleHeaderSet')
->disableOriginalConstructor()
->getMock();
$swiftMessage = $this->getMockBuilder('\Swift_Message')
->disableOriginalConstructor()
->disableOriginalClone()
->disableArgumentCloning()
->disallowMockingUnknownTypes()
->getMock();
$swiftMessage->method('getHeaders')->willReturn($swiftMimeSimpleHeaderSet);
$swiftMimeHeader->method('toString')->willReturn(AutoSubmittedValue::AUTO_GENERATED);
$swiftMimeSimpleHeaderSet->expects($this->once())
->method('has')
->with('Auto-Submitted')
->willReturn(true);
$swiftMimeSimpleHeaderSet->expects($this->once())
->method('get')
->willReturn($swiftMimeHeader);
$message = new Message($swiftMessage, false);
$this->assertSame(AutoSubmittedValue::AUTO_GENERATED, $message->getAutoSubmitted());
}
}