ruby/spec/rubyspec/library/uri/normalize_spec.rb
eregon 95e8c48dd3 Add in-tree mspec and ruby/spec
* For easier modifications of ruby/spec by MRI developers.
* .gitignore: track changes under spec.
* spec/mspec, spec/rubyspec: add in-tree mspec and ruby/spec.
  These files can therefore be updated like any other file in MRI.
  Instructions are provided in spec/README.
  [Feature #13156] [ruby-core:79246]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58595 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-05-07 12:04:49 +00:00

35 lines
1.1 KiB
Ruby

require File.expand_path('../../../spec_helper', __FILE__)
require File.expand_path('../fixtures/normalization', __FILE__)
require 'uri'
describe "URI#normalize" do
it "adds a / onto the end of the URI if the path is blank" do
no_path = URI("http://example.com")
no_path.to_s.should_not == "http://example.com/"
no_path.normalize.to_s.should == "http://example.com/"
end
it "downcases the host of the URI" do
uri = URI("http://exAMPLE.cOm/")
uri.to_s.should_not == "http://example.com/"
uri.normalize.to_s.should == "http://example.com/"
end
# The previous tests are included by the one below
quarantine! do # Quarantined until redmine:2542 is accepted
it "respects RFC 3986" do
URISpec::NORMALIZED_FORMS.each do |form|
normal_uri = URI(form[:normalized])
normalized = normal_uri.normalize.to_s
normal_uri.to_s.should == normalized
form[:equivalent].each do |same|
URI(same).normalize.to_s.should == normalized
end
form[:different].each do |other|
URI(other).normalize.to_s.should_not == normalized
end
end
end
end
end