mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Docs and tests on URI.hierarchical?, URI.absolute?
Improve code coverage and clarify meaning of hierarchical based on RFC text. [Fix GH-1846] From: Xavier Riley <xavriley@hotmail.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62882 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
7506fde3e9
commit
b6e2c52857
2 changed files with 39 additions and 3 deletions
|
@ -946,7 +946,25 @@ module URI
|
|||
end
|
||||
|
||||
#
|
||||
# Checks if URI has a path
|
||||
# Returns true if URI is hierarchical
|
||||
#
|
||||
# == Description
|
||||
#
|
||||
# URI has components listed in order of decreashing signficance from left to right
|
||||
# see RFC3986 https://tools.ietf.org/html/rfc3986 1.2.3
|
||||
#
|
||||
# == Usage
|
||||
#
|
||||
# require 'uri'
|
||||
#
|
||||
# uri = URI.parse("http://my.example.com/")
|
||||
# => #<URI::HTTP http://my.example.com/>
|
||||
# uri.hierarchical?
|
||||
# # => true
|
||||
# uri = URI.parse("mailto:joe@example.com")
|
||||
# => #<URI::MailTo mailto:joe@example.com>
|
||||
# uri.hierarchical?
|
||||
# # => false
|
||||
#
|
||||
def hierarchical?
|
||||
if @path
|
||||
|
@ -957,7 +975,7 @@ module URI
|
|||
end
|
||||
|
||||
#
|
||||
# Checks if URI is an absolute one
|
||||
# Returns true if URI has a scheme (e.g. http:// or https://) specified
|
||||
#
|
||||
def absolute?
|
||||
if @scheme
|
||||
|
@ -969,7 +987,7 @@ module URI
|
|||
alias absolute absolute?
|
||||
|
||||
#
|
||||
# Checks if URI is relative
|
||||
# Returns true if URI does not have a scheme (e.g. http:// or https://) specified
|
||||
#
|
||||
def relative?
|
||||
!absolute?
|
||||
|
|
|
@ -774,6 +774,24 @@ class URI::TestGeneric < Test::Unit::TestCase
|
|||
assert_equal 'http://example', uri.to_s
|
||||
end
|
||||
|
||||
def test_hierarchical
|
||||
hierarchical = URI.parse('http://a.b.c/example')
|
||||
opaque = URI.parse('mailto:mduerst@ifi.unizh.ch')
|
||||
|
||||
assert hierarchical.hierarchical?
|
||||
refute opaque.hierarchical?
|
||||
end
|
||||
|
||||
def test_absolute
|
||||
abs_uri = URI.parse('http://a.b.c/')
|
||||
not_abs = URI.parse('a.b.c')
|
||||
|
||||
refute not_abs.absolute?
|
||||
|
||||
assert abs_uri.absolute
|
||||
assert abs_uri.absolute?
|
||||
end
|
||||
|
||||
def test_ipv6
|
||||
assert_equal("[::1]", URI("http://[::1]/bar/baz").host)
|
||||
assert_equal("::1", URI("http://[::1]/bar/baz").hostname)
|
||||
|
|
Loading…
Reference in a new issue