Path: blob/dev/pkg/fuzz/component/query_test.go
2070 views
package component12import (3"net/http"4"testing"56"github.com/projectdiscovery/retryablehttp-go"7"github.com/stretchr/testify/require"8)910func TestQueryComponent(t *testing.T) {11req, err := retryablehttp.NewRequest(http.MethodGet, "https://example.com?foo=bar", nil)12if err != nil {13t.Fatal(err)14}1516query := NewQuery()17_, err = query.Parse(req)18if err != nil {19t.Fatal(err)20}2122var keys []string23var values []string24_ = query.Iterate(func(key string, value interface{}) error {25keys = append(keys, key)26values = append(values, value.(string))27return nil28})2930require.Equal(t, []string{"foo"}, keys, "unexpected keys")31require.Equal(t, []string{"bar"}, values, "unexpected values")3233err = query.SetValue("foo", "baz")34if err != nil {35t.Fatal(err)36}3738rebuilt, err := query.Rebuild()39if err != nil {40t.Fatal(err)41}4243require.Equal(t, "foo=baz", rebuilt.RawQuery, "unexpected query string")44require.Equal(t, "https://example.com?foo=baz", rebuilt.String(), "unexpected url")45}464748