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