From 255aa55dcfac5e48f0115edf1e5a20a45407a6cb Mon Sep 17 00:00:00 2001 From: Declan McGrath Date: Tue, 23 Feb 2016 15:17:42 +0000 Subject: [PATCH] Added test and potential fix for #628. --- lib/jsonapi/resource.rb | 7 ++++++- test/integration/requests/request_test.rb | 9 +++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/jsonapi/resource.rb b/lib/jsonapi/resource.rb index 2ea5bae0a..9d228dc39 100644 --- a/lib/jsonapi/resource.rb +++ b/lib/jsonapi/resource.rb @@ -638,7 +638,12 @@ def is_filter_relationship?(filter) def verify_filter(filter, raw, context = nil) filter_values = [] - filter_values += CSV.parse_line(raw) unless raw.nil? || raw.empty? + + begin + filter_values += CSV.parse_line(raw) unless raw.nil? || raw.empty? + rescue CSV::MalformedCSVError => ex + filter_values << raw + end strategy = _allowed_filters.fetch(filter, Hash.new)[:verify] diff --git a/test/integration/requests/request_test.rb b/test/integration/requests/request_test.rb index 2e603ed7d..c8df8dff7 100644 --- a/test/integration/requests/request_test.rb +++ b/test/integration/requests/request_test.rb @@ -52,6 +52,15 @@ def test_get_underscored_key JSONAPI.configuration = original_config end + def test_filter_with_value_containing_double_quote + original_config = JSONAPI.configuration.dup + JSONAPI.configuration.json_key_format = :underscored_key + get '/iso_currencies?filter[country_name]="' + assert_jsonapi_response 200 + ensure + JSONAPI.configuration = original_config + end + def test_get_underscored_key_filtered original_config = JSONAPI.configuration.dup JSONAPI.configuration.json_key_format = :underscored_key