Path: blob/dev/pkg/fuzz/component/headers_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 TestHeaderComponent(t *testing.T) {11req, err := retryablehttp.NewRequest(http.MethodGet, "https://example.com", nil)12if err != nil {13t.Fatal(err)14}15req.Header.Set("User-Agent", "test-agent")1617header := NewHeader()18_, err = header.Parse(req)19if err != nil {20t.Fatal(err)21}2223var keys []string24var values []string25_ = header.Iterate(func(key string, value interface{}) error {26keys = append(keys, key)27switch v := value.(type) {28case string:29values = append(values, v)30case []string:31values = append(values, v...)32}33return nil34})3536require.Equal(t, []string{"User-Agent"}, keys, "unexpected keys")37require.Equal(t, []string{"test-agent"}, values, "unexpected values")3839err = header.SetValue("User-Agent", "new-agent")40if err != nil {41t.Fatal(err)42}4344rebuilt, err := header.Rebuild()45if err != nil {46t.Fatal(err)47}4849require.Equal(t, "new-agent", rebuilt.Header.Get("User-Agent"), "unexpected header value")50}515253