Skip to content

Commit

Permalink
fix(targetticket): request source
Browse files Browse the repository at this point in the history
better unit tests, and ignore unset request source in user's preferences
  • Loading branch information
btry committed May 23, 2023
1 parent fb94035 commit c72901c
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 18 deletions.
5 changes: 5 additions & 0 deletions inc/abstractitiltarget.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -2326,6 +2326,11 @@ public function getDefaultData(PluginFormcreatorFormAnswer $formanswer): array {
}

$data = array_merge($data, $predefined_fields);

if (($data['requesttypes_id'] ?? 0) == 0) {
unset($data['requesttypes_id']);
}

return $data;
}

Expand Down
17 changes: 8 additions & 9 deletions inc/field/filefield.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -238,15 +238,14 @@ private function saveDocument($file, $prefix) {
return;
}

$doc = new Document();
$file_data = [];
$file_data["name"] = Toolbox::addslashes_deep($form->getField('name') . ' - ' . $this->question->fields['name']);
$file_data["entities_id"] = isset($_SESSION['glpiactive_entity'])
? $_SESSION['glpiactive_entity']
: $form->getField('entities_id');
$file_data["is_recursive"] = $form->getField('is_recursive');
$file_data['_filename'] = [$file];
$file_data['_prefix_filename'] = [$prefix];
$file_data = [
'name' => Toolbox::addslashes_deep($form->fields['name'] . ' - ' . $this->question->fields['name']),
'entities_id' => $_SESSION['glpiactive_entity'] ?? $form->getField('entities_id'),
'is_recursive' => $form->getField('is_recursive'),
'_filename' => [$file],
'_prefix_filename' => [$prefix],
];
$doc = new Document();
if ($docID = $doc->add($file_data)) {
return $docID;
}
Expand Down
38 changes: 29 additions & 9 deletions tests/3-unit/PluginFormcreatorTargetTicket.php
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
use PluginFormcreatorSection;
use Profile;
use Profile_User;
use RequestType;
use Session;
use Supplier_Ticket;
use TaskCategory;
Expand Down Expand Up @@ -77,6 +78,19 @@ public function beforeTestMethod($method) {
}
}

public function afterTestMethod($method) {
parent::beforeTestMethod($method);
switch ($method) {
case 'testRequestSource':
$requestType = new RequestType();
$requestType->update([
'id' => 1, // Helpdesk
'is_helpdesk_default' => 1,
]);
break;
}
}

public function providerGetTypeName() {
return [
[
Expand Down Expand Up @@ -1732,7 +1746,7 @@ public function providerRequestSource() {
$testedClassName = $this->getTestedClassName();

$form = $this->getForm();
yield [
yield 'request source is Formcreator' =>[
'instance' => $this->getTargetTicket([
PluginFormcreatorForm::getForeignKeyField() => $form->getID(),
'source_rule' => $testedClassName::REQUESTSOURCE_FORMCREATOR,
Expand All @@ -1741,21 +1755,22 @@ public function providerRequestSource() {
'expected' => PluginFormcreatorCommon::getFormcreatorRequestTypeId()
];

$email_request_source = 2; // e-mail, see table glpi_requesttypes
$form = $this->getForm();
$user = $this->getGlpiCoreItem(User::class, [
'name' => 'user' . $this->getUniqueString(),
'password' => 'password',
'password2' => 'password',
'default_requesttypes_id' => 2, // e-mail, see table glpi_requesttypes
'default_requesttypes_id' => $email_request_source,
]);
$this->login($user->fields['name'], 'password');

yield [
yield 'request source is none; then set by user\'s preference' => [
'instance' => $this->getTargetTicket([
PluginFormcreatorForm::getForeignKeyField() => $form->getID(),
'source_rule' => $testedClassName::REQUESTSOURCE_NONE
]),
'expected' => 2
'expected' => $email_request_source,
];

$form = $this->getForm();
Expand All @@ -1766,13 +1781,18 @@ public function providerRequestSource() {
'default_requesttypes_id' => 0, // unset
]);
$this->login($user->fields['name'], 'password');
$requestType = new RequestType();
$requestType->update([
'id' => 3, // Phone
'is_helpdesk_default' => 1,
]);

yield [
yield 'request source is none; then set by GLPI default' => [
'instance' => $this->getTargetTicket([
PluginFormcreatorForm::getForeignKeyField() => $form->getID(),
'source_rule' => $testedClassName::REQUESTSOURCE_NONE,
]),
'expected' => 0 // Unset (see Setup > General > Default values)
'expected' => 3 // Unset (see Setup > General > Default values)
];

$form = $this->getForm();
Expand All @@ -1784,16 +1804,16 @@ public function providerRequestSource() {
$this->getGlpiCoreItem(TicketTemplatePredefinedField::getType(), [
'tickettemplates_id' => $ticketTemplate->getID(),
'num' => 9, // RequestType
'value' => 1, // Helpdesk
'value' => 4, // Direct
]);

yield [
yield 'request source is none; then set by target\'s template' => [
'instance' => $this->getTargetTicket([
PluginFormcreatorForm::getForeignKeyField() => $form->getID(),
'source_rule' => $testedClassName::REQUESTSOURCE_NONE,
'tickettemplates_id' => $ticketTemplate->getID(),
]),
'expected' => 1 // Helpdesk (see Setup > General > Default values)
'expected' => 4 // Helpdesk (see Setup > General > Default values)
];
}

Expand Down

0 comments on commit c72901c

Please sign in to comment.