1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
require File.join(File.expand_path(__FILE__).sub(/\/ftw\/.*/, "/testing"))
require "ftw/http/headers"
describe FTW::HTTP::Headers do
before do
@headers = FTW::HTTP::Headers.new
end
test "add adds" do
@headers.add("foo", "bar")
@headers.add("baz", "fizz")
assert_equal("fizz", @headers.get("baz"))
assert_equal("bar", @headers.get("foo"))
end
test "add dup field name makes an array" do
@headers.add("foo", "bar")
@headers.add("foo", "fizz")
assert_equal(["bar", "fizz"], @headers.get("foo"))
end
test "set replaces" do
@headers.add("foo", "bar")
@headers.set("foo", "hello")
assert_equal("hello", @headers.get("foo"))
end
test "remove field" do
@headers.add("foo", "one")
@headers.add("bar", "two")
assert_equal("one", @headers.get("foo"))
assert_equal("two", @headers.get("bar"))
@headers.remove("bar")
assert_equal("one", @headers.get("foo"))
# bar was removed, must not be present
assert(!@headers.include?("bar"))
end
test "remove field value" do
@headers.add("foo", "one")
@headers.add("foo", "two")
assert_equal(["one", "two"], @headers.get("foo"))
@headers.remove("foo", "three") # nothing to remove
assert_equal(["one", "two"], @headers.get("foo"))
@headers.remove("foo", "two")
assert_equal("one", @headers.get("foo"))
end
test "duplicate headers return multiple key value pairs" do
@headers.add("foo", "bar")
@headers.add("foo", "fizz")
@headers.each do |key, value|
assert_equal("foo", key)
assert( value == "bar" || value == "fizz")
end
end
end # describe FTW::HTTP::Headers
|