Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
projectdiscovery
GitHub Repository: projectdiscovery/nuclei
Path: blob/dev/pkg/fuzz/component/cookie_test.go
2070 views
1
package component
2
3
import (
4
"net/http"
5
"testing"
6
7
"github.com/projectdiscovery/retryablehttp-go"
8
"github.com/stretchr/testify/require"
9
)
10
11
func TestCookieComponent(t *testing.T) {
12
req, err := retryablehttp.NewRequest(http.MethodGet, "https://example.com", nil)
13
if err != nil {
14
t.Fatal(err)
15
}
16
cookie := &http.Cookie{
17
Name: "session",
18
Value: "test-session",
19
}
20
req.AddCookie(cookie)
21
22
cookieComponent := NewCookie() // Assuming you have a function like this for creating a new cookie component
23
_, err = cookieComponent.Parse(req)
24
if err != nil {
25
t.Fatal(err)
26
}
27
28
var cookieNames []string
29
var cookieValues []string
30
_ = cookieComponent.Iterate(func(key string, value interface{}) error {
31
cookieNames = append(cookieNames, key)
32
switch v := value.(type) {
33
case string:
34
cookieValues = append(cookieValues, v)
35
case []string:
36
cookieValues = append(cookieValues, v...)
37
}
38
return nil
39
})
40
41
require.Equal(t, []string{"session"}, cookieNames, "unexpected cookie names")
42
require.Equal(t, []string{"test-session"}, cookieValues, "unexpected cookie values")
43
44
err = cookieComponent.SetValue("session", "new-session")
45
if err != nil {
46
t.Fatal(err)
47
}
48
49
rebuilt, err := cookieComponent.Rebuild()
50
if err != nil {
51
t.Fatal(err)
52
}
53
54
// Assuming the Rebuild function will reconstruct the entire request and also set the modified cookies
55
newCookie, _ := rebuilt.Cookie("session")
56
require.Equal(t, "new-session", newCookie.Value, "unexpected cookie value")
57
}
58
59