ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ilMailOptionsGUITest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22use Psr\Http\Message\ServerRequestInterface;
25use PHPUnit\Framework\Attributes\DoesNotPerformAssertions;
26use ILIAS\User\Settings\Settings as UserSettings;
28
30{
31 protected function getMailOptionsGUI(
32 GlobalHttpState $http_state,
33 ilCtrlInterface $ctrl,
34 ilMailOptions $mail_options
36 $tpl = $this->getMockBuilder(ilGlobalTemplateInterface::class)->disableOriginalConstructor()->getMock();
37 $lng = $this->getMockBuilder(ilLanguage::class)->disableOriginalConstructor()->getMock();
38 $user = $this->getMockBuilder(ilObjUser::class)->disableOriginalConstructor()->getMock();
39
40 return new ilMailOptionsGUI(
41 $tpl,
42 $ctrl,
43 $lng,
44 $user,
45 $http_state,
46 new Factory(new \ILIAS\Data\Factory(), $lng),
47 $mail_options
48 );
49 }
50
51 #[DoesNotPerformAssertions]
53 {
54 $ctrl = $this->getMockBuilder(ilCtrl::class)->disableOriginalConstructor()->getMock();
55 $form = $this->getMockBuilder(ilMailOptionsFormGUI::class)->disableOriginalConstructor()->getMock();
56
57 $ctrl->method('getCmd')->willReturn('showOptions');
58
59 $request = $this->getMockBuilder(ServerRequestInterface::class)->disableOriginalConstructor()->getMock();
60 $request->method('getQueryParams')->willReturn([]);
61 $wrapper = new WrapperFactory($request);
62
63 $http = $this->getMockBuilder(GlobalHttpState::class)->getMock();
64 $http->method('wrapper')->willReturn($wrapper);
65
66 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods(['get'])->getMock();
67 $settings->method('get')->willReturnCallback(static function (string $key, ?string $default = null) {
68 if ($key === 'show_mail_settings') {
69 return '1';
70 }
71
72 return $default;
73 });
74
75 $options = new ilMailOptions(
76 0,
77 null,
78 $this->createMock(\ILIAS\Data\Clock\ClockInterface::class),
79 $settings,
80 $this->createMock(ilDBInterface::class),
81 $this->createMock(UserSettings::class)
82 );
83
84 $gui = $this->getMailOptionsGUI($http, $ctrl, $options);
85 $gui->setForm($form);
86 $gui->executeCommand();
87 }
88
90 {
91 $ctrl = $this->getMockBuilder(ilCtrl::class)->disableOriginalConstructor()->getMock();
92 $form = $this->getMockBuilder(ilMailOptionsFormGUI::class)->disableOriginalConstructor()->getMock();
93
94 $ctrl->method('getCmd')->willReturn('showOptions');
95
96 $request = $this->getMockBuilder(ServerRequestInterface::class)->disableOriginalConstructor()->getMock();
97 $request->method('getQueryParams')->willReturn([]);
98 $wrapper = new WrapperFactory($request);
99
100 $http = $this->getMockBuilder(GlobalHttpState::class)->getMock();
101 $http->method('wrapper')->willReturn($wrapper);
102
103 $ctrl->expects($this->once())->method('redirectByClass')->with(ilMailGUI::class);
104
105 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods(['get'])->getMock();
106 $settings->method('get')->willReturnCallback(static function (string $key, ?string $default = null) {
107 if ($key === 'show_mail_settings') {
108 return '0';
109 }
110
111 return $default;
112 });
113
114 $options = new ilMailOptions(
115 0,
116 null,
117 $this->createMock(\ILIAS\Data\Clock\ClockInterface::class),
118 $settings,
119 $this->createMock(ilDBInterface::class),
120 $this->createMock(UserSettings::class)
121 );
122
123 $gui = $this->getMailOptionsGUI($http, $ctrl, $options);
124 $gui->setForm($form);
125 $gui->executeCommand();
126 }
127
129 {
130 $this->expectException(ilCtrlException::class);
131
132 $request = $this->getMockBuilder(ServerRequestInterface::class)->disableOriginalConstructor()->getMock();
133 $ctrl = $this->createMock(ilCtrlInterface::class);
134 $form = $this->getMockBuilder(ilMailOptionsFormGUI::class)->disableOriginalConstructor()->getMock();
135
136 $ctrl->method('getCmd')->willReturn('showOptions');
137
138 $ctrl->expects($this->once())->method('redirectByClass')->with(PersonalSettingsGUI::class)->willThrowException(
139 new ilCtrlException('Script terminated')
140 );
141
142 $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods(['get'])->getMock();
143 $settings->method('get')->willReturnCallback(static function (string $key, ?string $default = null) {
144 if ($key === 'show_mail_settings') {
145 return '0';
146 }
147
148 return $default;
149 });
150
151 $request = $this->getMockBuilder(ServerRequestInterface::class)->disableOriginalConstructor()->getMock();
152 $request->method('getQueryParams')->willReturn([
153 'referrer' => ilPersonalSettingsGUI::class,
154 ]);
155 $wrapper = new WrapperFactory($request);
156
157 $http = $this->getMockBuilder(GlobalHttpState::class)->getMock();
158 $http->method('wrapper')->willReturn($wrapper);
159
160 $options = new ilMailOptions(
161 0,
162 null,
163 $this->createMock(\ILIAS\Data\Clock\ClockInterface::class),
164 $settings,
165 $this->createMock(ilDBInterface::class),
166 $this->createMock(UserSettings::class)
167 );
168
169 $gui = $this->getMailOptionsGUI($http, $ctrl, $options);
170 $gui->setForm($form);
171 $gui->executeCommand();
172 }
173}
Builds data types.
Definition: Factory.php:36
@ilCtrl_Calls ILIAS\User\Settings\PersonalSettingsGUI: ILIAS\User\Account\DeleteAccountGUI @ilCtrl_Ca...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getMailOptionsGUI(GlobalHttpState $http_state, ilCtrlInterface $ctrl, ilMailOptions $mail_options)
testMailOptionsAreNotAccessibleIfGlobalAccessIsDeniedAndUserWillBeRedirectedToPersonalSettings()
testMailOptionsAreNotAccessibleIfGlobalAccessIsDeniedAndUserWillBeRedirectedToMailSystem()
$http
Definition: deliver.php:30
Interface GlobalHttpState.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Interface Observer \BackgroundTasks Contains several chained tasks and infos about them.
global $lng
Definition: privfeed.php:31