diff options
Diffstat (limited to 'vendor/gems/fakeweb-1.3.0/test/test_precedence.rb')
-rw-r--r-- | vendor/gems/fakeweb-1.3.0/test/test_precedence.rb | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/vendor/gems/fakeweb-1.3.0/test/test_precedence.rb b/vendor/gems/fakeweb-1.3.0/test/test_precedence.rb new file mode 100644 index 000000000..388b9f8a1 --- /dev/null +++ b/vendor/gems/fakeweb-1.3.0/test/test_precedence.rb @@ -0,0 +1,79 @@ +require 'test_helper' + +class TestPrecedence < Test::Unit::TestCase + + def test_matching_get_strings_have_precedence_over_matching_get_regexes + FakeWeb.register_uri(:get, "http://example.com/test", :body => "string") + FakeWeb.register_uri(:get, %r|http://example\.com/test|, :body => "regex") + response = Net::HTTP.start("example.com") { |query| query.get('/test') } + assert_equal "string", response.body + end + + def test_matching_any_strings_have_precedence_over_matching_any_regexes + FakeWeb.register_uri(:any, "http://example.com/test", :body => "string") + FakeWeb.register_uri(:any, %r|http://example\.com/test|, :body => "regex") + response = Net::HTTP.start("example.com") { |query| query.get('/test') } + assert_equal "string", response.body + end + + def test_matching_get_strings_have_precedence_over_matching_any_strings + FakeWeb.register_uri(:get, "http://example.com/test", :body => "get method") + FakeWeb.register_uri(:any, "http://example.com/test", :body => "any method") + response = Net::HTTP.start("example.com") { |query| query.get('/test') } + assert_equal "get method", response.body + + # registration order should not matter + FakeWeb.register_uri(:any, "http://example.com/test2", :body => "any method") + FakeWeb.register_uri(:get, "http://example.com/test2", :body => "get method") + response = Net::HTTP.start("example.com") { |query| query.get('/test2') } + assert_equal "get method", response.body + end + + def test_matching_any_strings_have_precedence_over_matching_get_regexes + FakeWeb.register_uri(:any, "http://example.com/test", :body => "any string") + FakeWeb.register_uri(:get, %r|http://example\.com/test|, :body => "get regex") + response = Net::HTTP.start("example.com") { |query| query.get('/test') } + assert_equal "any string", response.body + end + + def test_registered_strings_and_uris_are_equivalent_so_second_takes_precedence + FakeWeb.register_uri(:get, "http://example.com/test", :body => "string") + FakeWeb.register_uri(:get, URI.parse("http://example.com/test"), :body => "uri") + response = Net::HTTP.start("example.com") { |query| query.get('/test') } + assert_equal "uri", response.body + + FakeWeb.register_uri(:get, URI.parse("http://example.com/test2"), :body => "uri") + FakeWeb.register_uri(:get, "http://example.com/test2", :body => "string") + response = Net::HTTP.start("example.com") { |query| query.get('/test2') } + assert_equal "string", response.body + end + + def test_identical_registration_replaces_previous_registration + FakeWeb.register_uri(:get, "http://example.com/test", :body => "first") + FakeWeb.register_uri(:get, "http://example.com/test", :body => "second") + response = Net::HTTP.start("example.com") { |query| query.get('/test') } + assert_equal "second", response.body + end + + def test_identical_registration_replaces_previous_registration_accounting_for_normalization + FakeWeb.register_uri(:get, "http://example.com/test?", :body => "first") + FakeWeb.register_uri(:get, "http://example.com:80/test", :body => "second") + response = Net::HTTP.start("example.com") { |query| query.get('/test') } + assert_equal "second", response.body + end + + def test_identical_registration_replaces_previous_registration_accounting_for_query_params + FakeWeb.register_uri(:get, "http://example.com/test?a=1&b=2", :body => "first") + FakeWeb.register_uri(:get, "http://example.com/test?b=2&a=1", :body => "second") + response = Net::HTTP.start("example.com") { |query| query.get('/test?a=1&b=2') } + assert_equal "second", response.body + end + + def test_identical_registration_replaces_previous_registration_with_regexes + FakeWeb.register_uri(:get, /test/, :body => "first") + FakeWeb.register_uri(:get, /test/, :body => "second") + response = Net::HTTP.start("example.com") { |query| query.get('/test') } + assert_equal "second", response.body + end + +end |