From 968a749a6981074ba2159df70adde92b2e681263 Mon Sep 17 00:00:00 2001 From: Tom Clegg Date: Sun, 23 Mar 2014 22:33:40 -0400 Subject: [PATCH] Accept ...&filters=&... in query string as "none" instead of "unparseable JSON". --- .../api/app/controllers/application_controller.rb | 2 +- .../api/test/integration/collections_api_test.rb | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/services/api/app/controllers/application_controller.rb b/services/api/app/controllers/application_controller.rb index 3101781c23..fa189aa80d 100644 --- a/services/api/app/controllers/application_controller.rb +++ b/services/api/app/controllers/application_controller.rb @@ -126,7 +126,7 @@ class ApplicationController < ActionController::Base def load_filters_param if params[:filters].is_a? Array @filters = params[:filters] - elsif params[:filters].is_a? String + elsif params[:filters].is_a? String and !params[:filters].empty? begin @filters = Oj.load params[:filters] raise unless @filters.is_a? Array diff --git a/services/api/test/integration/collections_api_test.rb b/services/api/test/integration/collections_api_test.rb index 1ceedd7dd2..5a3250ea0d 100644 --- a/services/api/test/integration/collections_api_test.rb +++ b/services/api/test/integration/collections_api_test.rb @@ -9,6 +9,18 @@ class CollectionsApiTest < ActionDispatch::IntegrationTest assert_equal "arvados#collectionList", jresponse['kind'] end + test "get index with filters= (empty string)" do + get "/arvados/v1/collections", {:format => :json, :filters => ''}, {'HTTP_AUTHORIZATION' => "OAuth2 #{api_client_authorizations(:active).api_token}"} + assert_response :success + assert_equal "arvados#collectionList", jresponse['kind'] + end + + test "get index with where= (empty string)" do + get "/arvados/v1/collections", {:format => :json, :where => ''}, {'HTTP_AUTHORIZATION' => "OAuth2 #{api_client_authorizations(:active).api_token}"} + assert_response :success + assert_equal "arvados#collectionList", jresponse['kind'] + end + test "controller 404 response is json" do get "/arvados/v1/thingsthatdonotexist", {:format => :xml}, {'HTTP_AUTHORIZATION' => "OAuth2 #{api_client_authorizations(:active).api_token}"} assert_response 404 -- 2.30.2