ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
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 }
Class ilMailMimeSubjectBuilder.
testGlobalPrefixMustBePrependedWhenDefinedAndPrefixShouldBeAppended(string $globalPrefix, string $expectedSubject)
globalSubjectPrefixOnlyProvider
Class ilMailBaseTest.
testContextPrefixMustBePrependedWhenGivenAndPrefixShouldBeAppended( $globalPrefix, string $contextPrefix, string $expectedSubject)
subjectPrefixesProvider