v/vlib/net/http/header_test.v

49 lines
1.0 KiB
V

import net.http
fn test_header_new() {
h := http.new_header(
{key: .accept, value: 'nothing'},
{key: .expires, value: 'yesterday'}
)
assert h.contains_str('accept')
assert h.contains(.expires)
accept := h.get(.accept) or { '' }
expires := h.get(.expires) or { '' }
assert accept == 'nothing'
assert expires == 'yesterday'
}
fn test_header_invalid_key() {
mut h := http.new_header()
h.add_str('space is invalid', ':(') or { return }
panic('should have returned')
}
fn test_header_adds_multiple() {
mut h := http.new_header()
h.add(.accept, 'one')
h.add(.accept, 'two')
assert h.values(.accept) == ['one' 'two']
}
fn test_header_set() {
mut h := http.new_header(
{key: .dnt, value: 'one'},
{key: .dnt, value: 'two'}
)
assert h.values(.dnt) == ['one' 'two']
h.set_str('dnt', 'three')
assert h.values(.dnt) == ['three']
}
fn test_header_delete() {
mut h := http.new_header(
{key: .dnt, value: 'one'},
{key: .dnt, value: 'two'}
)
assert h.values(.dnt) == ['one' 'two']
h.delete_str('dnt')
assert h.values(.dnt) == []
}