summaryrefslogtreecommitdiff
path: root/test/uri/test_common.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/uri/test_common.rb')
-rw-r--r--test/uri/test_common.rb49
1 files changed, 32 insertions, 17 deletions
diff --git a/test/uri/test_common.rb b/test/uri/test_common.rb
index bccdeafeaf..569264005a 100644
--- a/test/uri/test_common.rb
+++ b/test/uri/test_common.rb
@@ -10,30 +10,44 @@ class URI::TestCommon < Test::Unit::TestCase
def teardown
end
+ EnvUtil.suppress_warning do
+ class Foo
+ # Intentionally use `URI::REGEXP`, which is for the compatibility
+ include URI::REGEXP::PATTERN
+ end
+ end
+
def test_fallback_constants
- orig_verbose = $VERBOSE
- $VERBOSE = nil
- assert URI::ABS_URI
- assert_raise(NameError) { URI::FOO }
- ensure
- $VERBOSE = orig_verbose
+ EnvUtil.suppress_warning do
+ assert_raise(NameError) { URI::FOO }
+
+ assert_equal URI::ABS_URI, URI::RFC2396_PARSER.regexp[:ABS_URI]
+ assert_equal URI::PATTERN, URI::RFC2396_Parser::PATTERN
+ assert_equal URI::REGEXP, URI::RFC2396_REGEXP
+ assert_equal URI::REGEXP::PATTERN, URI::RFC2396_REGEXP::PATTERN
+ assert_equal Foo::IPV4ADDR, URI::RFC2396_REGEXP::PATTERN::IPV4ADDR
+ end
end
def test_parser_switch
assert_equal(URI::Parser, URI::RFC3986_Parser)
+ assert_equal(URI::PARSER, URI::RFC3986_PARSER)
refute defined?(URI::REGEXP)
refute defined?(URI::PATTERN)
URI.parser = URI::RFC2396_PARSER
assert_equal(URI::Parser, URI::RFC2396_Parser)
+ assert_equal(URI::PARSER, URI::RFC2396_PARSER)
assert defined?(URI::REGEXP)
assert defined?(URI::PATTERN)
assert defined?(URI::PATTERN::ESCAPED)
+ assert defined?(URI::REGEXP::PATTERN::IPV6ADDR)
URI.parser = URI::RFC3986_PARSER
assert_equal(URI::Parser, URI::RFC3986_Parser)
+ assert_equal(URI::PARSER, URI::RFC3986_PARSER)
refute defined?(URI::REGEXP)
refute defined?(URI::PATTERN)
ensure
@@ -64,7 +78,7 @@ class URI::TestCommon < Test::Unit::TestCase
return unless defined?(Ractor)
assert_ractor(<<~RUBY, require: 'uri')
r = Ractor.new { URI.parse("https://ruby-lang.org/").inspect }
- assert_equal(URI.parse("https://ruby-lang.org/").inspect, r.take)
+ assert_equal(URI.parse("https://ruby-lang.org/").inspect, r.value)
RUBY
end
@@ -102,17 +116,18 @@ class URI::TestCommon < Test::Unit::TestCase
def test_register_scheme_with_symbols
# Valid schemes from https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml
- some_uri_class = Class.new(URI::Generic)
- assert_raise(NameError) { URI.register_scheme 'ms-search', some_uri_class }
- assert_raise(NameError) { URI.register_scheme 'microsoft.windows.camera', some_uri_class }
- assert_raise(NameError) { URI.register_scheme 'coaps+ws', some_uri_class }
+ list = []
+ %w[ms-search microsoft.windows.camera coaps+ws].each {|name|
+ list << [name, URI.register_scheme(name, Class.new(URI::Generic))]
+ }
- ms_search_class = Class.new(URI::Generic)
- URI.register_scheme 'MS_SEARCH', ms_search_class
- begin
- assert_equal URI::Generic, URI.parse('ms-search://localhost').class
- ensure
- URI.const_get(:Schemes).send(:remove_const, :MS_SEARCH)
+ list.each do |scheme, uri_class|
+ assert_equal uri_class, URI.parse("#{scheme}://localhost").class
+ end
+ ensure
+ schemes = URI.const_get(:Schemes)
+ list.each do |scheme, |
+ schemes.send(:remove_const, schemes.escape(scheme))
end
end