diff --git a/test/utils_test.rb b/test/utils_test.rb index 2f035bd7..bc2ea66e 100644 --- a/test/utils_test.rb +++ b/test/utils_test.rb @@ -5,10 +5,6 @@ class TestUtils < Faraday::TestCase @url = "http://example.com/abc" end - def teardown - Faraday::Utils.default_uri_parser = nil - end - # emulates ActiveSupport::SafeBuffer#gsub FakeSafeBuffer = Struct.new(:string) do def to_s() self end @@ -26,28 +22,37 @@ class TestUtils < Faraday::TestCase end def test_parses_with_default - assert_equal %(#), Faraday::Utils.default_uri_parser.to_s - uri = normalize(@url) - assert_equal 'example.com', uri.host + with_default_uri_parser(nil) do + uri = normalize(@url) + assert_equal 'example.com', uri.host + end end def test_parses_with_URI - Faraday::Utils.default_uri_parser = ::URI - assert_equal %(#), Faraday::Utils.default_uri_parser.to_s - uri = normalize(@url) - assert_equal 'example.com', uri.host + with_default_uri_parser(::URI) do + uri = normalize(@url) + assert_equal 'example.com', uri.host + end end def test_parses_with_block - Faraday::Utils.default_uri_parser = lambda do |uri| - "booya#{"!" * uri.size}" + with_default_uri_parser(lambda {|u| "booya#{"!" * u.size}" }) do + assert_equal 'booya!!!!!!!!!!!!!!!!!!!!!!', normalize(@url) end - - assert_equal 'booya!!!!!!!!!!!!!!!!!!!!!!', normalize(@url) end def normalize(url) Faraday::Utils::URI(url) end + + def with_default_uri_parser(parser) + old_parser = Faraday::Utils.default_uri_parser + begin + Faraday::Utils.default_uri_parser = parser + yield + ensure + Faraday::Utils.default_uri_parser = old_parser + end + end end