diff --git a/lib/garb/filter_parameters.rb b/lib/garb/filter_parameters.rb index 050c807fb..0e989ec8c 100644 --- a/lib/garb/filter_parameters.rb +++ b/lib/garb/filter_parameters.rb @@ -37,7 +37,7 @@ def hash_to_params(hsh) hsh.map do |k, v| next unless k.is_a?(SymbolOperatorMethods) - escaped_v = v.to_s.gsub(/([,;\\])/) { |c| '\\' + c } + escaped_v = v.to_s.gsub(/([,;])/) { |c| '\\' + c } "#{URI.encode(k.to_google_analytics, /[=<>]/)}#{CGI::escape(escaped_v)}" end.join('%3B') # Hash AND (no duplicate keys), escape char for ';' fixes oauth end diff --git a/test/unit/garb/filter_parameters_test.rb b/test/unit/garb/filter_parameters_test.rb index cc66f2228..fdf89e0af 100644 --- a/test/unit/garb/filter_parameters_test.rb +++ b/test/unit/garb/filter_parameters_test.rb @@ -35,10 +35,10 @@ class FilterParametersTest < MiniTest::Unit::TestCase assert_equal params, filters.to_params end - should "escape comma, semicolon, and backslash in values" do + should "escape comma, semicolon in values" do filters = FilterParameters.new({:url.eql => 'this;that,thing\other'}) - params = {'filters' => 'ga:url%3D%3Dthis%5C%3Bthat%5C%2Cthing%5C%5Cother'} + params = {'filters' => 'ga:url%3D%3Dthis%5C%3Bthat%5C%2Cthing%5Cother'} assert_equal params, filters.to_params end