On Fri, Jul 1, 2022 at 7:08 PM Amit Saha <amitsaha...@gmail.com> wrote:
> > On Thu, Jun 30, 2022 at 4:16 PM Volker Dobler <dr.volker.dob...@gmail.com> > wrote: > >> 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(). >> > > Agree with your interpretation of my observation, rather than mine. > > >> >> >>> 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. >> > > Yes, that gives me the expected results. I am not sure what I was doing > wrong and just chased the idea of checking the cookie jar: > > // this has the expected cookie max age set > for _, cookie := range resp.Cookies() { > fmt.Printf("Name: %s Value: %s MaxAge: %v Expires: %v\n", > cookie.Name, cookie.Value, cookie.MaxAge, cookie.Expires) > } > > > I am not sure what I was doing wrong I found out why I wasn't seeing the cookies in my responses but was only present in the cookie jar: 1. Test client calls handler function 1 2. Handler function 1 sets the cookies and then redirects it to handler function 2 3. The final response from handler function 2 - doesn't have those cookies expectedly So, my solution in this case would be to either: 1. Implement a cookie jar 2. Or check for the cookies by writing a custom redirect function in my client > > >> 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. >> > > Thanks, my confusions are clear now. > > >> >> V. >> >> -- >> You received this message because you are subscribed to a topic in the >> Google Groups "golang-nuts" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/golang-nuts/PTmjlCkjmU4/unsubscribe. >> To unsubscribe from this group and all its topics, 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 >> <https://groups.google.com/d/msgid/golang-nuts/ffcf1004-4bcd-44e6-aa08-982e3ecbcaacn%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- 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/CANODV3ncsNL2QfWo_vUDDh-1SztUJG8-AKnqsvoP5xvXTSYPLg%40mail.gmail.com.