From da20c60226e9bb3d7e77b317267bce3fdf886f60 Mon Sep 17 00:00:00 2001 From: Thierry Bugier Date: Tue, 3 Apr 2018 22:53:31 +0200 Subject: [PATCH] fix(fleet): allow recursion change for non default fleets Signed-off-by: Thierry Bugier --- inc/fleet.class.php | 4 +++- tests/suite-unit/PluginFlyvemdmFleet.php | 27 ++++++++++++++++++------ 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/inc/fleet.class.php b/inc/fleet.class.php index bfc1f06a..9d2c75b1 100644 --- a/inc/fleet.class.php +++ b/inc/fleet.class.php @@ -155,7 +155,9 @@ public function prepareInputForAdd($input) { */ public function prepareInputForUpdate($input) { unset($input['is_default']); - if (isset($input['is_recursive']) && $this->fields['is_recursive'] != $input['is_recursive']) { + if ($this->fields['is_default'] == '1' + && isset($input['is_recursive']) + && $this->fields['is_recursive'] != $input['is_recursive']) { // Do not change recursivity of default fleet unset($input['is_recursive']); } diff --git a/tests/suite-unit/PluginFlyvemdmFleet.php b/tests/suite-unit/PluginFlyvemdmFleet.php index b673df0c..4cd2320b 100644 --- a/tests/suite-unit/PluginFlyvemdmFleet.php +++ b/tests/suite-unit/PluginFlyvemdmFleet.php @@ -150,13 +150,25 @@ public function testPrepareInputForAdd($input, $expected) { protected function inputUpdateProvider() { return [ - 'default values' => [ - ['is_default' => 0, 'entities_id' => 0], - ['entities_id' => 0], + [ + 'initial' => ['is_default' => 0], + 'input' => ['is_default' => 0, 'entities_id' => 0], + 'expected' => ['entities_id' => 0], ], - 'changed values' => [ - ['is_default' => 1, 'entities_id' => 0], - ['entities_id' => 0], + [ + 'initial' => ['is_default' => 0], + 'input' => ['is_default' => 1, 'entities_id' => 0], + 'expected' => ['entities_id' => 0], + ], + [ + 'initial' => ['is_default' => 0, 'is_recursive' => 0], + 'input' => ['is_default' => 1, 'entities_id' => 0, 'is_recursive' => 1], + 'expected' => ['entities_id' => 0, 'is_recursive' => 1], + ], + [ + 'initial' => ['is_default' => 1, 'is_recursive' => 0], + 'input' => ['is_default' => 1, 'entities_id' => 0, 'is_recursive' => 1], + 'expected' => ['entities_id' => 0], ], ]; } @@ -165,8 +177,9 @@ protected function inputUpdateProvider() { * @dataProvider inputUpdateProvider * @tags testPrepareInputForUpdate */ - public function testPrepareInputForUpdate($input, $expected) { + public function testPrepareInputForUpdate($initial, $input, $expected) { $instance = $this->createInstance(); + $instance->fields = $initial; $keys = array_keys($expected); $result = $instance->prepareInputForUpdate($input); $this->array($result)->hasKeys($keys);