ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ilMailMimeSubjectBuilderTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
21use PHPUnit\Framework\Attributes\DataProvider;
22
24{
25 private const string DEFAULT_PREFIX = 'docu default';
26
30 public static function globalSubjectPrefixOnlyProvider(): array
31 {
32 return [
33 'Global Prefix without Brackets' => ['docu', 'docu %s'],
34 'Global Prefix with Brackets' => ['[docu]', '[docu] %s'],
35 ];
36 }
37
41 public static function subjectPrefixesProvider(): array
42 {
43 return [
44 'Global Prefix without Brackets and Additional Context Prefix' => ['docu', 'Course', '[docu : Course] %s'],
45 'Global Prefix with Brackets and Additional Context Prefix' => ['[docu]', 'Course', '[docu : Course] %s'],
46 'Empty Global Prefix with Brackets and Additional Context Prefix' => [
47 '', // The administrator saved the global email settings form with an empty global subject prefix
48 'Course',
49 '[Course] %s',
50 ],
51 'Absent Global Prefix with Brackets and Additional Context Prefix' => [
52 null, // The administrator did not save the global email settings form, yet
53 'Course',
54 '[' . self::DEFAULT_PREFIX . ' : Course] %s',
55 ],
56 ];
57 }
58
60 {
61 $settings = $this->getMockBuilder(ilSetting::class)->onlyMethods(['get'])->disableOriginalConstructor()->getMock();
62 $subject_builder = new ilMailMimeSubjectBuilder($settings, self::DEFAULT_PREFIX);
63
64 $subject = 'phpunit';
65 $this->assertSame($subject, $subject_builder->subject($subject));
66 $this->assertSame($subject, $subject_builder->subject($subject, false, 'Course'));
67 }
68
69 #[DataProvider('globalSubjectPrefixOnlyProvider')]
71 string $global_prefix,
72 string $expected_subject
73 ): void {
74 $settings = $this->getMockBuilder(ilSetting::class)->onlyMethods(['get'])->disableOriginalConstructor()->getMock();
75 $settings->expects($this->once())->method('get')->with('mail_subject_prefix')->willReturn($global_prefix);
76
77 $subject_builder = new ilMailMimeSubjectBuilder($settings, self::DEFAULT_PREFIX);
78
79 $subject = 'phpunit';
80 $expected_subject = sprintf($expected_subject, $subject);
81 $this->assertSame($expected_subject, $subject_builder->subject($subject, true));
82 }
83
85 {
86 $settings = $this->getMockBuilder(ilSetting::class)->onlyMethods(['get'])->disableOriginalConstructor()->getMock();
87 $settings->expects($this->once())->method('get')->with('mail_subject_prefix')->willReturn(
88 null
89 );
90
91 $subject_builder = new ilMailMimeSubjectBuilder($settings, self::DEFAULT_PREFIX);
92
93 $subject = 'phpunit';
94 $expected_subject = self::DEFAULT_PREFIX . ' ' . $subject;
95 $this->assertSame($expected_subject, $subject_builder->subject($subject, true));
96 }
97
98 #[DataProvider('subjectPrefixesProvider')]
100 ?string $global_prefix,
101 string $context_prefix,
102 string $expected_subject
103 ): void {
104 $settings = $this->getMockBuilder(ilSetting::class)->onlyMethods(['get'])->disableOriginalConstructor()->getMock();
105 $settings->expects($this->once())->method('get')->with('mail_subject_prefix')->willReturn($global_prefix);
106
107 $subject_builder = new ilMailMimeSubjectBuilder($settings, self::DEFAULT_PREFIX);
108
109 $subject = 'phpunit';
110 $expected_subject = sprintf($expected_subject, $subject);
111 $this->assertSame($expected_subject, $subject_builder->subject($subject, true, $context_prefix));
112 }
113}
testGlobalPrefixMustBePrependedWhenDefinedAndPrefixShouldBeAppended(string $global_prefix, string $expected_subject)
testContextPrefixMustBePrependedWhenGivenAndPrefixShouldBeAppended(?string $global_prefix, string $context_prefix, string $expected_subject)
ILIAS Setting Class.