diff options
author | Robin Houston <robin.houston@gmail.com> | 2012-01-17 13:09:00 +0000 |
---|---|---|
committer | Robin Houston <robin.houston@gmail.com> | 2012-01-17 13:09:00 +0000 |
commit | 80e56fde3b4bdb9d2483a7c858960a6d2bd964e0 (patch) | |
tree | 09742b72b053f6623954baefd13a0a9e32bfeb5f /vendor/gems/fakeweb-1.3.0/test/test_utility.rb | |
parent | bae21e38242aac2c5843bae5ea5fe3b09408a4f9 (diff) | |
parent | ba7310b580b2b03068568497c02eae7cbcd2d901 (diff) |
Merge branch 'release/0.5' into wdtk
Diffstat (limited to 'vendor/gems/fakeweb-1.3.0/test/test_utility.rb')
-rw-r--r-- | vendor/gems/fakeweb-1.3.0/test/test_utility.rb | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/vendor/gems/fakeweb-1.3.0/test/test_utility.rb b/vendor/gems/fakeweb-1.3.0/test/test_utility.rb new file mode 100644 index 000000000..891de875b --- /dev/null +++ b/vendor/gems/fakeweb-1.3.0/test/test_utility.rb @@ -0,0 +1,83 @@ +require 'test_helper' + +class TestUtility < Test::Unit::TestCase + + def test_decode_userinfo_from_header_handles_basic_auth + authorization_header = "Basic dXNlcm5hbWU6c2VjcmV0" + userinfo = FakeWeb::Utility.decode_userinfo_from_header(authorization_header) + assert_equal "username:secret", userinfo + end + + def test_encode_unsafe_chars_in_userinfo_does_not_encode_userinfo_safe_punctuation + userinfo = "user;&=+$,:secret" + assert_equal userinfo, FakeWeb::Utility.encode_unsafe_chars_in_userinfo(userinfo) + end + + def test_encode_unsafe_chars_in_userinfo_does_not_encode_rfc_3986_unreserved_characters + userinfo = "-_.!~*'()abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:secret" + assert_equal userinfo, FakeWeb::Utility.encode_unsafe_chars_in_userinfo(userinfo) + end + + def test_encode_unsafe_chars_in_userinfo_does_encode_other_characters + userinfo, safe_userinfo = 'us#rn@me:sec//ret?"', 'us%23rn%40me:sec%2F%2Fret%3F%22' + assert_equal safe_userinfo, FakeWeb::Utility.encode_unsafe_chars_in_userinfo(userinfo) + end + + def test_strip_default_port_from_uri_strips_80_from_http_with_path + uri = "http://example.com:80/foo/bar" + stripped_uri = FakeWeb::Utility.strip_default_port_from_uri(uri) + assert_equal "http://example.com/foo/bar", stripped_uri + end + + def test_strip_default_port_from_uri_strips_80_from_http_without_path + uri = "http://example.com:80" + stripped_uri = FakeWeb::Utility.strip_default_port_from_uri(uri) + assert_equal "http://example.com", stripped_uri + end + + def test_strip_default_port_from_uri_strips_443_from_https_without_path + uri = "https://example.com:443" + stripped_uri = FakeWeb::Utility.strip_default_port_from_uri(uri) + assert_equal "https://example.com", stripped_uri + end + + def test_strip_default_port_from_uri_strips_443_from_https + uri = "https://example.com:443/foo/bar" + stripped_uri = FakeWeb::Utility.strip_default_port_from_uri(uri) + assert_equal "https://example.com/foo/bar", stripped_uri + end + + def test_strip_default_port_from_uri_does_not_strip_8080_from_http + uri = "http://example.com:8080/foo/bar" + assert_equal uri, FakeWeb::Utility.strip_default_port_from_uri(uri) + end + + def test_strip_default_port_from_uri_does_not_strip_443_from_http + uri = "http://example.com:443/foo/bar" + assert_equal uri, FakeWeb::Utility.strip_default_port_from_uri(uri) + end + + def test_strip_default_port_from_uri_does_not_strip_80_from_query_string + uri = "http://example.com/?a=:80&b=c" + assert_equal uri, FakeWeb::Utility.strip_default_port_from_uri(uri) + end + + def test_strip_default_port_from_uri_does_not_modify_strings_that_do_not_start_with_http_or_https + uri = "httpz://example.com:80/" + assert_equal uri, FakeWeb::Utility.strip_default_port_from_uri(uri) + end + + def test_request_uri_as_string + http = Net::HTTP.new("www.example.com", 80) + request = Net::HTTP::Get.new("/index.html") + expected = "http://www.example.com:80/index.html" + assert_equal expected, FakeWeb::Utility.request_uri_as_string(http, request) + end + + def test_uri_escape_delegates_to_uri_parser_when_available + parsing_object = URI.const_defined?(:Parser) ? URI::Parser.any_instance : URI + parsing_object.expects(:escape).with("string", /unsafe/).returns("escaped") + assert_equal "escaped", FakeWeb::Utility.uri_escape("string", /unsafe/) + end + +end |