On Thursday, 30 June 2022 at 00:31:29 UTC+2 amits wrote:

> Currently the Cookies() method as explained at 
> https://pkg.go.dev/net/http/cookiejar#Jar.Cookies only adds the Name and 
> Value of the cookies and strips out the MaxAge and Expires field (and all 
> other fields). Presumably, as I can see in the code, the logic is if a 
> cookie is returned as a return value from this method, that means, the 
> cookie is valid  - expiry date is in the future, for example.
>
Technically neither is "stripped out", the Jar itself knows about these
fields, they just aren't returned to the caller of Cookies().
 

> In the context of testing my HTTP handler, I wanted to make sure that the 
> expiry of a certain cookie is set to a specific time in the future.
>
That can be done without putting the cookies into a Jar:
Just inspect the raw cookies sent in the Request, e.g. with
net/http.Request.Cookies. These cookies have all fields set.
 

> However, the above implementation doesn't make it possible. Is that a fair 
> expectation to have that the cookiejar's Cookies() method will preserve the 
> Expires/MaxAge field of the cookie so that I can verify my HTTP handler 
> function logic? 
>
Are you asking whether it's a fair to expect that
net/http/cookiejar.Jar doesn't have bugs? It has a decent
set of tests that check expiry of cookies so I think yes,
this is a fair expectation.
 

> Or is there another alternative suggestion?
>
There are open source drop in replacements for
net/http/cookiejar.Jar that allow deep inspection of their
content, but I really doubt that this is needed.

There are two questions:
1) Do your cookies have the right MaxAge? Test that by checking
the cookie in the HTTP response.
2) Does cookiejar.Jar work properly? You can rely on that;
but if you think its tests are lacking: Feel free to provide a CL for
the test suite of Jar.

V.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/ffcf1004-4bcd-44e6-aa08-982e3ecbcaacn%40googlegroups.com.

Reply via email to