| 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/Response.h" | 5 #include "modules/fetch/Response.h" |
| 6 | 6 |
| 7 #include "bindings/core/v8/ExceptionState.h" | 7 #include "bindings/core/v8/ExceptionState.h" |
| 8 #include "bindings/core/v8/ScriptState.h" | 8 #include "bindings/core/v8/ScriptState.h" |
| 9 #include "core/dom/Document.h" | 9 #include "core/dom/Document.h" |
| 10 #include "core/frame/Frame.h" | 10 #include "core/frame/Frame.h" |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 fetchResponseData->setURL(url); | 62 fetchResponseData->setURL(url); |
| 63 | 63 |
| 64 Response* response = Response::create(getExecutionContext(), fetchResponseDa
ta); | 64 Response* response = Response::create(getExecutionContext(), fetchResponseDa
ta); |
| 65 ASSERT(response); | 65 ASSERT(response); |
| 66 EXPECT_EQ(url, response->url()); | 66 EXPECT_EQ(url, response->url()); |
| 67 } | 67 } |
| 68 | 68 |
| 69 TEST_F(ServiceWorkerResponseTest, FromWebServiceWorkerResponse) | 69 TEST_F(ServiceWorkerResponseTest, FromWebServiceWorkerResponse) |
| 70 { | 70 { |
| 71 OwnPtr<WebServiceWorkerResponse> webResponse = createTestWebServiceWorkerRes
ponse(); | 71 OwnPtr<WebServiceWorkerResponse> webResponse = createTestWebServiceWorkerRes
ponse(); |
| 72 Response* response = Response::create(getExecutionContext(), *webResponse); | 72 Response* response = Response::create(getScriptState(), *webResponse); |
| 73 ASSERT(response); | 73 ASSERT(response); |
| 74 EXPECT_EQ(webResponse->url(), response->url()); | 74 EXPECT_EQ(webResponse->url(), response->url()); |
| 75 EXPECT_EQ(webResponse->status(), response->status()); | 75 EXPECT_EQ(webResponse->status(), response->status()); |
| 76 EXPECT_STREQ(webResponse->statusText().utf8().c_str(), response->statusText(
).utf8().data()); | 76 EXPECT_STREQ(webResponse->statusText().utf8().c_str(), response->statusText(
).utf8().data()); |
| 77 | 77 |
| 78 Headers* responseHeaders = response->headers(); | 78 Headers* responseHeaders = response->headers(); |
| 79 | 79 |
| 80 WebVector<WebString> keys = webResponse->getHeaderKeys(); | 80 WebVector<WebString> keys = webResponse->getHeaderKeys(); |
| 81 EXPECT_EQ(keys.size(), responseHeaders->headerList()->size()); | 81 EXPECT_EQ(keys.size(), responseHeaders->headerList()->size()); |
| 82 for (size_t i = 0, max = keys.size(); i < max; ++i) { | 82 for (size_t i = 0, max = keys.size(); i < max; ++i) { |
| 83 WebString key = keys[i]; | 83 WebString key = keys[i]; |
| 84 TrackExceptionState exceptionState; | 84 TrackExceptionState exceptionState; |
| 85 EXPECT_STREQ(webResponse->getHeader(key).utf8().c_str(), responseHeaders
->get(key, exceptionState).utf8().data()); | 85 EXPECT_STREQ(webResponse->getHeader(key).utf8().c_str(), responseHeaders
->get(key, exceptionState).utf8().data()); |
| 86 EXPECT_FALSE(exceptionState.hadException()); | 86 EXPECT_FALSE(exceptionState.hadException()); |
| 87 } | 87 } |
| 88 } | 88 } |
| 89 | 89 |
| 90 TEST_F(ServiceWorkerResponseTest, FromWebServiceWorkerResponseDefault) | 90 TEST_F(ServiceWorkerResponseTest, FromWebServiceWorkerResponseDefault) |
| 91 { | 91 { |
| 92 OwnPtr<WebServiceWorkerResponse> webResponse = createTestWebServiceWorkerRes
ponse(); | 92 OwnPtr<WebServiceWorkerResponse> webResponse = createTestWebServiceWorkerRes
ponse(); |
| 93 webResponse->setResponseType(WebServiceWorkerResponseTypeDefault); | 93 webResponse->setResponseType(WebServiceWorkerResponseTypeDefault); |
| 94 Response* response = Response::create(getExecutionContext(), *webResponse); | 94 Response* response = Response::create(getScriptState(), *webResponse); |
| 95 | 95 |
| 96 Headers* responseHeaders = response->headers(); | 96 Headers* responseHeaders = response->headers(); |
| 97 TrackExceptionState exceptionState; | 97 TrackExceptionState exceptionState; |
| 98 EXPECT_STREQ("foop", responseHeaders->get("set-cookie", exceptionState).utf8
().data()); | 98 EXPECT_STREQ("foop", responseHeaders->get("set-cookie", exceptionState).utf8
().data()); |
| 99 EXPECT_STREQ("bar", responseHeaders->get("foo", exceptionState).utf8().data(
)); | 99 EXPECT_STREQ("bar", responseHeaders->get("foo", exceptionState).utf8().data(
)); |
| 100 EXPECT_STREQ("no-cache", responseHeaders->get("cache-control", exceptionStat
e).utf8().data()); | 100 EXPECT_STREQ("no-cache", responseHeaders->get("cache-control", exceptionStat
e).utf8().data()); |
| 101 EXPECT_FALSE(exceptionState.hadException()); | 101 EXPECT_FALSE(exceptionState.hadException()); |
| 102 } | 102 } |
| 103 | 103 |
| 104 TEST_F(ServiceWorkerResponseTest, FromWebServiceWorkerResponseBasic) | 104 TEST_F(ServiceWorkerResponseTest, FromWebServiceWorkerResponseBasic) |
| 105 { | 105 { |
| 106 OwnPtr<WebServiceWorkerResponse> webResponse = createTestWebServiceWorkerRes
ponse(); | 106 OwnPtr<WebServiceWorkerResponse> webResponse = createTestWebServiceWorkerRes
ponse(); |
| 107 webResponse->setResponseType(WebServiceWorkerResponseTypeBasic); | 107 webResponse->setResponseType(WebServiceWorkerResponseTypeBasic); |
| 108 Response* response = Response::create(getExecutionContext(), *webResponse); | 108 Response* response = Response::create(getScriptState(), *webResponse); |
| 109 | 109 |
| 110 Headers* responseHeaders = response->headers(); | 110 Headers* responseHeaders = response->headers(); |
| 111 TrackExceptionState exceptionState; | 111 TrackExceptionState exceptionState; |
| 112 EXPECT_STREQ("", responseHeaders->get("set-cookie", exceptionState).utf8().d
ata()); | 112 EXPECT_STREQ("", responseHeaders->get("set-cookie", exceptionState).utf8().d
ata()); |
| 113 EXPECT_STREQ("bar", responseHeaders->get("foo", exceptionState).utf8().data(
)); | 113 EXPECT_STREQ("bar", responseHeaders->get("foo", exceptionState).utf8().data(
)); |
| 114 EXPECT_STREQ("no-cache", responseHeaders->get("cache-control", exceptionStat
e).utf8().data()); | 114 EXPECT_STREQ("no-cache", responseHeaders->get("cache-control", exceptionStat
e).utf8().data()); |
| 115 EXPECT_FALSE(exceptionState.hadException()); | 115 EXPECT_FALSE(exceptionState.hadException()); |
| 116 } | 116 } |
| 117 | 117 |
| 118 TEST_F(ServiceWorkerResponseTest, FromWebServiceWorkerResponseCORS) | 118 TEST_F(ServiceWorkerResponseTest, FromWebServiceWorkerResponseCORS) |
| 119 { | 119 { |
| 120 OwnPtr<WebServiceWorkerResponse> webResponse = createTestWebServiceWorkerRes
ponse(); | 120 OwnPtr<WebServiceWorkerResponse> webResponse = createTestWebServiceWorkerRes
ponse(); |
| 121 webResponse->setResponseType(WebServiceWorkerResponseTypeCORS); | 121 webResponse->setResponseType(WebServiceWorkerResponseTypeCORS); |
| 122 Response* response = Response::create(getExecutionContext(), *webResponse); | 122 Response* response = Response::create(getScriptState(), *webResponse); |
| 123 | 123 |
| 124 Headers* responseHeaders = response->headers(); | 124 Headers* responseHeaders = response->headers(); |
| 125 TrackExceptionState exceptionState; | 125 TrackExceptionState exceptionState; |
| 126 EXPECT_STREQ("", responseHeaders->get("set-cookie", exceptionState).utf8().d
ata()); | 126 EXPECT_STREQ("", responseHeaders->get("set-cookie", exceptionState).utf8().d
ata()); |
| 127 EXPECT_STREQ("", responseHeaders->get("foo", exceptionState).utf8().data()); | 127 EXPECT_STREQ("", responseHeaders->get("foo", exceptionState).utf8().data()); |
| 128 EXPECT_STREQ("no-cache", responseHeaders->get("cache-control", exceptionStat
e).utf8().data()); | 128 EXPECT_STREQ("no-cache", responseHeaders->get("cache-control", exceptionStat
e).utf8().data()); |
| 129 EXPECT_FALSE(exceptionState.hadException()); | 129 EXPECT_FALSE(exceptionState.hadException()); |
| 130 } | 130 } |
| 131 | 131 |
| 132 TEST_F(ServiceWorkerResponseTest, FromWebServiceWorkerResponseOpaque) | 132 TEST_F(ServiceWorkerResponseTest, FromWebServiceWorkerResponseOpaque) |
| 133 { | 133 { |
| 134 OwnPtr<WebServiceWorkerResponse> webResponse = createTestWebServiceWorkerRes
ponse(); | 134 OwnPtr<WebServiceWorkerResponse> webResponse = createTestWebServiceWorkerRes
ponse(); |
| 135 webResponse->setResponseType(WebServiceWorkerResponseTypeOpaque); | 135 webResponse->setResponseType(WebServiceWorkerResponseTypeOpaque); |
| 136 Response* response = Response::create(getExecutionContext(), *webResponse); | 136 Response* response = Response::create(getScriptState(), *webResponse); |
| 137 | 137 |
| 138 Headers* responseHeaders = response->headers(); | 138 Headers* responseHeaders = response->headers(); |
| 139 TrackExceptionState exceptionState; | 139 TrackExceptionState exceptionState; |
| 140 EXPECT_STREQ("", responseHeaders->get("set-cookie", exceptionState).utf8().d
ata()); | 140 EXPECT_STREQ("", responseHeaders->get("set-cookie", exceptionState).utf8().d
ata()); |
| 141 EXPECT_STREQ("", responseHeaders->get("foo", exceptionState).utf8().data()); | 141 EXPECT_STREQ("", responseHeaders->get("foo", exceptionState).utf8().data()); |
| 142 EXPECT_STREQ("", responseHeaders->get("cache-control", exceptionState).utf8(
).data()); | 142 EXPECT_STREQ("", responseHeaders->get("cache-control", exceptionState).utf8(
).data()); |
| 143 EXPECT_FALSE(exceptionState.hadException()); | 143 EXPECT_FALSE(exceptionState.hadException()); |
| 144 } | 144 } |
| 145 | 145 |
| 146 void checkResponseStream(Response* response, bool checkResponseBodyStreamBuffer) | 146 void checkResponseStream(ScriptState* scriptState, Response* response, bool chec
kResponseBodyStreamBuffer) |
| 147 { | 147 { |
| 148 BodyStreamBuffer* originalInternal = response->internalBodyBuffer(); | 148 BodyStreamBuffer* originalInternal = response->internalBodyBuffer(); |
| 149 if (checkResponseBodyStreamBuffer) { | 149 if (checkResponseBodyStreamBuffer) { |
| 150 EXPECT_EQ(response->bodyBuffer(), originalInternal); | 150 EXPECT_EQ(response->bodyBuffer(), originalInternal); |
| 151 } else { | 151 } else { |
| 152 EXPECT_FALSE(response->bodyBuffer()); | 152 EXPECT_FALSE(response->bodyBuffer()); |
| 153 } | 153 } |
| 154 | 154 |
| 155 TrackExceptionState exceptionState; | 155 TrackExceptionState exceptionState; |
| 156 Response* clonedResponse = response->clone(exceptionState); | 156 Response* clonedResponse = response->clone(scriptState, exceptionState); |
| 157 EXPECT_FALSE(exceptionState.hadException()); | 157 EXPECT_FALSE(exceptionState.hadException()); |
| 158 | 158 |
| 159 if (!response->internalBodyBuffer()) | 159 if (!response->internalBodyBuffer()) |
| 160 FAIL() << "internalBodyBuffer() must not be null."; | 160 FAIL() << "internalBodyBuffer() must not be null."; |
| 161 if (!clonedResponse->internalBodyBuffer()) | 161 if (!clonedResponse->internalBodyBuffer()) |
| 162 FAIL() << "internalBodyBuffer() must not be null."; | 162 FAIL() << "internalBodyBuffer() must not be null."; |
| 163 EXPECT_TRUE(response->internalBodyBuffer()); | 163 EXPECT_TRUE(response->internalBodyBuffer()); |
| 164 EXPECT_TRUE(clonedResponse->internalBodyBuffer()); | 164 EXPECT_TRUE(clonedResponse->internalBodyBuffer()); |
| 165 EXPECT_TRUE(response->internalBodyBuffer()); | 165 EXPECT_TRUE(response->internalBodyBuffer()); |
| 166 EXPECT_TRUE(clonedResponse->internalBodyBuffer()); | 166 EXPECT_TRUE(clonedResponse->internalBodyBuffer()); |
| 167 EXPECT_NE(response->internalBodyBuffer(), originalInternal); | 167 EXPECT_NE(response->internalBodyBuffer(), originalInternal); |
| 168 EXPECT_NE(clonedResponse->internalBodyBuffer(), originalInternal); | 168 EXPECT_NE(clonedResponse->internalBodyBuffer(), originalInternal); |
| 169 EXPECT_NE(response->internalBodyBuffer(), clonedResponse->internalBodyBuffer
()); | 169 EXPECT_NE(response->internalBodyBuffer(), clonedResponse->internalBodyBuffer
()); |
| 170 if (checkResponseBodyStreamBuffer) { | 170 if (checkResponseBodyStreamBuffer) { |
| 171 EXPECT_EQ(response->bodyBuffer(), response->internalBodyBuffer()); | 171 EXPECT_EQ(response->bodyBuffer(), response->internalBodyBuffer()); |
| 172 EXPECT_EQ(clonedResponse->bodyBuffer(), clonedResponse->internalBodyBuff
er()); | 172 EXPECT_EQ(clonedResponse->bodyBuffer(), clonedResponse->internalBodyBuff
er()); |
| 173 } else { | 173 } else { |
| 174 EXPECT_FALSE(response->bodyBuffer()); | 174 EXPECT_FALSE(response->bodyBuffer()); |
| 175 EXPECT_FALSE(clonedResponse->bodyBuffer()); | 175 EXPECT_FALSE(clonedResponse->bodyBuffer()); |
| 176 } | 176 } |
| 177 DataConsumerHandleTestUtil::MockFetchDataLoaderClient* client1 = new DataCon
sumerHandleTestUtil::MockFetchDataLoaderClient(); | 177 DataConsumerHandleTestUtil::MockFetchDataLoaderClient* client1 = new DataCon
sumerHandleTestUtil::MockFetchDataLoaderClient(); |
| 178 DataConsumerHandleTestUtil::MockFetchDataLoaderClient* client2 = new DataCon
sumerHandleTestUtil::MockFetchDataLoaderClient(); | 178 DataConsumerHandleTestUtil::MockFetchDataLoaderClient* client2 = new DataCon
sumerHandleTestUtil::MockFetchDataLoaderClient(); |
| 179 EXPECT_CALL(*client1, didFetchDataLoadedString(String("Hello, world"))); | 179 EXPECT_CALL(*client1, didFetchDataLoadedString(String("Hello, world"))); |
| 180 EXPECT_CALL(*client2, didFetchDataLoadedString(String("Hello, world"))); | 180 EXPECT_CALL(*client2, didFetchDataLoadedString(String("Hello, world"))); |
| 181 | 181 |
| 182 response->internalBodyBuffer()->startLoading(response->getExecutionContext()
, FetchDataLoader::createLoaderAsString(), client1); | 182 response->internalBodyBuffer()->startLoading(FetchDataLoader::createLoaderAs
String(), client1); |
| 183 clonedResponse->internalBodyBuffer()->startLoading(response->getExecutionCon
text(), FetchDataLoader::createLoaderAsString(), client2); | 183 clonedResponse->internalBodyBuffer()->startLoading(FetchDataLoader::createLo
aderAsString(), client2); |
| 184 blink::testing::runPendingTasks(); | 184 blink::testing::runPendingTasks(); |
| 185 } | 185 } |
| 186 | 186 |
| 187 BodyStreamBuffer* createHelloWorldBuffer() | 187 BodyStreamBuffer* createHelloWorldBuffer(ScriptState* scriptState) |
| 188 { | 188 { |
| 189 using Command = DataConsumerHandleTestUtil::Command; | 189 using Command = DataConsumerHandleTestUtil::Command; |
| 190 OwnPtr<DataConsumerHandleTestUtil::ReplayingHandle> src(DataConsumerHandleTe
stUtil::ReplayingHandle::create()); | 190 OwnPtr<DataConsumerHandleTestUtil::ReplayingHandle> src(DataConsumerHandleTe
stUtil::ReplayingHandle::create()); |
| 191 src->add(Command(Command::Data, "Hello, ")); | 191 src->add(Command(Command::Data, "Hello, ")); |
| 192 src->add(Command(Command::Data, "world")); | 192 src->add(Command(Command::Data, "world")); |
| 193 src->add(Command(Command::Done)); | 193 src->add(Command(Command::Done)); |
| 194 return new BodyStreamBuffer(createFetchDataConsumerHandleFromWebHandle(src.r
elease())); | 194 return new BodyStreamBuffer(scriptState, createFetchDataConsumerHandleFromWe
bHandle(src.release())); |
| 195 } | 195 } |
| 196 | 196 |
| 197 TEST_F(ServiceWorkerResponseTest, BodyStreamBufferCloneDefault) | 197 TEST_F(ServiceWorkerResponseTest, BodyStreamBufferCloneDefault) |
| 198 { | 198 { |
| 199 BodyStreamBuffer* buffer = createHelloWorldBuffer(); | 199 BodyStreamBuffer* buffer = createHelloWorldBuffer(getScriptState()); |
| 200 FetchResponseData* fetchResponseData = FetchResponseData::createWithBuffer(b
uffer); | 200 FetchResponseData* fetchResponseData = FetchResponseData::createWithBuffer(b
uffer); |
| 201 fetchResponseData->setURL(KURL(ParsedURLString, "http://www.response.com")); | 201 fetchResponseData->setURL(KURL(ParsedURLString, "http://www.response.com")); |
| 202 Response* response = Response::create(getExecutionContext(), fetchResponseDa
ta); | 202 Response* response = Response::create(getExecutionContext(), fetchResponseDa
ta); |
| 203 EXPECT_EQ(response->internalBodyBuffer(), buffer); | 203 EXPECT_EQ(response->internalBodyBuffer(), buffer); |
| 204 checkResponseStream(response, true); | 204 checkResponseStream(getScriptState(), response, true); |
| 205 } | 205 } |
| 206 | 206 |
| 207 TEST_F(ServiceWorkerResponseTest, BodyStreamBufferCloneBasic) | 207 TEST_F(ServiceWorkerResponseTest, BodyStreamBufferCloneBasic) |
| 208 { | 208 { |
| 209 BodyStreamBuffer* buffer = createHelloWorldBuffer(); | 209 BodyStreamBuffer* buffer = createHelloWorldBuffer(getScriptState()); |
| 210 FetchResponseData* fetchResponseData = FetchResponseData::createWithBuffer(b
uffer); | 210 FetchResponseData* fetchResponseData = FetchResponseData::createWithBuffer(b
uffer); |
| 211 fetchResponseData->setURL(KURL(ParsedURLString, "http://www.response.com")); | 211 fetchResponseData->setURL(KURL(ParsedURLString, "http://www.response.com")); |
| 212 fetchResponseData = fetchResponseData->createBasicFilteredResponse(); | 212 fetchResponseData = fetchResponseData->createBasicFilteredResponse(); |
| 213 Response* response = Response::create(getExecutionContext(), fetchResponseDa
ta); | 213 Response* response = Response::create(getExecutionContext(), fetchResponseDa
ta); |
| 214 EXPECT_EQ(response->internalBodyBuffer(), buffer); | 214 EXPECT_EQ(response->internalBodyBuffer(), buffer); |
| 215 checkResponseStream(response, true); | 215 checkResponseStream(getScriptState(), response, true); |
| 216 } | 216 } |
| 217 | 217 |
| 218 TEST_F(ServiceWorkerResponseTest, BodyStreamBufferCloneCORS) | 218 TEST_F(ServiceWorkerResponseTest, BodyStreamBufferCloneCORS) |
| 219 { | 219 { |
| 220 BodyStreamBuffer* buffer = createHelloWorldBuffer(); | 220 BodyStreamBuffer* buffer = createHelloWorldBuffer(getScriptState()); |
| 221 FetchResponseData* fetchResponseData = FetchResponseData::createWithBuffer(b
uffer); | 221 FetchResponseData* fetchResponseData = FetchResponseData::createWithBuffer(b
uffer); |
| 222 fetchResponseData->setURL(KURL(ParsedURLString, "http://www.response.com")); | 222 fetchResponseData->setURL(KURL(ParsedURLString, "http://www.response.com")); |
| 223 fetchResponseData = fetchResponseData->createCORSFilteredResponse(); | 223 fetchResponseData = fetchResponseData->createCORSFilteredResponse(); |
| 224 Response* response = Response::create(getExecutionContext(), fetchResponseDa
ta); | 224 Response* response = Response::create(getExecutionContext(), fetchResponseDa
ta); |
| 225 EXPECT_EQ(response->internalBodyBuffer(), buffer); | 225 EXPECT_EQ(response->internalBodyBuffer(), buffer); |
| 226 checkResponseStream(response, true); | 226 checkResponseStream(getScriptState(), response, true); |
| 227 } | 227 } |
| 228 | 228 |
| 229 TEST_F(ServiceWorkerResponseTest, BodyStreamBufferCloneOpaque) | 229 TEST_F(ServiceWorkerResponseTest, BodyStreamBufferCloneOpaque) |
| 230 { | 230 { |
| 231 BodyStreamBuffer* buffer = createHelloWorldBuffer(); | 231 BodyStreamBuffer* buffer = createHelloWorldBuffer(getScriptState()); |
| 232 FetchResponseData* fetchResponseData = FetchResponseData::createWithBuffer(b
uffer); | 232 FetchResponseData* fetchResponseData = FetchResponseData::createWithBuffer(b
uffer); |
| 233 fetchResponseData->setURL(KURL(ParsedURLString, "http://www.response.com")); | 233 fetchResponseData->setURL(KURL(ParsedURLString, "http://www.response.com")); |
| 234 fetchResponseData = fetchResponseData->createOpaqueFilteredResponse(); | 234 fetchResponseData = fetchResponseData->createOpaqueFilteredResponse(); |
| 235 Response* response = Response::create(getExecutionContext(), fetchResponseDa
ta); | 235 Response* response = Response::create(getExecutionContext(), fetchResponseDa
ta); |
| 236 EXPECT_EQ(response->internalBodyBuffer(), buffer); | 236 EXPECT_EQ(response->internalBodyBuffer(), buffer); |
| 237 checkResponseStream(response, false); | 237 checkResponseStream(getScriptState(), response, false); |
| 238 } | 238 } |
| 239 | 239 |
| 240 TEST_F(ServiceWorkerResponseTest, BodyStreamBufferCloneError) | 240 TEST_F(ServiceWorkerResponseTest, BodyStreamBufferCloneError) |
| 241 { | 241 { |
| 242 BodyStreamBuffer* buffer = new BodyStreamBuffer(createFetchDataConsumerHandl
eFromWebHandle(createUnexpectedErrorDataConsumerHandle())); | 242 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), createFetc
hDataConsumerHandleFromWebHandle(createUnexpectedErrorDataConsumerHandle())); |
| 243 FetchResponseData* fetchResponseData = FetchResponseData::createWithBuffer(b
uffer); | 243 FetchResponseData* fetchResponseData = FetchResponseData::createWithBuffer(b
uffer); |
| 244 fetchResponseData->setURL(KURL(ParsedURLString, "http://www.response.com")); | 244 fetchResponseData->setURL(KURL(ParsedURLString, "http://www.response.com")); |
| 245 Response* response = Response::create(getExecutionContext(), fetchResponseDa
ta); | 245 Response* response = Response::create(getExecutionContext(), fetchResponseDa
ta); |
| 246 TrackExceptionState exceptionState; | 246 TrackExceptionState exceptionState; |
| 247 Response* clonedResponse = response->clone(exceptionState); | 247 Response* clonedResponse = response->clone(getScriptState(), exceptionState)
; |
| 248 EXPECT_FALSE(exceptionState.hadException()); | 248 EXPECT_FALSE(exceptionState.hadException()); |
| 249 | 249 |
| 250 DataConsumerHandleTestUtil::MockFetchDataLoaderClient* client1 = new DataCon
sumerHandleTestUtil::MockFetchDataLoaderClient(); | 250 DataConsumerHandleTestUtil::MockFetchDataLoaderClient* client1 = new DataCon
sumerHandleTestUtil::MockFetchDataLoaderClient(); |
| 251 DataConsumerHandleTestUtil::MockFetchDataLoaderClient* client2 = new DataCon
sumerHandleTestUtil::MockFetchDataLoaderClient(); | 251 DataConsumerHandleTestUtil::MockFetchDataLoaderClient* client2 = new DataCon
sumerHandleTestUtil::MockFetchDataLoaderClient(); |
| 252 EXPECT_CALL(*client1, didFetchDataLoadFailed()); | 252 EXPECT_CALL(*client1, didFetchDataLoadFailed()); |
| 253 EXPECT_CALL(*client2, didFetchDataLoadFailed()); | 253 EXPECT_CALL(*client2, didFetchDataLoadFailed()); |
| 254 | 254 |
| 255 response->internalBodyBuffer()->startLoading(response->getExecutionContext()
, FetchDataLoader::createLoaderAsString(), client1); | 255 response->internalBodyBuffer()->startLoading(FetchDataLoader::createLoaderAs
String(), client1); |
| 256 clonedResponse->internalBodyBuffer()->startLoading(response->getExecutionCon
text(), FetchDataLoader::createLoaderAsString(), client2); | 256 clonedResponse->internalBodyBuffer()->startLoading(FetchDataLoader::createLo
aderAsString(), client2); |
| 257 blink::testing::runPendingTasks(); | 257 blink::testing::runPendingTasks(); |
| 258 } | 258 } |
| 259 | 259 |
| 260 } // namespace | 260 } // namespace |
| 261 } // namespace blink | 261 } // namespace blink |
| OLD | NEW |