summaryrefslogtreecommitdiff
path: root/spec/rubyspec/library/uri/normalize_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rubyspec/library/uri/normalize_spec.rb')
-rw-r--r--spec/rubyspec/library/uri/normalize_spec.rb35
1 files changed, 35 insertions, 0 deletions
diff --git a/spec/rubyspec/library/uri/normalize_spec.rb b/spec/rubyspec/library/uri/normalize_spec.rb
new file mode 100644
index 0000000000..079a9ad61d
--- /dev/null
+++ b/spec/rubyspec/library/uri/normalize_spec.rb
@@ -0,0 +1,35 @@
+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