forked from postrank-labs/goliath
-
Notifications
You must be signed in to change notification settings - Fork 0
/
headers_spec.rb
53 lines (44 loc) · 1.26 KB
/
headers_spec.rb
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
require 'spec_helper'
require 'goliath/headers'
describe Goliath::Headers do
before(:each) do
@h = Goliath::Headers.new
end
it 'outputs in the correct format' do
@h['my_header'] = 'my_value'
@h.to_s.should == "my_header: my_value\r\n"
end
it 'suppresses duplicate keys' do
@h['my_header'] = 'my_value1'
@h['my_header'] = 'my_value2'
@h.to_s.should == "my_header: my_value1\r\n"
end
it 'returns true if a key has been set' do
@h['my_header'] = 'my_value'
@h.has_key?('my_header').should be_true
end
it 'returns false if the key has not been set' do
@h.has_key?('my_header').should be_false
end
it 'ignores nil values' do
@h['my_header'] = nil
@h.to_s.should == ''
end
it 'allows a value after setting nil' do
@h['my_header'] = nil
@h['my_header'] = 'my_value'
@h.to_s.should == "my_header: my_value\r\n"
end
it 'formats time as an http time' do
time = Time.now
@h['my_time'] = time
@h.to_s.should == "my_time: #{time.httpdate}\r\n"
end
%w(Set-Cookie Set-Cookie2 Warning WWW-Authenticate).each do |key|
it "allows #{key} as to be duplicate" do
@h[key] = 'value1'
@h[key] = 'value2'
@h.to_s.should == "#{key}: value1\r\n#{key}: value2\r\n"
end
end
end