From 5381c7b944be55a062aeecf7fe0aee298ed5f598 Mon Sep 17 00:00:00 2001 From: nir-sopher Date: Sun, 23 Jul 2017 10:47:54 +0300 Subject: [PATCH] Parameter value can be changed to 0 --- traffic_ops/app/lib/API/Parameter.pm | 2 +- traffic_ops/app/t/api/1.2/parameter.t | 42 +++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/traffic_ops/app/lib/API/Parameter.pm b/traffic_ops/app/lib/API/Parameter.pm index dd0217310d..9766189904 100644 --- a/traffic_ops/app/lib/API/Parameter.pm +++ b/traffic_ops/app/lib/API/Parameter.pm @@ -317,7 +317,7 @@ sub update { my $name = $params->{name} || $find->name; my $configFile = $params->{configFile} || $find->config_file; - my $value = $params->{value} || $find->value; + my $value = exists($params->{value}) ? $params->{value} : $find->value; my $secure = $find->secure; if ( defined($params->{secure}) ) { $secure = $params->{secure}; diff --git a/traffic_ops/app/t/api/1.2/parameter.t b/traffic_ops/app/t/api/1.2/parameter.t index 0458f4cb69..8d6ddd18d8 100644 --- a/traffic_ops/app/t/api/1.2/parameter.t +++ b/traffic_ops/app/t/api/1.2/parameter.t @@ -249,6 +249,48 @@ ok $t->post_ok('/api/1.2/parameters/validate' => {Accept => 'application/json'} ->or( sub { diag $t->tx->res->content->asset->{content}; } ) , 'Does the paramters validate return?'; + +#checking if a parameter vaule can be changed to "0" +ok $t->post_ok('/api/1.2/parameters' => {Accept => 'application/json'} => json => [ + { + 'name' => 'default1', + 'configFile' => 'configFile3', + 'value' => '1', + 'secure' => '0' + }] + )->status_is(200) + , 'Adding the parameter with default 1'; + +$para_id = &get_param_id('default1'); +ok $t->get_ok('/api/1.2/parameters/'. $para_id)->status_is(200) + ->or( sub { diag $t->tx->res->content->asset->{content}; } ) + ->json_is( "/response/0/name" => "default1" ) + ->json_is( "/response/0/value" => "1" ) + ->json_is( "/response/0/configFile" => "configFile3" ) + , 'Does the paramter get return?'; + +ok $t->put_ok('/api/1.2/parameters/' . $para_id => {Accept => 'application/json'} => json => { + 'value' => '0', + })->status_is(200) + ->or( sub { diag $t->tx->res->content->asset->{content}; } ) + ->json_is( "/response/name" => "default1" ) + ->json_is( "/response/configFile" => "configFile3" ) + ->json_is( "/response/value" => "0" ) + , 'Was the paramters modification return?'; + +ok $t->get_ok('/api/1.2/parameters/'. $para_id)->status_is(200) + ->or( sub { diag $t->tx->res->content->asset->{content}; } ) + ->json_is( "/response/0/name" => "default1" ) + ->json_is( "/response/0/value" => "0" ) + ->json_is( "/response/0/configFile" => "configFile3" ) + , 'Was the parameter really changed?'; + +ok $t->delete_ok('/api/1.2/parameters/' . $para_id )->status_is(200) + , 'Does the paramter deleted?'; + + + + ok $t->get_ok('/logout')->status_is(302)->or( sub { diag $t->tx->res->content->asset->{content}; } ); ok $t->post_ok( '/login', => form => { u =>Test::TestHelper::FEDERATION_USER , p => Test::TestHelper::FEDERATION_USER_PASSWORD } )->status_is(302)