ILIAS  release_7 Revision v7.30-3-g800a261c036
ilMailMimeSubjectBuilderTest.php
Go to the documentation of this file.
1<?php declare(strict_types=1);
2/* Copyright (c) 1998-2020 ILIAS open source, Extended GPL, see docs/LICENSE */
3
8{
9 private const DEFAULT_PREFIX = 'docu default';
10
14 public function globalSubjectPrefixOnlyProvider() : array
15 {
16 return [
17 'Global Prefix without Brackets' => ['docu', 'docu %s'],
18 'Global Prefix with Brackets' => ['[docu]', '[docu] %s'],
19 ];
20 }
21
25 public function subjectPrefixesProvider() : array
26 {
27 return [
28 'Global Prefix without Brackets and Additional Context Prefix' => ['docu', 'Course', '[docu : Course] %s'],
29 'Global Prefix with Brackets and Additional Context Prefix' => ['[docu]', 'Course', '[docu : Course] %s'],
30 'Empty Global Prefix with Brackets and Additional Context Prefix' => [
31 '', // The administrator saved the global email settings form with an empty global subject prefix
32 'Course',
33 '[Course] %s'
34 ],
35 'Absent Global Prefix with Brackets and Additional Context Prefix' => [
36 false, // The administrator did not save the global email settings form, yet
37 'Course',
38 '[' . self::DEFAULT_PREFIX . ' : Course] %s'
39 ],
40 ];
41 }
42
44 {
45 $settings = $this->getMockBuilder(ilSetting::class)->onlyMethods(['get'])->disableOriginalConstructor()->getMock();
46 $subjectBuilder = new ilMailMimeSubjectBuilder($settings, self::DEFAULT_PREFIX);
47
48 $subject = 'phpunit';
49 $this->assertEquals($subject, $subjectBuilder->subject($subject, false));
50 $this->assertEquals($subject, $subjectBuilder->subject($subject, false, 'Course'));
51 }
52
59 string $globalPrefix,
60 string $expectedSubject
61 ) : void {
62 $settings = $this->getMockBuilder(ilSetting::class)->onlyMethods(['get'])->disableOriginalConstructor()->getMock();
63 $settings->expects($this->once())->method('get')->with('mail_subject_prefix')->willReturn($globalPrefix);
64
65 $subjectBuilder = new ilMailMimeSubjectBuilder($settings, self::DEFAULT_PREFIX);
66
67 $subject = 'phpunit';
68 $expectedSubject = sprintf($expectedSubject, $subject);
69 $this->assertEquals($expectedSubject, $subjectBuilder->subject($subject, true));
70 }
71
73 {
74 $settings = $this->getMockBuilder(ilSetting::class)->onlyMethods(['get'])->disableOriginalConstructor()->getMock();
75 $settings->expects($this->once())->method('get')->with('mail_subject_prefix')->willReturn(false);
76
77 $subjectBuilder = new ilMailMimeSubjectBuilder($settings, self::DEFAULT_PREFIX);
78
79 $subject = 'phpunit';
80 $expectedSubject = self::DEFAULT_PREFIX . ' ' . $subject;
81 $this->assertEquals($expectedSubject, $subjectBuilder->subject($subject, true));
82 }
83
91 $globalPrefix,
92 string $contextPrefix,
93 string $expectedSubject
94 ) : void {
95 $settings = $this->getMockBuilder(ilSetting::class)->onlyMethods(['get'])->disableOriginalConstructor()->getMock();
96 $settings->expects($this->once())->method('get')->with('mail_subject_prefix')->willReturn($globalPrefix);
97
98 $subjectBuilder = new ilMailMimeSubjectBuilder($settings, self::DEFAULT_PREFIX);
99
100 $subject = 'phpunit';
101 $expectedSubject = sprintf($expectedSubject, $subject);
102 $this->assertEquals($expectedSubject, $subjectBuilder->subject($subject, true, $contextPrefix));
103 }
104}
An exception for terminatinating execution or to throw for unit testing.
Class ilMailBaseTest.
testContextPrefixMustBePrependedWhenGivenAndPrefixShouldBeAppended( $globalPrefix, string $contextPrefix, string $expectedSubject)
@dataProvider subjectPrefixesProvider
testGlobalPrefixMustBePrependedWhenDefinedAndPrefixShouldBeAppended(string $globalPrefix, string $expectedSubject)
@dataProvider globalSubjectPrefixOnlyProvider
Class ilMailMimeSubjectBuilder.
ILIAS Setting Class.