Skip to content

Commit 718b059

Browse files
committed
test(formanwer): fix test, and some refactor
1 parent 4f20c9d commit 718b059

1 file changed

Lines changed: 30 additions & 16 deletions

File tree

tests/2-integration/PluginFormcreatorFormAnswer.php

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
use GlpiPlugin\Formcreator\Tests\CommonTestCase;
3333
use PluginFormcreatorForm_Validator;
3434
use Search;
35-
use TicketValidation;
35+
use Session;
3636
use User;
3737

3838
/**
@@ -45,7 +45,7 @@ public function beforeTestMethod($method) {
4545
switch ($method) {
4646
case 'testNotificationFormAnswerCreated':
4747
case 'testOtherUserValidates':
48-
$this->boolean($this->login('glpi', 'glpi', true))->isTrue();
48+
$this->login('glpi', 'glpi', true);
4949
break;
5050
}
5151
}
@@ -132,30 +132,25 @@ public function testOtherUserValidates() {
132132
$form_validator = new PluginFormcreatorForm_Validator();
133133
$form_validator->add([
134134
'plugin_formcreator_forms_id' => $form->getID(),
135-
'itemtype' => User::class,
136-
'items_id' => '2', // user is glpi
135+
'itemtype' => User::class,
136+
'items_id' => User::getIdByName('glpi'),
137+
'level' => 1,
137138
]);
138139
$this->boolean($form_validator->isNewItem())->isFalse();
139140

140-
$section = $this->getSection([
141-
'name' => 'a section',
142-
'plugin_formcreator_forms_id' => $form->getID()
143-
]);
144-
$this->boolean($section->isNewItem())->isFalse();
145-
146-
$formAnswer = new \PluginFormcreatorFormAnswer();
141+
$formAnswer = $this->newTestedInstance();
147142
$formAnswer->add([
148143
'plugin_formcreator_forms_id' => $form->getID(),
149144
'status' => 'waiting',
150-
'formcreator_validator' => $_SESSION['glpiID'],
145+
'formcreator_validator' => Session::getLoginUserID(),
151146
]);
152147
$this->boolean($formAnswer->isNewItem())->isFalse();
153148

154149
// Reload the item
155150
$formAnswer->getFromDB($formAnswer->getID());
156151

157152
$login = $this->getUniqueString();
158-
$user = new \User();
153+
$user = new User();
159154
$user->add([
160155
'name' => $login,
161156
'password' => 'superadmin',
@@ -171,15 +166,34 @@ public function testOtherUserValidates() {
171166

172167
// Login as other user
173168
$this->boolean($this->login($login, 'superadmin', true))->isTrue();
174-
$this->boolean($formAnswer->canValidate($form, $formAnswer))->isFalse();
169+
$this->boolean($formAnswer->canValidate())->isFalse();
175170

176171
// Login as glpi
177172
$this->boolean($this->login('glpi', 'glpi', true))->istrue();
178-
$this->boolean($formAnswer->canValidate($form, $formAnswer))->isTrue();
173+
// The form answer has been submitted by glpi, which is a level 1 validator. So it is automatically validated,
174+
// and glpi can't validate it again
175+
$this->boolean($formAnswer->canValidate())->isFalse();
179176

180177
// Login as normal
181178
$this->boolean($this->login('normal', 'normal', true))->istrue();
182-
$this->boolean($formAnswer->canValidate($form, $formAnswer))->isFalse();
179+
$this->boolean($formAnswer->canValidate())->isFalse();
180+
181+
$this->login($login, 'superadmin');
182+
$formAnswer = $this->newTestedInstance();
183+
$formAnswer->add([
184+
'plugin_formcreator_forms_id' => $form->getID(),
185+
'status' => 'waiting',
186+
'formcreator_validator' => Session::getLoginUserID(),
187+
]);
188+
$this->boolean($formAnswer->isNewItem())->isFalse();
189+
190+
// other user cannot validate his own form answer, because he is not a validator of the form
191+
$this->boolean($formAnswer->canValidate())->isFalse();
192+
193+
// Login as glpi
194+
$this->boolean($this->login('glpi', 'glpi', true))->istrue();
195+
// The form answer has been submitted by someone else than glpi, so glpi can validate it
196+
$this->boolean($formAnswer->canValidate())->isTrue();
183197
}
184198

185199
public function testSearchMyLastAnswersAsRequester() {

0 commit comments

Comments
 (0)