@@ -1727,4 +1727,89 @@ public function testSetTargetLocation($instance, $formanswer, $expected) {
1727
1727
1728
1728
$ this ->integer ((int ) $ output ['locations_id ' ])->isEqualTo ($ expected );
1729
1729
}
1730
+
1731
+ public function providerRequestSource () {
1732
+ $ testedClassName = $ this ->getTestedClassName ();
1733
+
1734
+ $ form = $ this ->getForm ();
1735
+ yield [
1736
+ 'instance ' => $ this ->getTargetTicket ([
1737
+ PluginFormcreatorForm::getForeignKeyField () => $ form ->getID (),
1738
+ 'source_rule ' => $ testedClassName ::REQUESTSOURCE_FORMCREATOR ,
1739
+ 'source_question ' => PluginFormcreatorCommon::getFormcreatorRequestTypeId (),
1740
+ ]),
1741
+ 'expected ' => PluginFormcreatorCommon::getFormcreatorRequestTypeId ()
1742
+ ];
1743
+
1744
+ $ form = $ this ->getForm ();
1745
+ $ user = $ this ->getGlpiCoreItem (User::class, [
1746
+ 'name ' => 'user ' . $ this ->getUniqueString (),
1747
+ 'password ' => 'password ' ,
1748
+ 'password2 ' => 'password ' ,
1749
+ 'default_requesttypes_id ' => 2 , // e-mail, see table glpi_requesttypes
1750
+ ]);
1751
+ $ this ->login ($ user ->fields ['name ' ], 'password ' );
1752
+
1753
+ yield [
1754
+ 'instance ' => $ this ->getTargetTicket ([
1755
+ PluginFormcreatorForm::getForeignKeyField () => $ form ->getID (),
1756
+ 'source_rule ' => $ testedClassName ::REQUESTSOURCE_NONE
1757
+ ]),
1758
+ 'expected ' => 2
1759
+ ];
1760
+
1761
+ $ form = $ this ->getForm ();
1762
+ $ user = $ this ->getGlpiCoreItem (User::class, [
1763
+ 'name ' => 'user ' . $ this ->getUniqueString (),
1764
+ 'password ' => 'password ' ,
1765
+ 'password2 ' => 'password ' ,
1766
+ 'default_requesttypes_id ' => 0 , // unset
1767
+ ]);
1768
+ $ this ->login ($ user ->fields ['name ' ], 'password ' );
1769
+
1770
+ yield [
1771
+ 'instance ' => $ this ->getTargetTicket ([
1772
+ PluginFormcreatorForm::getForeignKeyField () => $ form ->getID (),
1773
+ 'source_rule ' => $ testedClassName ::REQUESTSOURCE_NONE ,
1774
+ ]),
1775
+ 'expected ' => 0 // Unset (see Setup > General > Default values)
1776
+ ];
1777
+
1778
+ $ form = $ this ->getForm ();
1779
+ $ ticketTemplate = $ this ->getGlpiCoreItem (
1780
+ TicketTemplate::getType (), [
1781
+ 'name ' => 'template with predefined request type ' ,
1782
+ ]
1783
+ );
1784
+ $ this ->getGlpiCoreItem (TicketTemplatePredefinedField::getType (), [
1785
+ 'tickettemplates_id ' => $ ticketTemplate ->getID (),
1786
+ 'num ' => 9 , // RequestType
1787
+ 'value ' => 1 , // Helpdesk
1788
+ ]);
1789
+
1790
+ yield [
1791
+ 'instance ' => $ this ->getTargetTicket ([
1792
+ PluginFormcreatorForm::getForeignKeyField () => $ form ->getID (),
1793
+ 'source_rule ' => $ testedClassName ::REQUESTSOURCE_NONE ,
1794
+ 'tickettemplates_id ' => $ ticketTemplate ->getID (),
1795
+ ]),
1796
+ 'expected ' => 1 // Helpdesk (see Setup > General > Default values)
1797
+ ];
1798
+ }
1799
+
1800
+ /**
1801
+ * @dataProvider providerRequestSource
1802
+ */
1803
+ public function testRequestSource ($ instance , $ expected ) {
1804
+ $ form = PluginFormcreatorForm::getByItem ($ instance );
1805
+ $ formAnswer = $ this ->getFormAnswer ([
1806
+ PluginFormcreatorForm::getForeignKeyField () => $ form ->getID (),
1807
+ ]);
1808
+
1809
+ $ generatedTargets = $ formAnswer ->targetList ;
1810
+ foreach ($ generatedTargets as $ target ) {
1811
+ $ output = $ target ->fields ['requesttypes_id ' ];
1812
+ $ this ->integer ((int ) $ output )->isEqualTo ($ expected );
1813
+ }
1814
+ }
1730
1815
}
0 commit comments