Sha256: ae14335561b91b1b172bd0ef699baa2749165480bd84317e54578d332570bd68

Contents?: true

Size: 1.14 KB

Versions: 1

Compression:

Stored size: 1.14 KB

Contents

require 'helper'
require 'dr/base/uri'

describe DR::URIWrapper do
	before do
		@uri=DR::URIWrapper.new(DR::URIEscape.escape("http://ploum:secret@plam:443/foo bar"))
	end
	it "Wraps an uri element" do
		_(@uri.scheme).must_equal "http"
	end
	it "Auto escapes attribute" do
		_(@uri.path).must_equal "/foo bar"
	end
	it "Auto escape setting elements" do
		@uri.user="ploum plam"
		_(@uri.user).must_equal "ploum plam"
	end
	it "Can convert to a hash" do
		_(@uri.to_h[:user]).must_equal("ploum")
	end
	it "Can convert to json" do
		require 'json'
		_(@uri.to_json).must_equal("{\"uri\":\"http://ploum:secret@plam:443/foo%20bar\",\"scheme\":\"http\",\"userinfo\":\"ploum:secret\",\"host\":\"plam\",\"port\":443,\"path\":\"/foo bar\",\"user\":\"ploum\",\"password\":\"secret\"}")
	end
	it "Can remove password" do
		_(@uri.to_public).must_equal("http://ploum@plam:443/foo%20bar")
	end
	it "Can be merged" do
		_(@uri.soft_merge("foo://plim@").to_s).must_equal("foo://plim:secret@plam:443/foo%20bar")
	end
	it "Can be reverse merged" do
		_(DR::URIWrapper.parse("//user@server").reverse_merge(@uri).to_s).must_equal("http://user:secret@server:443/foo%20bar")
	end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
drain-0.6.0 test/test_uri.rb