ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
ilMailMimeSubjectBuilderTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
25 {
26  private const DEFAULT_PREFIX = 'docu default';
27 
31  public function globalSubjectPrefixOnlyProvider(): array
32  {
33  return [
34  'Global Prefix without Brackets' => ['docu', 'docu %s'],
35  'Global Prefix with Brackets' => ['[docu]', '[docu] %s'],
36  ];
37  }
38 
42  public function subjectPrefixesProvider(): array
43  {
44  return [
45  'Global Prefix without Brackets and Additional Context Prefix' => ['docu', 'Course', '[docu : Course] %s'],
46  'Global Prefix with Brackets and Additional Context Prefix' => ['[docu]', 'Course', '[docu : Course] %s'],
47  'Empty Global Prefix with Brackets and Additional Context Prefix' => [
48  '', // The administrator saved the global email settings form with an empty global subject prefix
49  'Course',
50  '[Course] %s',
51  ],
52  'Absent Global Prefix with Brackets and Additional Context Prefix' => [
53  null, // The administrator did not save the global email settings form, yet
54  'Course',
55  '[' . self::DEFAULT_PREFIX . ' : Course] %s',
56  ],
57  ];
58  }
59 
61  {
62  $settings = $this->getMockBuilder(ilSetting::class)->onlyMethods(['get'])->disableOriginalConstructor()->getMock();
63  $subjectBuilder = new ilMailMimeSubjectBuilder($settings, self::DEFAULT_PREFIX);
64 
65  $subject = 'phpunit';
66  $this->assertSame($subject, $subjectBuilder->subject($subject));
67  $this->assertSame($subject, $subjectBuilder->subject($subject, false, 'Course'));
68  }
69 
74  string $globalPrefix,
75  string $expectedSubject
76  ): void {
77  $settings = $this->getMockBuilder(ilSetting::class)->onlyMethods(['get'])->disableOriginalConstructor()->getMock();
78  $settings->expects($this->once())->method('get')->with('mail_subject_prefix')->willReturn($globalPrefix);
79 
80  $subjectBuilder = new ilMailMimeSubjectBuilder($settings, self::DEFAULT_PREFIX);
81 
82  $subject = 'phpunit';
83  $expectedSubject = sprintf($expectedSubject, $subject);
84  $this->assertSame($expectedSubject, $subjectBuilder->subject($subject, true));
85  }
86 
88  {
89  $settings = $this->getMockBuilder(ilSetting::class)->onlyMethods(['get'])->disableOriginalConstructor()->getMock();
90  $settings->expects($this->once())->method('get')->with('mail_subject_prefix')->willReturn(
91  null
92  );
93 
94  $subjectBuilder = new ilMailMimeSubjectBuilder($settings, self::DEFAULT_PREFIX);
95 
96  $subject = 'phpunit';
97  $expectedSubject = self::DEFAULT_PREFIX . ' ' . $subject;
98  $this->assertSame($expectedSubject, $subjectBuilder->subject($subject, true));
99  }
100 
105  ?string $globalPrefix,
106  string $contextPrefix,
107  string $expectedSubject
108  ): void {
109  $settings = $this->getMockBuilder(ilSetting::class)->onlyMethods(['get'])->disableOriginalConstructor()->getMock();
110  $settings->expects($this->once())->method('get')->with('mail_subject_prefix')->willReturn($globalPrefix);
111 
112  $subjectBuilder = new ilMailMimeSubjectBuilder($settings, self::DEFAULT_PREFIX);
113 
114  $subject = 'phpunit';
115  $expectedSubject = sprintf($expectedSubject, $subject);
116  $this->assertSame($expectedSubject, $subjectBuilder->subject($subject, true, $contextPrefix));
117  }
118 }
array $settings
Setting values (LTI parameters, custom parameters and local parameters).
Definition: System.php:200
Class ilMailMimeSubjectBuilder.
testGlobalPrefixMustBePrependedWhenDefinedAndPrefixShouldBeAppended(string $globalPrefix, string $expectedSubject)
globalSubjectPrefixOnlyProvider
Class ilMailBaseTest.
testContextPrefixMustBePrependedWhenGivenAndPrefixShouldBeAppended(?string $globalPrefix, string $contextPrefix, string $expectedSubject)
subjectPrefixesProvider