ILIAS  release_8 Revision v8.24
ilMailMimeSubjectBuilderTest.php
Go to the documentation of this file.
1<?php
2
19declare(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}
Class ilMailBaseTest.
testContextPrefixMustBePrependedWhenGivenAndPrefixShouldBeAppended(?string $globalPrefix, string $contextPrefix, string $expectedSubject)
@dataProvider subjectPrefixesProvider
testGlobalPrefixMustBePrependedWhenDefinedAndPrefixShouldBeAppended(string $globalPrefix, string $expectedSubject)
@dataProvider globalSubjectPrefixOnlyProvider
Class ilMailMimeSubjectBuilder.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
array $settings
Setting values (LTI parameters, custom parameters and local parameters).
Definition: System.php:200