diff --git a/setup/itopdesignformat.class.inc.php b/setup/itopdesignformat.class.inc.php index 1290d6558..ecf4be546 100644 --- a/setup/itopdesignformat.class.inc.php +++ b/setup/itopdesignformat.class.inc.php @@ -1113,13 +1113,13 @@ class iTopDesignFormat $oXPath = new DOMXPath($this->oDocument); // N°5563 AttributeLinkedSet - // - remove relation_type & read_only (added in 3.1) - // - restore edit_mode attribute from legacy_edit_mode attribute + // - Remove relation_type & read_only (added in 3.1) + // - Restore edit_mode attribute from legacy_edit_mode attribute $this->RemoveNodeFromXPath("/itop_design/classes//class/fields/field[@xsi:type='AttributeLinkedSet']/read_only"); $this->RemoveNodeFromXPath("/itop_design/classes//class/fields/field[@xsi:type='AttributeLinkedSet']/relation_type"); // N°5563 AttributeLinkedSetIndirect - // - remove read_only attribute (added in 3.1) + // - Remove read_only attribute (added in 3.1) $this->RemoveNodeFromXPath("/itop_design/classes//class/fields/field[@xsi:type='AttributeLinkedSetIndirect']/read_only"); // N°4756 - Ease extensibility for CRUD operations : Event Service @@ -1128,13 +1128,19 @@ class iTopDesignFormat $this->RemoveNodeFromXPath('/itop_design/classes//class/event_listeners'); // N°3190 - Edit n:n LinkedSetIndirect in object details using a tagset-like widget - // - remove display style + // - Remove display style $this->RemoveNodeFromXPath("/itop_design/classes//class/fields/field[@xsi:type='AttributeLinkedSet']/display_style"); $this->RemoveNodeFromXPath("/itop_design/classes//class/fields/field[@xsi:type='AttributeLinkedSetIndirect']/display_style"); - // N°2783 Custom zlists + // N°2783 - Custom zlists $this->RemoveNodeFromXPath("/itop_design/classes//class/presentation/custom_presentations"); $this->RemoveNodeFromXPath("/itop_design/meta/presentation/custom_presentations"); + + // N°1646 - Enum: logical ordering defined in datamodel (dashlet, list, transition menu...) + // - Remove sort type + $this->RemoveNodeFromXPath("/itop_design/classes//class/fields/field/sort_type"); + // - Remove rank in values + $this->RemoveNodeFromXPath("/itop_design/classes//class/fields/field/values/value/rank"); } /** diff --git a/tests/php-unit-tests/unitary-tests/core/ValueSetDefinitionTest.php b/tests/php-unit-tests/unitary-tests/core/ValueSetDefinitionTest.php new file mode 100644 index 000000000..bdaf3e148 --- /dev/null +++ b/tests/php-unit-tests/unitary-tests/core/ValueSetDefinitionTest.php @@ -0,0 +1,63 @@ +GetValues([]); + + // Check that both arrays have the values *sorted* in the same order + $aExpectedValues = array_values($aExpectedData); + $aTestedValues = array_values($aTestedData); + $this->assertEquals($aExpectedValues, $aTestedValues, 'Values are not ordered as expected'); + } + + public function GetValuesProvider(): array + { + return [ + 'ValueSetEnum: Preserved order' => [ + ValueSetEnum::class, + ['new,assigned,resolved'], + ['new' => 'new', 'assigned' => 'assigned', 'resolved' => 'resolved'], + ], + 'ValueSetEnum: Preserved order' => [ + ValueSetEnum::class, + ['new,assigned,resolved'], + ['new' => 'new', 'assigned' => 'assigned', 'resolved' => 'resolved'], + ], + 'ValueSetEnum: Reorder alphabetically' => [ + ValueSetEnum::class, + ['new,assigned,resolved', true], + ['assigned' => 'assigned', 'new' => 'new', 'resolved' => 'resolved'], + ], + ]; + } +} \ No newline at end of file diff --git a/tests/php-unit-tests/unitary-tests/setup/iTopDesignFormat/Convert-samples/3.1_to_3.0.expected.xml b/tests/php-unit-tests/unitary-tests/setup/iTopDesignFormat/Convert-samples/3.1_to_3.0.expected.xml index e89a5a501..c11c89290 100644 --- a/tests/php-unit-tests/unitary-tests/setup/iTopDesignFormat/Convert-samples/3.1_to_3.0.expected.xml +++ b/tests/php-unit-tests/unitary-tests/setup/iTopDesignFormat/Convert-samples/3.1_to_3.0.expected.xml @@ -61,6 +61,74 @@ + + + + + + new + + + assigned + + + resolved + + + enum_unsorted + new + false + + + + + new + + + assigned + + + resolved + + + enum_sorted_by_code_explicitly + new + false + + + + + new + + + assigned + + + resolved + + + enum_sorted_by_label + new + false + + + + + assigned + + + resolved + + + new + + + enum_sorted_by_rank_and_not_sorted_correctly_in_xml + new + false + + + diff --git a/tests/php-unit-tests/unitary-tests/setup/iTopDesignFormat/Convert-samples/3.1_to_3.0.input.xml b/tests/php-unit-tests/unitary-tests/setup/iTopDesignFormat/Convert-samples/3.1_to_3.0.input.xml index 6fdb02340..7212ef465 100644 --- a/tests/php-unit-tests/unitary-tests/setup/iTopDesignFormat/Convert-samples/3.1_to_3.0.input.xml +++ b/tests/php-unit-tests/unitary-tests/setup/iTopDesignFormat/Convert-samples/3.1_to_3.0.input.xml @@ -89,6 +89,80 @@ + + + + + + new + + + assigned + + + resolved + + + enum_unsorted + new + false + + + code + + + new + + + assigned + + + resolved + + + enum_sorted_by_code_explicitly + new + false + + + label + + + new + + + assigned + + + resolved + + + enum_sorted_by_label + new + false + + + rank + + + assigned + 2 + + + resolved + 3 + + + new + 1 + + + enum_sorted_by_rank_and_not_sorted_correctly_in_xml + new + false + + +