mirror of
https://github.com/buger/goreplay.git
synced 2024-04-21 12:32:02 +00:00
change package from `main -> goreplay` this will allow importing `goreplay` as a package
66 lines
1.3 KiB
Go
66 lines
1.3 KiB
Go
package goreplay
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestHTTPHeaderFilters(t *testing.T) {
|
|
filters := HTTPHeaderFilters{}
|
|
|
|
err := filters.Set("Header1:^$")
|
|
if err != nil {
|
|
t.Error("Should not error on Header1:^$")
|
|
}
|
|
|
|
err = filters.Set("Header2:^:$")
|
|
if err != nil {
|
|
t.Error("Should not error on Header2:^:$")
|
|
}
|
|
|
|
// Missing colon
|
|
err = filters.Set("Header3-^$")
|
|
if err == nil {
|
|
t.Error("Should error on Header2:^:$")
|
|
}
|
|
}
|
|
|
|
func TestHTTPHashFilters(t *testing.T) {
|
|
filters := HTTPHashFilters{}
|
|
|
|
err := filters.Set("Header1:1/2")
|
|
if err != nil {
|
|
t.Error("Should support old syntax")
|
|
}
|
|
|
|
if filters[0].percent != 50 {
|
|
t.Error("Wrong percentage", filters[0].percent)
|
|
}
|
|
|
|
err = filters.Set("Header2:1")
|
|
if err == nil {
|
|
t.Error("Should error on Header2 because no % symbol")
|
|
}
|
|
|
|
err = filters.Set("Header2:10%")
|
|
if err != nil {
|
|
t.Error("Should pass")
|
|
}
|
|
|
|
if filters[1].percent != 10 {
|
|
t.Error("Wrong percentage", filters[1].percent)
|
|
}
|
|
}
|
|
|
|
func TestUrlRewriteMap(t *testing.T) {
|
|
var err error
|
|
rewrites := URLRewriteMap{}
|
|
|
|
if err = rewrites.Set("/v1/user/([^\\/]+)/ping:/v2/user/$1/ping"); err != nil {
|
|
t.Error("Should set mapping", err)
|
|
}
|
|
|
|
if err = rewrites.Set("/v1/user/([^\\/]+)/ping"); err == nil {
|
|
t.Error("Should not set mapping without :")
|
|
}
|
|
}
|