58 lines
1.8 KiB
Go
58 lines
1.8 KiB
Go
|
|
package h
|
||
|
|
|
||
|
|
import (
|
||
|
|
"github.com/maddalax/htmgo/framework/hx"
|
||
|
|
"net/http"
|
||
|
|
"testing"
|
||
|
|
|
||
|
|
"github.com/stretchr/testify/assert"
|
||
|
|
"github.com/stretchr/testify/require"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestReplaceUrlHeader(t *testing.T) {
|
||
|
|
headers := ReplaceUrlHeader("/new-url")
|
||
|
|
assert.Contains(t, *headers, hx.ReplaceUrlHeader)
|
||
|
|
assert.Equal(t, "/new-url", (*headers)[hx.ReplaceUrlHeader])
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestPushUrlHeader(t *testing.T) {
|
||
|
|
headers := PushUrlHeader("/push-url")
|
||
|
|
assert.Contains(t, *headers, hx.PushUrlHeader)
|
||
|
|
assert.Equal(t, "/push-url", (*headers)[hx.PushUrlHeader])
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestPushQsHeader(t *testing.T) {
|
||
|
|
ctx := &RequestContext{currentBrowserUrl: "https://example.com/path"}
|
||
|
|
qs := NewQs("a", "b", "c", "d")
|
||
|
|
headers := PushQsHeader(ctx, qs)
|
||
|
|
expectedURL := "/path?a=b&c=d"
|
||
|
|
assert.Contains(t, *headers, hx.ReplaceUrlHeader)
|
||
|
|
assert.Equal(t, expectedURL, (*headers)[hx.ReplaceUrlHeader])
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestCombineHeaders(t *testing.T) {
|
||
|
|
h1 := NewHeaders("Content-Type", "application/json")
|
||
|
|
h2 := NewHeaders("Authorization", "Bearer token")
|
||
|
|
combined := CombineHeaders(h1, h2)
|
||
|
|
assert.Equal(t, "application/json", (*combined)["Content-Type"])
|
||
|
|
assert.Equal(t, "Bearer token", (*combined)["Authorization"])
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestCurrentPath(t *testing.T) {
|
||
|
|
req, _ := http.NewRequest("GET", "https://example.com", nil)
|
||
|
|
req.Header.Set(hx.CurrentUrlHeader, "https://example.com/current-path")
|
||
|
|
ctx := &RequestContext{Request: req}
|
||
|
|
path := CurrentPath(ctx)
|
||
|
|
assert.Equal(t, "/current-path", path)
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestNewHeaders(t *testing.T) {
|
||
|
|
headers := NewHeaders("X-Custom", "value", "X-Another", "another-value")
|
||
|
|
require.NotNil(t, headers)
|
||
|
|
assert.Equal(t, "value", (*headers)["X-Custom"])
|
||
|
|
assert.Equal(t, "another-value", (*headers)["X-Another"])
|
||
|
|
|
||
|
|
invalidHeaders := NewHeaders("X-Custom")
|
||
|
|
assert.Empty(t, *invalidHeaders) // Check incorrect pair length handling
|
||
|
|
}
|