mirror of
https://github.com/lostisland/faraday.git
synced 2025-10-08 00:03:41 -04:00
parent
c328e5285a
commit
cad28c0ef3
@ -81,24 +81,3 @@ module Faraday
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# The essential part of ActiveSupport::SafeBuffer to demonstrate
|
|
||||||
# how it blows up when passed to Faraday::Utils.escape
|
|
||||||
# rails/rails@ed738f7
|
|
||||||
class FakeSafeBuffer < String
|
|
||||||
UNSAFE_STRING_METHODS = %w(gsub)
|
|
||||||
|
|
||||||
def to_s
|
|
||||||
self
|
|
||||||
end
|
|
||||||
|
|
||||||
UNSAFE_STRING_METHODS.each do |unsafe_method|
|
|
||||||
if 'String'.respond_to?(unsafe_method)
|
|
||||||
class_eval <<-EOT, __FILE__, __LINE__ + 1
|
|
||||||
def #{unsafe_method}(*args, &block) # def capitalize(*args, &block)
|
|
||||||
to_str.#{unsafe_method}(*args, &block) # to_str.capitalize(*args, &block)
|
|
||||||
end # end
|
|
||||||
EOT
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
@ -9,6 +9,17 @@ class TestUtils < Faraday::TestCase
|
|||||||
Faraday::Utils.default_uri_parser = nil
|
Faraday::Utils.default_uri_parser = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# emulates ActiveSupport::SafeBuffer#gsub
|
||||||
|
FakeSafeBuffer = Struct.new(:string) do
|
||||||
|
def to_s() self end
|
||||||
|
def gsub(regex)
|
||||||
|
string.gsub(regex) {
|
||||||
|
match, = $&, '' =~ /a/
|
||||||
|
yield match
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_escaping_safe_buffer
|
def test_escaping_safe_buffer
|
||||||
str = FakeSafeBuffer.new('$32,000.00')
|
str = FakeSafeBuffer.new('$32,000.00')
|
||||||
assert_equal '%2432%2C000.00', Faraday::Utils.escape(str)
|
assert_equal '%2432%2C000.00', Faraday::Utils.escape(str)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user