| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "modules/fetch/FetchResponseData.h" | 5 #include "modules/fetch/FetchResponseData.h" |
| 6 | 6 |
| 7 #include "core/dom/DOMArrayBuffer.h" | 7 #include "core/dom/DOMArrayBuffer.h" |
| 8 #include "modules/fetch/FetchHeaderList.h" | 8 #include "modules/fetch/FetchHeaderList.h" |
| 9 #include "platform/blob/BlobData.h" | 9 #include "platform/blob/BlobData.h" |
| 10 #include "public/platform/modules/serviceworker/WebServiceWorkerResponse.h" | 10 #include "public/platform/modules/serviceworker/WebServiceWorkerResponse.h" |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 EXPECT_EQ(internalResponse, corsResponseData->internalResponse()); | 121 EXPECT_EQ(internalResponse, corsResponseData->internalResponse()); |
| 122 | 122 |
| 123 EXPECT_FALSE(corsResponseData->headerList()->has("set-cookie")); | 123 EXPECT_FALSE(corsResponseData->headerList()->has("set-cookie")); |
| 124 | 124 |
| 125 Vector<String> barValues; | 125 Vector<String> barValues; |
| 126 corsResponseData->headerList()->getAll("bar", barValues); | 126 corsResponseData->headerList()->getAll("bar", barValues); |
| 127 ASSERT_EQ(1U, barValues.size()); | 127 ASSERT_EQ(1U, barValues.size()); |
| 128 EXPECT_EQ("bar", barValues[0]); | 128 EXPECT_EQ("bar", barValues[0]); |
| 129 } | 129 } |
| 130 | 130 |
| 131 TEST_F(FetchResponseDataTest, CORSFilterWithEmptyHeaderSet) |
| 132 { |
| 133 FetchResponseData* internalResponse = createInternalResponse(); |
| 134 FetchResponseData* corsResponseData = internalResponse->createCORSFilteredRe
sponse(HTTPHeaderSet()); |
| 135 |
| 136 EXPECT_EQ(internalResponse, corsResponseData->internalResponse()); |
| 137 |
| 138 EXPECT_FALSE(corsResponseData->headerList()->has("set-cookie")); |
| 139 |
| 140 EXPECT_FALSE(corsResponseData->headerList()->has("bar")); |
| 141 |
| 142 Vector<String> cacheControlValues; |
| 143 corsResponseData->headerList()->getAll("cache-control", cacheControlValues); |
| 144 ASSERT_EQ(1U, cacheControlValues.size()); |
| 145 EXPECT_EQ("no-cache", cacheControlValues[0]); |
| 146 } |
| 147 |
| 148 TEST_F(FetchResponseDataTest, CORSFilterWithEmptyHeaderSetOnResponseWithAccessCo
ntrolExposeHeaders) |
| 149 { |
| 150 FetchResponseData* internalResponse = createInternalResponse(); |
| 151 internalResponse->headerList()->append("access-control-expose-headers", "set
-cookie, bar"); |
| 152 |
| 153 FetchResponseData* corsResponseData = internalResponse->createCORSFilteredRe
sponse(HTTPHeaderSet()); |
| 154 |
| 155 EXPECT_EQ(internalResponse, corsResponseData->internalResponse()); |
| 156 |
| 157 EXPECT_FALSE(corsResponseData->headerList()->has("set-cookie")); |
| 158 |
| 159 EXPECT_FALSE(corsResponseData->headerList()->has("bar")); |
| 160 |
| 161 Vector<String> cacheControlValues; |
| 162 corsResponseData->headerList()->getAll("cache-control", cacheControlValues); |
| 163 ASSERT_EQ(1U, cacheControlValues.size()); |
| 164 EXPECT_EQ("no-cache", cacheControlValues[0]); |
| 165 } |
| 166 |
| 167 TEST_F(FetchResponseDataTest, CORSFilterWithExplicitHeaderSet) |
| 168 { |
| 169 FetchResponseData* internalResponse = createInternalResponse(); |
| 170 HTTPHeaderSet exposedHeaders; |
| 171 exposedHeaders.add("set-cookie"); |
| 172 exposedHeaders.add("bar"); |
| 173 |
| 174 FetchResponseData* corsResponseData = internalResponse->createCORSFilteredRe
sponse(exposedHeaders); |
| 175 |
| 176 EXPECT_EQ(internalResponse, corsResponseData->internalResponse()); |
| 177 |
| 178 EXPECT_FALSE(corsResponseData->headerList()->has("set-cookie")); |
| 179 |
| 180 Vector<String> barValues; |
| 181 corsResponseData->headerList()->getAll("bar", barValues); |
| 182 ASSERT_EQ(1U, barValues.size()); |
| 183 EXPECT_EQ("bar", barValues[0]); |
| 184 } |
| 185 |
| 131 TEST_F(FetchResponseDataTest, ToWebServiceWorkerCORSType) | 186 TEST_F(FetchResponseDataTest, ToWebServiceWorkerCORSType) |
| 132 { | 187 { |
| 133 WebServiceWorkerResponse webResponse; | 188 WebServiceWorkerResponse webResponse; |
| 134 FetchResponseData* internalResponse = createInternalResponse(); | 189 FetchResponseData* internalResponse = createInternalResponse(); |
| 135 FetchResponseData* corsResponseData = internalResponse->createCORSFilteredRe
sponse(); | 190 FetchResponseData* corsResponseData = internalResponse->createCORSFilteredRe
sponse(); |
| 136 | 191 |
| 137 corsResponseData->populateWebServiceWorkerResponse(webResponse); | 192 corsResponseData->populateWebServiceWorkerResponse(webResponse); |
| 138 EXPECT_EQ(WebServiceWorkerResponseTypeCORS, webResponse.responseType()); | 193 EXPECT_EQ(WebServiceWorkerResponseTypeCORS, webResponse.responseType()); |
| 139 CheckHeaders(webResponse); | 194 CheckHeaders(webResponse); |
| 140 } | 195 } |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 192 WebServiceWorkerResponse webResponse; | 247 WebServiceWorkerResponse webResponse; |
| 193 FetchResponseData* internalResponse = createInternalResponse(); | 248 FetchResponseData* internalResponse = createInternalResponse(); |
| 194 FetchResponseData* opaqueRedirectResponseData = internalResponse->createOpaq
ueRedirectFilteredResponse(); | 249 FetchResponseData* opaqueRedirectResponseData = internalResponse->createOpaq
ueRedirectFilteredResponse(); |
| 195 | 250 |
| 196 opaqueRedirectResponseData->populateWebServiceWorkerResponse(webResponse); | 251 opaqueRedirectResponseData->populateWebServiceWorkerResponse(webResponse); |
| 197 EXPECT_EQ(WebServiceWorkerResponseTypeOpaqueRedirect, webResponse.responseTy
pe()); | 252 EXPECT_EQ(WebServiceWorkerResponseTypeOpaqueRedirect, webResponse.responseTy
pe()); |
| 198 CheckHeaders(webResponse); | 253 CheckHeaders(webResponse); |
| 199 } | 254 } |
| 200 | 255 |
| 201 } // namespace blink | 256 } // namespace blink |
| OLD | NEW |