diff options
author | Jeremy Evans <code@jeremyevans.net> | 2022-05-09 11:03:14 -0700 |
---|---|---|
committer | Jeremy Evans <code@jeremyevans.net> | 2022-05-25 08:33:11 -0700 |
commit | 0a5c10d4ce604d46c093719f5d15241090adc839 (patch) | |
tree | dcdc2af03821f6987957e389942b16fa7574d4c7 | |
parent | f587034d9d2c9a8964cf6a30b32ef264b3375c6b (diff) | |
download | rack-0a5c10d4ce604d46c093719f5d15241090adc839.tar.gz |
Add 100% line/branch coverage to rack/query_parser.rb
Remove dead code in _normalize_params. There are two different types of dead code. First, directly before this dead code, you have `v ||= String.new`, so `!v.nil?` is always true and could be removed. The remaining conditions for the dead branch are `k.empty?` and `name = '[]'`. Looking at the conditional above, it's never possible for these two conditions to be simultaneously true: ```ruby if !name # name != '[]' elsif depth == 0 if start = name.index('[', 1) k = name[0, start] # !k.empty? else k = name # !k.empty? || name != '[]' end elsif name.start_with?('[]') k = '[]' # !k.empty? else # all remaining branches # name != '[]', otherwise previous branch taken end ``` Coverage after this commit: 3283 relevant lines, 3282 lines covered and 1 lines missed. ( 99.97% ) 1112 total branches, 1068 branches covered and 44 branches missed. ( 96.04% )
-rw-r--r-- | lib/rack/query_parser.rb | 10 | ||||
-rw-r--r-- | test/spec_utils.rb | 8 |
2 files changed, 10 insertions, 8 deletions
diff --git a/lib/rack/query_parser.rb b/lib/rack/query_parser.rb index ef065b3f..3077fb1f 100644 --- a/lib/rack/query_parser.rb +++ b/lib/rack/query_parser.rb @@ -126,15 +126,9 @@ module Rack after = '' end - v ||= String.new + return if k.empty? - if k.empty? - if !v.nil? && name == "[]" - return Array(v) - else - return - end - end + v ||= String.new if after == '' if k == '[]' && depth != 0 diff --git a/test/spec_utils.rb b/test/spec_utils.rb index 90df2e27..6b75e2ef 100644 --- a/test/spec_utils.rb +++ b/test/spec_utils.rb @@ -131,6 +131,14 @@ describe Rack::Utils do Rack::Utils.parse_nested_query(nil).must_equal({}) end + deprecated "should warn for deprecated QueryParser.make_default call with key_space_limit" do + Rack::QueryParser.make_default(1, 1).must_be_kind_of Rack::QueryParser + end + + deprecated "should warn using deprecated QueryParser.new call with key_space_limit" do + Rack::QueryParser.new(Rack::QueryParser::Params, 1, 1).must_be_kind_of Rack::QueryParser + end + deprecated "should warn using deprecated Rack::Util.key_space_limit=" do Rack::Utils.key_space_limit = 65536 end |