OLD | NEW |
(Empty) | |
| 1 if (self.importScripts) { |
| 2 importScripts('../resources/fetch-test-helpers.js'); |
| 3 importScripts('/serviceworker/resources/fetch-access-control-util.js'); |
| 4 } |
| 5 |
| 6 // This test assumes TEST_TARGETS are executed in order and sequentially. |
| 7 var TEST_TARGETS = []; |
| 8 |
| 9 // cookieCheckX checks the cookies sent in the request. |
| 10 // SetCookie=cookieX indicates to set cookies in the response. |
| 11 // So a SetCookie=cookieX indication may affect the next cookieCheckX, |
| 12 // but not the cookieCheckX in the same request. |
| 13 |
| 14 // Test same-origin requests. |
| 15 // The same set of requests are also in fetch-access-control-cookie.js, |
| 16 // with different modes (same-origin and cors). |
| 17 // forEach structure is left unchanged here to keep |
| 18 // fetch-access-control-cookie.js and fetch-access-control-cookie-no-cors.js |
| 19 // parallel with small diffs. |
| 20 ['no-cors'].forEach(function(mode) { |
| 21 // At first, cookie is cookie=cookie1. |
| 22 TEST_TARGETS.push( |
| 23 // Set cookie=cookieA by credentials=same-origin. |
| 24 [BASE_URL + 'mode=' + mode + '&credentials=same-origin&SetCookie=cookieA', |
| 25 [fetchResolved, hasBody], [cookieCheck1]], |
| 26 |
| 27 // Set cookie=cookieB by credentials=include. |
| 28 [BASE_URL + 'mode=' + mode + '&credentials=include&SetCookie=cookieB', |
| 29 [fetchResolved, hasBody], [cookieCheckA]], |
| 30 // Check cookie. |
| 31 [BASE_URL + 'mode=' + mode + '&credentials=same-origin', |
| 32 [fetchResolved, hasBody], [cookieCheckB]], |
| 33 |
| 34 // Try to set cookie=cookieC by credentials=omit, but |
| 35 // cookie is not sent/updated if credentials flag is unset. |
| 36 [BASE_URL + 'mode=' + mode + '&credentials=omit&SetCookie=cookieC', |
| 37 [fetchResolved, hasBody], [cookieCheckNone]], |
| 38 |
| 39 // Set-Cookie2 header is ignored. |
| 40 [BASE_URL + 'mode=' + mode + |
| 41 '&credentials=same-origin&SetCookie2=cookieC', |
| 42 [fetchResolved, hasBody], [cookieCheckB]], |
| 43 |
| 44 // Reset cookie to cookie1. |
| 45 [BASE_URL + 'mode=' + mode + '&credentials=same-origin&SetCookie=cookie1', |
| 46 [fetchResolved, hasBody], [cookieCheckB]]); |
| 47 }); |
| 48 |
| 49 // Test cross-origin requests. |
| 50 |
| 51 // URL to check current cookie. |
| 52 var OTHER_CHECK_URL = |
| 53 OTHER_BASE_URL + |
| 54 'mode=cors&credentials=include&method=POST&ACAOrigin=' + BASE_ORIGIN + |
| 55 '&ACACredentials=true&label='; |
| 56 |
| 57 TEST_TARGETS.push( |
| 58 // At first, cookie is cookie=cookie2. |
| 59 // Tests for mode=no-cors. |
| 60 |
| 61 // Try to set cookieC, but |
| 62 // cookie is not sent/updated because credentials flag is not set. |
| 63 [OTHER_BASE_URL + 'mode=no-cors&credentials=omit&SetCookie=cookieC', |
| 64 [fetchResolved, noBody, typeOpaque], |
| 65 onlyOnServiceWorkerProxiedTest([cookieCheckNone])], |
| 66 [OTHER_CHECK_URL + 'otherCheck1', [fetchResolved], [cookieCheck2]], |
| 67 |
| 68 // Set cookieC with opaque response. Response is opaque, but cookie is set. |
| 69 [OTHER_BASE_URL + 'mode=no-cors&credentials=include&SetCookie=cookieC', |
| 70 [fetchResolved, noBody, typeOpaque], |
| 71 onlyOnServiceWorkerProxiedTest([cookieCheck2])], |
| 72 [OTHER_CHECK_URL + 'otherCheck2', [fetchResolved], [cookieCheckC]], |
| 73 |
| 74 // Set cookieA with opaque response. Response is opaque, but cookie is set. |
| 75 [OTHER_BASE_URL + 'mode=no-cors&credentials=same-origin&SetCookie=cookieA', |
| 76 [fetchResolved, noBody, typeOpaque], |
| 77 onlyOnServiceWorkerProxiedTest([cookieCheckC])], |
| 78 [OTHER_CHECK_URL + 'otherCheck3', [fetchResolved], [cookieCheckA]] |
| 79 ); |
| 80 |
| 81 if (self.importScripts) { |
| 82 executeTests(TEST_TARGETS); |
| 83 done(); |
| 84 } |
OLD | NEW |