| 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 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 61 internalResponse->populateWebServiceWorkerResponse(webResponse); | 61 internalResponse->populateWebServiceWorkerResponse(webResponse); |
| 62 EXPECT_EQ(WebServiceWorkerResponseTypeDefault, webResponse.responseType()); | 62 EXPECT_EQ(WebServiceWorkerResponseTypeDefault, webResponse.responseType()); |
| 63 CheckHeaders(webResponse); | 63 CheckHeaders(webResponse); |
| 64 } | 64 } |
| 65 | 65 |
| 66 TEST_F(FetchResponseDataTest, BasicFilter) | 66 TEST_F(FetchResponseDataTest, BasicFilter) |
| 67 { | 67 { |
| 68 FetchResponseData* internalResponse = createInternalResponse(); | 68 FetchResponseData* internalResponse = createInternalResponse(); |
| 69 FetchResponseData* basicResponseData = internalResponse->createBasicFiltered
Response(); | 69 FetchResponseData* basicResponseData = internalResponse->createBasicFiltered
Response(); |
| 70 | 70 |
| 71 EXPECT_EQ(internalResponse, basicResponseData->internalResponse()); |
| 72 |
| 71 EXPECT_FALSE(basicResponseData->headerList()->has("set-cookie")); | 73 EXPECT_FALSE(basicResponseData->headerList()->has("set-cookie")); |
| 72 | 74 |
| 73 Vector<String> barValues; | 75 Vector<String> barValues; |
| 74 basicResponseData->headerList()->getAll("bar", barValues); | 76 basicResponseData->headerList()->getAll("bar", barValues); |
| 75 ASSERT_EQ(1U, barValues.size()); | 77 ASSERT_EQ(1U, barValues.size()); |
| 76 EXPECT_EQ("bar", barValues[0]); | 78 EXPECT_EQ("bar", barValues[0]); |
| 77 | 79 |
| 78 Vector<String> cacheControlValues; | 80 Vector<String> cacheControlValues; |
| 79 basicResponseData->headerList()->getAll("cache-control", cacheControlValues)
; | 81 basicResponseData->headerList()->getAll("cache-control", cacheControlValues)
; |
| 80 ASSERT_EQ(1U, cacheControlValues.size()); | 82 ASSERT_EQ(1U, cacheControlValues.size()); |
| 81 EXPECT_EQ("no-cache", cacheControlValues[0]); | 83 EXPECT_EQ("no-cache", cacheControlValues[0]); |
| 82 } | 84 } |
| 83 | 85 |
| 84 TEST_F(FetchResponseDataTest, ToWebServiceWorkerBasicType) | 86 TEST_F(FetchResponseDataTest, ToWebServiceWorkerBasicType) |
| 85 { | 87 { |
| 86 WebServiceWorkerResponse webResponse; | 88 WebServiceWorkerResponse webResponse; |
| 87 FetchResponseData* internalResponse = createInternalResponse(); | 89 FetchResponseData* internalResponse = createInternalResponse(); |
| 88 FetchResponseData* basicResponseData = internalResponse->createBasicFiltered
Response(); | 90 FetchResponseData* basicResponseData = internalResponse->createBasicFiltered
Response(); |
| 89 | 91 |
| 90 basicResponseData->populateWebServiceWorkerResponse(webResponse); | 92 basicResponseData->populateWebServiceWorkerResponse(webResponse); |
| 91 EXPECT_EQ(WebServiceWorkerResponseTypeBasic, webResponse.responseType()); | 93 EXPECT_EQ(WebServiceWorkerResponseTypeBasic, webResponse.responseType()); |
| 92 CheckHeaders(webResponse); | 94 CheckHeaders(webResponse); |
| 93 } | 95 } |
| 94 | 96 |
| 95 TEST_F(FetchResponseDataTest, CORSFilter) | 97 TEST_F(FetchResponseDataTest, CORSFilter) |
| 96 { | 98 { |
| 97 FetchResponseData* internalResponse = createInternalResponse(); | 99 FetchResponseData* internalResponse = createInternalResponse(); |
| 98 FetchResponseData* corsResponseData = internalResponse->createCORSFilteredRe
sponse(); | 100 FetchResponseData* corsResponseData = internalResponse->createCORSFilteredRe
sponse(); |
| 99 | 101 |
| 102 EXPECT_EQ(internalResponse, corsResponseData->internalResponse()); |
| 103 |
| 100 EXPECT_FALSE(corsResponseData->headerList()->has("set-cookie")); | 104 EXPECT_FALSE(corsResponseData->headerList()->has("set-cookie")); |
| 101 | 105 |
| 102 EXPECT_FALSE(corsResponseData->headerList()->has("bar")); | 106 EXPECT_FALSE(corsResponseData->headerList()->has("bar")); |
| 103 | 107 |
| 104 Vector<String> cacheControlValues; | 108 Vector<String> cacheControlValues; |
| 105 corsResponseData->headerList()->getAll("cache-control", cacheControlValues); | 109 corsResponseData->headerList()->getAll("cache-control", cacheControlValues); |
| 106 ASSERT_EQ(1U, cacheControlValues.size()); | 110 ASSERT_EQ(1U, cacheControlValues.size()); |
| 107 EXPECT_EQ("no-cache", cacheControlValues[0]); | 111 EXPECT_EQ("no-cache", cacheControlValues[0]); |
| 108 } | 112 } |
| 109 | 113 |
| 110 TEST_F(FetchResponseDataTest, CORSFilterOnResponseWithAccessControlExposeHeaders
) | 114 TEST_F(FetchResponseDataTest, CORSFilterOnResponseWithAccessControlExposeHeaders
) |
| 111 { | 115 { |
| 112 FetchResponseData* internalResponse = createInternalResponse(); | 116 FetchResponseData* internalResponse = createInternalResponse(); |
| 113 internalResponse->headerList()->append("access-control-expose-headers", "set
-cookie, bar"); | 117 internalResponse->headerList()->append("access-control-expose-headers", "set
-cookie, bar"); |
| 114 | 118 |
| 115 FetchResponseData* corsResponseData = internalResponse->createCORSFilteredRe
sponse(); | 119 FetchResponseData* corsResponseData = internalResponse->createCORSFilteredRe
sponse(); |
| 116 | 120 |
| 121 EXPECT_EQ(internalResponse, corsResponseData->internalResponse()); |
| 122 |
| 117 EXPECT_FALSE(corsResponseData->headerList()->has("set-cookie")); | 123 EXPECT_FALSE(corsResponseData->headerList()->has("set-cookie")); |
| 118 | 124 |
| 119 Vector<String> barValues; | 125 Vector<String> barValues; |
| 120 corsResponseData->headerList()->getAll("bar", barValues); | 126 corsResponseData->headerList()->getAll("bar", barValues); |
| 121 ASSERT_EQ(1U, barValues.size()); | 127 ASSERT_EQ(1U, barValues.size()); |
| 122 EXPECT_EQ("bar", barValues[0]); | 128 EXPECT_EQ("bar", barValues[0]); |
| 123 } | 129 } |
| 124 | 130 |
| 125 TEST_F(FetchResponseDataTest, ToWebServiceWorkerCORSType) | 131 TEST_F(FetchResponseDataTest, ToWebServiceWorkerCORSType) |
| 126 { | 132 { |
| 127 WebServiceWorkerResponse webResponse; | 133 WebServiceWorkerResponse webResponse; |
| 128 FetchResponseData* internalResponse = createInternalResponse(); | 134 FetchResponseData* internalResponse = createInternalResponse(); |
| 129 FetchResponseData* corsResponseData = internalResponse->createCORSFilteredRe
sponse(); | 135 FetchResponseData* corsResponseData = internalResponse->createCORSFilteredRe
sponse(); |
| 130 | 136 |
| 131 corsResponseData->populateWebServiceWorkerResponse(webResponse); | 137 corsResponseData->populateWebServiceWorkerResponse(webResponse); |
| 132 EXPECT_EQ(WebServiceWorkerResponseTypeCORS, webResponse.responseType()); | 138 EXPECT_EQ(WebServiceWorkerResponseTypeCORS, webResponse.responseType()); |
| 133 CheckHeaders(webResponse); | 139 CheckHeaders(webResponse); |
| 134 } | 140 } |
| 135 | 141 |
| 136 TEST_F(FetchResponseDataTest, OpaqueFilter) | 142 TEST_F(FetchResponseDataTest, OpaqueFilter) |
| 137 { | 143 { |
| 138 FetchResponseData* internalResponse = createInternalResponse(); | 144 FetchResponseData* internalResponse = createInternalResponse(); |
| 139 FetchResponseData* opaqueResponseData = internalResponse->createOpaqueFilter
edResponse(); | 145 FetchResponseData* opaqueResponseData = internalResponse->createOpaqueFilter
edResponse(); |
| 140 | 146 |
| 147 EXPECT_EQ(internalResponse, opaqueResponseData->internalResponse()); |
| 148 |
| 141 EXPECT_FALSE(opaqueResponseData->headerList()->has("set-cookie")); | 149 EXPECT_FALSE(opaqueResponseData->headerList()->has("set-cookie")); |
| 142 EXPECT_FALSE(opaqueResponseData->headerList()->has("bar")); | 150 EXPECT_FALSE(opaqueResponseData->headerList()->has("bar")); |
| 143 EXPECT_FALSE(opaqueResponseData->headerList()->has("cache-control")); | 151 EXPECT_FALSE(opaqueResponseData->headerList()->has("cache-control")); |
| 144 } | 152 } |
| 145 | 153 |
| 146 TEST_F(FetchResponseDataTest, OpaqueRedirectFilter) | 154 TEST_F(FetchResponseDataTest, OpaqueRedirectFilter) |
| 147 { | 155 { |
| 148 FetchResponseData* internalResponse = createInternalResponse(); | 156 FetchResponseData* internalResponse = createInternalResponse(); |
| 149 FetchResponseData* opaqueResponseData = internalResponse->createOpaqueRedire
ctFilteredResponse(); | 157 FetchResponseData* opaqueResponseData = internalResponse->createOpaqueRedire
ctFilteredResponse(); |
| 150 | 158 |
| 159 EXPECT_EQ(internalResponse, opaqueResponseData->internalResponse()); |
| 160 |
| 151 EXPECT_EQ(opaqueResponseData->headerList()->size(), 0u); | 161 EXPECT_EQ(opaqueResponseData->headerList()->size(), 0u); |
| 152 EXPECT_EQ(opaqueResponseData->url(), internalResponse->url()); | 162 EXPECT_EQ(opaqueResponseData->url(), internalResponse->url()); |
| 153 } | 163 } |
| 154 | 164 |
| 155 TEST_F(FetchResponseDataTest, OpaqueFilterOnResponseWithAccessControlExposeHeade
rs) | 165 TEST_F(FetchResponseDataTest, OpaqueFilterOnResponseWithAccessControlExposeHeade
rs) |
| 156 { | 166 { |
| 157 FetchResponseData* internalResponse = createInternalResponse(); | 167 FetchResponseData* internalResponse = createInternalResponse(); |
| 158 internalResponse->headerList()->append("access-control-expose-headers", "set
-cookie, bar"); | 168 internalResponse->headerList()->append("access-control-expose-headers", "set
-cookie, bar"); |
| 159 | 169 |
| 160 FetchResponseData* opaqueResponseData = internalResponse->createOpaqueFilter
edResponse(); | 170 FetchResponseData* opaqueResponseData = internalResponse->createOpaqueFilter
edResponse(); |
| 161 | 171 |
| 172 EXPECT_EQ(internalResponse, opaqueResponseData->internalResponse()); |
| 173 |
| 162 EXPECT_FALSE(opaqueResponseData->headerList()->has("set-cookie")); | 174 EXPECT_FALSE(opaqueResponseData->headerList()->has("set-cookie")); |
| 163 EXPECT_FALSE(opaqueResponseData->headerList()->has("bar")); | 175 EXPECT_FALSE(opaqueResponseData->headerList()->has("bar")); |
| 164 EXPECT_FALSE(opaqueResponseData->headerList()->has("cache-control")); | 176 EXPECT_FALSE(opaqueResponseData->headerList()->has("cache-control")); |
| 165 } | 177 } |
| 166 | 178 |
| 167 TEST_F(FetchResponseDataTest, ToWebServiceWorkerOpaqueType) | 179 TEST_F(FetchResponseDataTest, ToWebServiceWorkerOpaqueType) |
| 168 { | 180 { |
| 169 WebServiceWorkerResponse webResponse; | 181 WebServiceWorkerResponse webResponse; |
| 170 FetchResponseData* internalResponse = createInternalResponse(); | 182 FetchResponseData* internalResponse = createInternalResponse(); |
| 171 FetchResponseData* opaqueResponseData = internalResponse->createOpaqueFilter
edResponse(); | 183 FetchResponseData* opaqueResponseData = internalResponse->createOpaqueFilter
edResponse(); |
| 172 | 184 |
| 173 opaqueResponseData->populateWebServiceWorkerResponse(webResponse); | 185 opaqueResponseData->populateWebServiceWorkerResponse(webResponse); |
| 174 EXPECT_EQ(WebServiceWorkerResponseTypeOpaque, webResponse.responseType()); | 186 EXPECT_EQ(WebServiceWorkerResponseTypeOpaque, webResponse.responseType()); |
| 175 CheckHeaders(webResponse); | 187 CheckHeaders(webResponse); |
| 176 } | 188 } |
| 177 | 189 |
| 178 TEST_F(FetchResponseDataTest, ToWebServiceWorkerOpaqueRedirectType) | 190 TEST_F(FetchResponseDataTest, ToWebServiceWorkerOpaqueRedirectType) |
| 179 { | 191 { |
| 180 WebServiceWorkerResponse webResponse; | 192 WebServiceWorkerResponse webResponse; |
| 181 FetchResponseData* internalResponse = createInternalResponse(); | 193 FetchResponseData* internalResponse = createInternalResponse(); |
| 182 FetchResponseData* opaqueRedirectResponseData = internalResponse->createOpaq
ueRedirectFilteredResponse(); | 194 FetchResponseData* opaqueRedirectResponseData = internalResponse->createOpaq
ueRedirectFilteredResponse(); |
| 183 | 195 |
| 184 opaqueRedirectResponseData->populateWebServiceWorkerResponse(webResponse); | 196 opaqueRedirectResponseData->populateWebServiceWorkerResponse(webResponse); |
| 185 EXPECT_EQ(WebServiceWorkerResponseTypeOpaqueRedirect, webResponse.responseTy
pe()); | 197 EXPECT_EQ(WebServiceWorkerResponseTypeOpaqueRedirect, webResponse.responseTy
pe()); |
| 186 CheckHeaders(webResponse); | 198 CheckHeaders(webResponse); |
| 187 } | 199 } |
| 188 | 200 |
| 189 } // namespace blink | 201 } // namespace blink |
| OLD | NEW |