xf.li | 6c8fc1e | 2023-08-12 00:11:09 -0700 | [diff] [blame] | 1 | <testcase> |
| 2 | <info> |
| 3 | <keywords> |
| 4 | HTTP |
| 5 | HTTP GET |
| 6 | cookies |
| 7 | shared cookies |
| 8 | </keywords> |
| 9 | </info> |
| 10 | |
| 11 | # Server-side |
| 12 | <reply> |
| 13 | <data1> |
| 14 | HTTP/1.1 200 OK |
| 15 | Date: Tue, 09 Nov 2010 14:49:00 GMT |
| 16 | Server: test-server/fake |
| 17 | Content-Type: text/html |
| 18 | Set-Cookie: test1=one; domain=foo.com; expires=Sat Feb 2 11:56:27 GMT 2030 |
| 19 | Set-Cookie: test2=two; domain=host.foo.com; expires=Sat Feb 2 11:56:27 GMT 2030 |
| 20 | Set-Cookie: test3=three; domain=foo.com; expires=Sat Feb 2 11:56:27 GMT 2030 |
| 21 | Content-Length: 29 |
| 22 | |
| 23 | run 1: set cookie 1, 2 and 3 |
| 24 | </data1> |
| 25 | <data2> |
| 26 | HTTP/1.1 200 OK |
| 27 | Date: Tue, 09 Nov 2010 14:49:01 GMT |
| 28 | Server: test-server/fake |
| 29 | Content-Type: text/html |
| 30 | Set-Cookie: test4=four; domain=host.foo.com; expires=Sat Feb 2 11:56:27 GMT 2030 |
| 31 | Set-Cookie: test5=five; domain=host.foo.com; expires=Sat Feb 2 11:56:27 GMT 2030 |
| 32 | Content-Length: 26 |
| 33 | |
| 34 | run 2: set cookie 4 and 5 |
| 35 | </data2> |
| 36 | <data3> |
| 37 | HTTP/1.1 200 OK |
| 38 | Date: Tue, 09 Nov 2010 14:49:02 GMT |
| 39 | Server: test-server/fake |
| 40 | Content-Type: text/html |
| 41 | Funny-head: yesyes |
| 42 | Set-Cookie: test4=overwritten4; domain=host.foo.com; expires=Sat May 5 GMT 11:56:27 2035 |
| 43 | Set-Cookie: test1=overwritten1; domain=foo.com; expires=Thu Mar 3 GMT 11:56:27 2033 |
| 44 | Set-Cookie: test6=six; domain=.www.host.foo.com; expires=Thu Mar 3 GMT 11:56:27 2033 |
| 45 | Set-Cookie: test6=six_more; expires=Thu Mar 3 GMT 11:56:27 2033 |
| 46 | Content-Type: text/html |
| 47 | Content-Length: 73 |
| 48 | |
| 49 | run 3: overwrite cookie 1 and 4, set cookie 6 with and without tailmatch |
| 50 | </data3> |
| 51 | </reply> |
| 52 | |
| 53 | # Client-side |
| 54 | <client> |
| 55 | <server> |
| 56 | http |
| 57 | </server> |
| 58 | # don't run this with the threaded-resolver or c-ares since the events might |
| 59 | # trigger in a different order! |
| 60 | <features> |
| 61 | !threaded-resolver |
| 62 | !c-ares |
| 63 | </features> |
| 64 | <name> |
| 65 | HTTP with shared cookie list (and dns cache) |
| 66 | </name> |
| 67 | # Explicitly set the time zone to a known good one, in case the user is |
| 68 | # using one of the 'right' zones that take into account leap seconds |
| 69 | # which causes the cookie expiry times to be different. |
| 70 | <setenv> |
| 71 | TZ=GMT |
| 72 | </setenv> |
| 73 | <tool> |
| 74 | lib%TESTNUMBER |
| 75 | </tool> |
| 76 | <command> |
| 77 | http://%HOSTIP:%HTTPPORT/%TESTNUMBER |
| 78 | </command> |
| 79 | </client> |
| 80 | |
| 81 | # Verify data after the test has been "shot" |
| 82 | <verify> |
| 83 | <stdout> |
| 84 | GLOBAL_INIT |
| 85 | SHARE_INIT |
| 86 | CURLSHOPT_LOCKFUNC |
| 87 | CURLSHOPT_UNLOCKFUNC |
| 88 | CURLSHOPT_USERDATA |
| 89 | CURL_LOCK_DATA_COOKIE |
| 90 | CURL_LOCK_DATA_DNS |
| 91 | CURLOPT_SHARE |
| 92 | lock: share [Pigs in space]: 0 |
| 93 | unlock: share [Pigs in space]: 1 |
| 94 | CURLOPT_COOKIELIST injected_and_clobbered |
| 95 | lock: cookie [Pigs in space]: 2 |
| 96 | unlock: cookie [Pigs in space]: 3 |
| 97 | CURLOPT_COOKIELIST ALL |
| 98 | lock: cookie [Pigs in space]: 4 |
| 99 | unlock: cookie [Pigs in space]: 5 |
| 100 | CURLOPT_COOKIELIST session |
| 101 | lock: cookie [Pigs in space]: 6 |
| 102 | unlock: cookie [Pigs in space]: 7 |
| 103 | CURLOPT_COOKIELIST injected |
| 104 | lock: cookie [Pigs in space]: 8 |
| 105 | unlock: cookie [Pigs in space]: 9 |
| 106 | CURLOPT_COOKIELIST SESS |
| 107 | lock: cookie [Pigs in space]: 10 |
| 108 | unlock: cookie [Pigs in space]: 11 |
| 109 | CLEANUP |
| 110 | lock: cookie [Pigs in space]: 12 |
| 111 | unlock: cookie [Pigs in space]: 13 |
| 112 | lock: share [Pigs in space]: 14 |
| 113 | unlock: share [Pigs in space]: 15 |
| 114 | *** run 1 |
| 115 | CURLOPT_SHARE |
| 116 | lock: share [Pigs in space]: 16 |
| 117 | unlock: share [Pigs in space]: 17 |
| 118 | PERFORM |
| 119 | lock: cookie [Pigs in space]: 18 |
| 120 | unlock: cookie [Pigs in space]: 19 |
| 121 | lock: dns [Pigs in space]: 20 |
| 122 | unlock: dns [Pigs in space]: 21 |
| 123 | lock: dns [Pigs in space]: 22 |
| 124 | unlock: dns [Pigs in space]: 23 |
| 125 | lock: cookie [Pigs in space]: 24 |
| 126 | unlock: cookie [Pigs in space]: 25 |
| 127 | lock: cookie [Pigs in space]: 26 |
| 128 | unlock: cookie [Pigs in space]: 27 |
| 129 | lock: cookie [Pigs in space]: 28 |
| 130 | unlock: cookie [Pigs in space]: 29 |
| 131 | lock: cookie [Pigs in space]: 30 |
| 132 | unlock: cookie [Pigs in space]: 31 |
| 133 | run 1: set cookie 1, 2 and 3 |
| 134 | lock: dns [Pigs in space]: 32 |
| 135 | unlock: dns [Pigs in space]: 33 |
| 136 | lock: dns [Pigs in space]: 34 |
| 137 | unlock: dns [Pigs in space]: 35 |
| 138 | CLEANUP |
| 139 | lock: cookie [Pigs in space]: 36 |
| 140 | unlock: cookie [Pigs in space]: 37 |
| 141 | lock: share [Pigs in space]: 38 |
| 142 | unlock: share [Pigs in space]: 39 |
| 143 | *** run 2 |
| 144 | CURLOPT_SHARE |
| 145 | lock: share [Pigs in space]: 40 |
| 146 | unlock: share [Pigs in space]: 41 |
| 147 | PERFORM |
| 148 | lock: cookie [Pigs in space]: 42 |
| 149 | unlock: cookie [Pigs in space]: 43 |
| 150 | lock: dns [Pigs in space]: 44 |
| 151 | unlock: dns [Pigs in space]: 45 |
| 152 | lock: cookie [Pigs in space]: 46 |
| 153 | unlock: cookie [Pigs in space]: 47 |
| 154 | lock: cookie [Pigs in space]: 48 |
| 155 | unlock: cookie [Pigs in space]: 49 |
| 156 | lock: cookie [Pigs in space]: 50 |
| 157 | unlock: cookie [Pigs in space]: 51 |
| 158 | run 2: set cookie 4 and 5 |
| 159 | lock: dns [Pigs in space]: 52 |
| 160 | unlock: dns [Pigs in space]: 53 |
| 161 | lock: dns [Pigs in space]: 54 |
| 162 | unlock: dns [Pigs in space]: 55 |
| 163 | CLEANUP |
| 164 | lock: cookie [Pigs in space]: 56 |
| 165 | unlock: cookie [Pigs in space]: 57 |
| 166 | lock: share [Pigs in space]: 58 |
| 167 | unlock: share [Pigs in space]: 59 |
| 168 | *** run 3 |
| 169 | CURLOPT_SHARE |
| 170 | lock: share [Pigs in space]: 60 |
| 171 | unlock: share [Pigs in space]: 61 |
| 172 | CURLOPT_COOKIEJAR |
| 173 | CURLOPT_COOKIELIST FLUSH |
| 174 | lock: cookie [Pigs in space]: 62 |
| 175 | unlock: cookie [Pigs in space]: 63 |
| 176 | PERFORM |
| 177 | lock: dns [Pigs in space]: 64 |
| 178 | unlock: dns [Pigs in space]: 65 |
| 179 | lock: cookie [Pigs in space]: 66 |
| 180 | unlock: cookie [Pigs in space]: 67 |
| 181 | lock: cookie [Pigs in space]: 68 |
| 182 | unlock: cookie [Pigs in space]: 69 |
| 183 | lock: cookie [Pigs in space]: 70 |
| 184 | unlock: cookie [Pigs in space]: 71 |
| 185 | lock: cookie [Pigs in space]: 72 |
| 186 | unlock: cookie [Pigs in space]: 73 |
| 187 | lock: cookie [Pigs in space]: 74 |
| 188 | unlock: cookie [Pigs in space]: 75 |
| 189 | run 3: overwrite cookie 1 and 4, set cookie 6 with and without tailmatch |
| 190 | lock: dns [Pigs in space]: 76 |
| 191 | unlock: dns [Pigs in space]: 77 |
| 192 | lock: dns [Pigs in space]: 78 |
| 193 | unlock: dns [Pigs in space]: 79 |
| 194 | CLEANUP |
| 195 | lock: cookie [Pigs in space]: 80 |
| 196 | unlock: cookie [Pigs in space]: 81 |
| 197 | lock: share [Pigs in space]: 82 |
| 198 | unlock: share [Pigs in space]: 83 |
| 199 | CURLOPT_SHARE |
| 200 | lock: share [Pigs in space]: 84 |
| 201 | unlock: share [Pigs in space]: 85 |
| 202 | CURLOPT_COOKIELIST ALL |
| 203 | lock: cookie [Pigs in space]: 86 |
| 204 | unlock: cookie [Pigs in space]: 87 |
| 205 | CURLOPT_COOKIEJAR |
| 206 | CURLOPT_COOKIELIST RELOAD |
| 207 | lock: cookie [Pigs in space]: 88 |
| 208 | unlock: cookie [Pigs in space]: 89 |
| 209 | lock: cookie [Pigs in space]: 90 |
| 210 | unlock: cookie [Pigs in space]: 91 |
| 211 | loaded cookies: |
| 212 | ----------------- |
| 213 | www.host.foo.com FALSE / FALSE 1993463787 test6 six_more |
| 214 | .www.host.foo.com TRUE / FALSE 1993463787 test6 six |
| 215 | .host.foo.com TRUE / FALSE 1896263787 test5 five |
| 216 | .host.foo.com TRUE / FALSE 2061978987 test4 overwritten4 |
| 217 | .foo.com TRUE / FALSE 1896263787 test3 three |
| 218 | .host.foo.com TRUE / FALSE 1896263787 test2 two |
| 219 | .foo.com TRUE / FALSE 1993463787 test1 overwritten1 |
| 220 | .host.foo.com TRUE / FALSE 1896263787 injected yes |
| 221 | ----------------- |
| 222 | try SHARE_CLEANUP... |
| 223 | lock: share [Pigs in space]: 92 |
| 224 | unlock: share [Pigs in space]: 93 |
| 225 | SHARE_CLEANUP failed, correct |
| 226 | CLEANUP |
| 227 | lock: cookie [Pigs in space]: 94 |
| 228 | unlock: cookie [Pigs in space]: 95 |
| 229 | lock: share [Pigs in space]: 96 |
| 230 | unlock: share [Pigs in space]: 97 |
| 231 | SHARE_CLEANUP |
| 232 | lock: share [Pigs in space]: 98 |
| 233 | unlock: share [Pigs in space]: 99 |
| 234 | GLOBAL_CLEANUP |
| 235 | </stdout> |
| 236 | <file name="log/jar%TESTNUMBER" mode="text"> |
| 237 | # Netscape HTTP Cookie File |
| 238 | # https://curl.se/docs/http-cookies.html |
| 239 | # This file was generated by libcurl! Edit at your own risk. |
| 240 | |
| 241 | www.host.foo.com FALSE / FALSE 1993463787 test6 six_more |
| 242 | .www.host.foo.com TRUE / FALSE 1993463787 test6 six |
| 243 | .host.foo.com TRUE / FALSE 1896263787 test5 five |
| 244 | .host.foo.com TRUE / FALSE 2061978987 test4 overwritten4 |
| 245 | .foo.com TRUE / FALSE 1896263787 test3 three |
| 246 | .host.foo.com TRUE / FALSE 1896263787 test2 two |
| 247 | .foo.com TRUE / FALSE 1993463787 test1 overwritten1 |
| 248 | .host.foo.com TRUE / FALSE 1896263787 injected yes |
| 249 | </file> |
| 250 | </verify> |
| 251 | </testcase> |