Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(62)

Side by Side Diff: third_party/WebKit/Source/modules/fetch/ResponseTest.cpp

Issue 2080623002: Revert "Remove OwnPtr from Blink." (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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"
11 #include "core/testing/DummyPageHolder.h" 11 #include "core/testing/DummyPageHolder.h"
12 #include "modules/fetch/BodyStreamBuffer.h" 12 #include "modules/fetch/BodyStreamBuffer.h"
13 #include "modules/fetch/DataConsumerHandleTestUtil.h" 13 #include "modules/fetch/DataConsumerHandleTestUtil.h"
14 #include "modules/fetch/DataConsumerHandleUtil.h" 14 #include "modules/fetch/DataConsumerHandleUtil.h"
15 #include "modules/fetch/FetchResponseData.h" 15 #include "modules/fetch/FetchResponseData.h"
16 #include "platform/blob/BlobData.h" 16 #include "platform/blob/BlobData.h"
17 #include "platform/testing/UnitTestHelpers.h" 17 #include "platform/testing/UnitTestHelpers.h"
18 #include "public/platform/modules/serviceworker/WebServiceWorkerResponse.h" 18 #include "public/platform/modules/serviceworker/WebServiceWorkerResponse.h"
19 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
20 #include "wtf/PtrUtil.h"
21 #include <memory>
22 20
23 namespace blink { 21 namespace blink {
24 namespace { 22 namespace {
25 23
26 std::unique_ptr<WebServiceWorkerResponse> createTestWebServiceWorkerResponse() 24 PassOwnPtr<WebServiceWorkerResponse> createTestWebServiceWorkerResponse()
27 { 25 {
28 const KURL url(ParsedURLString, "http://www.webresponse.com/"); 26 const KURL url(ParsedURLString, "http://www.webresponse.com/");
29 const unsigned short status = 200; 27 const unsigned short status = 200;
30 const String statusText = "the best status text"; 28 const String statusText = "the best status text";
31 struct { 29 struct {
32 const char* key; 30 const char* key;
33 const char* value; 31 const char* value;
34 } headers[] = { { "cache-control", "no-cache" }, { "set-cookie", "foop" }, { "foo", "bar" }, { 0, 0 } }; 32 } headers[] = { { "cache-control", "no-cache" }, { "set-cookie", "foop" }, { "foo", "bar" }, { 0, 0 } };
35 33
36 std::unique_ptr<WebServiceWorkerResponse> webResponse = wrapUnique(new WebSe rviceWorkerResponse()); 34 OwnPtr<WebServiceWorkerResponse> webResponse = adoptPtr(new WebServiceWorker Response());
37 webResponse->setURL(url); 35 webResponse->setURL(url);
38 webResponse->setStatus(status); 36 webResponse->setStatus(status);
39 webResponse->setStatusText(statusText); 37 webResponse->setStatusText(statusText);
40 webResponse->setResponseType(WebServiceWorkerResponseTypeDefault); 38 webResponse->setResponseType(WebServiceWorkerResponseTypeDefault);
41 for (int i = 0; headers[i].key; ++i) 39 for (int i = 0; headers[i].key; ++i)
42 webResponse->setHeader(WebString::fromUTF8(headers[i].key), WebString::f romUTF8(headers[i].value)); 40 webResponse->setHeader(WebString::fromUTF8(headers[i].key), WebString::f romUTF8(headers[i].value));
43 return webResponse; 41 return webResponse;
44 } 42 }
45 43
46 class ServiceWorkerResponseTest : public ::testing::Test { 44 class ServiceWorkerResponseTest : public ::testing::Test {
47 public: 45 public:
48 ServiceWorkerResponseTest() 46 ServiceWorkerResponseTest()
49 : m_page(DummyPageHolder::create(IntSize(1, 1))) { } 47 : m_page(DummyPageHolder::create(IntSize(1, 1))) { }
50 48
51 ScriptState* getScriptState() { return ScriptState::forMainWorld(m_page->doc ument().frame()); } 49 ScriptState* getScriptState() { return ScriptState::forMainWorld(m_page->doc ument().frame()); }
52 ExecutionContext* getExecutionContext() { return getScriptState()->getExecut ionContext(); } 50 ExecutionContext* getExecutionContext() { return getScriptState()->getExecut ionContext(); }
53 51
54 private: 52 private:
55 std::unique_ptr<DummyPageHolder> m_page; 53 OwnPtr<DummyPageHolder> m_page;
56 }; 54 };
57 55
58 56
59 TEST_F(ServiceWorkerResponseTest, FromFetchResponseData) 57 TEST_F(ServiceWorkerResponseTest, FromFetchResponseData)
60 { 58 {
61 const KURL url(ParsedURLString, "http://www.response.com"); 59 const KURL url(ParsedURLString, "http://www.response.com");
62 60
63 FetchResponseData* fetchResponseData = FetchResponseData::create(); 61 FetchResponseData* fetchResponseData = FetchResponseData::create();
64 fetchResponseData->setURL(url); 62 fetchResponseData->setURL(url);
65 63
66 Response* response = Response::create(getExecutionContext(), fetchResponseDa ta); 64 Response* response = Response::create(getExecutionContext(), fetchResponseDa ta);
67 ASSERT(response); 65 ASSERT(response);
68 EXPECT_EQ(url, response->url()); 66 EXPECT_EQ(url, response->url());
69 } 67 }
70 68
71 TEST_F(ServiceWorkerResponseTest, FromWebServiceWorkerResponse) 69 TEST_F(ServiceWorkerResponseTest, FromWebServiceWorkerResponse)
72 { 70 {
73 std::unique_ptr<WebServiceWorkerResponse> webResponse = createTestWebService WorkerResponse(); 71 OwnPtr<WebServiceWorkerResponse> webResponse = createTestWebServiceWorkerRes ponse();
74 Response* response = Response::create(getScriptState(), *webResponse); 72 Response* response = Response::create(getScriptState(), *webResponse);
75 ASSERT(response); 73 ASSERT(response);
76 EXPECT_EQ(webResponse->url(), response->url()); 74 EXPECT_EQ(webResponse->url(), response->url());
77 EXPECT_EQ(webResponse->status(), response->status()); 75 EXPECT_EQ(webResponse->status(), response->status());
78 EXPECT_STREQ(webResponse->statusText().utf8().c_str(), response->statusText( ).utf8().data()); 76 EXPECT_STREQ(webResponse->statusText().utf8().c_str(), response->statusText( ).utf8().data());
79 77
80 Headers* responseHeaders = response->headers(); 78 Headers* responseHeaders = response->headers();
81 79
82 WebVector<WebString> keys = webResponse->getHeaderKeys(); 80 WebVector<WebString> keys = webResponse->getHeaderKeys();
83 EXPECT_EQ(keys.size(), responseHeaders->headerList()->size()); 81 EXPECT_EQ(keys.size(), responseHeaders->headerList()->size());
84 for (size_t i = 0, max = keys.size(); i < max; ++i) { 82 for (size_t i = 0, max = keys.size(); i < max; ++i) {
85 WebString key = keys[i]; 83 WebString key = keys[i];
86 TrackExceptionState exceptionState; 84 TrackExceptionState exceptionState;
87 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());
88 EXPECT_FALSE(exceptionState.hadException()); 86 EXPECT_FALSE(exceptionState.hadException());
89 } 87 }
90 } 88 }
91 89
92 TEST_F(ServiceWorkerResponseTest, FromWebServiceWorkerResponseDefault) 90 TEST_F(ServiceWorkerResponseTest, FromWebServiceWorkerResponseDefault)
93 { 91 {
94 std::unique_ptr<WebServiceWorkerResponse> webResponse = createTestWebService WorkerResponse(); 92 OwnPtr<WebServiceWorkerResponse> webResponse = createTestWebServiceWorkerRes ponse();
95 webResponse->setResponseType(WebServiceWorkerResponseTypeDefault); 93 webResponse->setResponseType(WebServiceWorkerResponseTypeDefault);
96 Response* response = Response::create(getScriptState(), *webResponse); 94 Response* response = Response::create(getScriptState(), *webResponse);
97 95
98 Headers* responseHeaders = response->headers(); 96 Headers* responseHeaders = response->headers();
99 TrackExceptionState exceptionState; 97 TrackExceptionState exceptionState;
100 EXPECT_STREQ("foop", responseHeaders->get("set-cookie", exceptionState).utf8 ().data()); 98 EXPECT_STREQ("foop", responseHeaders->get("set-cookie", exceptionState).utf8 ().data());
101 EXPECT_STREQ("bar", responseHeaders->get("foo", exceptionState).utf8().data( )); 99 EXPECT_STREQ("bar", responseHeaders->get("foo", exceptionState).utf8().data( ));
102 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());
103 EXPECT_FALSE(exceptionState.hadException()); 101 EXPECT_FALSE(exceptionState.hadException());
104 } 102 }
105 103
106 TEST_F(ServiceWorkerResponseTest, FromWebServiceWorkerResponseBasic) 104 TEST_F(ServiceWorkerResponseTest, FromWebServiceWorkerResponseBasic)
107 { 105 {
108 std::unique_ptr<WebServiceWorkerResponse> webResponse = createTestWebService WorkerResponse(); 106 OwnPtr<WebServiceWorkerResponse> webResponse = createTestWebServiceWorkerRes ponse();
109 webResponse->setResponseType(WebServiceWorkerResponseTypeBasic); 107 webResponse->setResponseType(WebServiceWorkerResponseTypeBasic);
110 Response* response = Response::create(getScriptState(), *webResponse); 108 Response* response = Response::create(getScriptState(), *webResponse);
111 109
112 Headers* responseHeaders = response->headers(); 110 Headers* responseHeaders = response->headers();
113 TrackExceptionState exceptionState; 111 TrackExceptionState exceptionState;
114 EXPECT_STREQ("", responseHeaders->get("set-cookie", exceptionState).utf8().d ata()); 112 EXPECT_STREQ("", responseHeaders->get("set-cookie", exceptionState).utf8().d ata());
115 EXPECT_STREQ("bar", responseHeaders->get("foo", exceptionState).utf8().data( )); 113 EXPECT_STREQ("bar", responseHeaders->get("foo", exceptionState).utf8().data( ));
116 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());
117 EXPECT_FALSE(exceptionState.hadException()); 115 EXPECT_FALSE(exceptionState.hadException());
118 } 116 }
119 117
120 TEST_F(ServiceWorkerResponseTest, FromWebServiceWorkerResponseCORS) 118 TEST_F(ServiceWorkerResponseTest, FromWebServiceWorkerResponseCORS)
121 { 119 {
122 std::unique_ptr<WebServiceWorkerResponse> webResponse = createTestWebService WorkerResponse(); 120 OwnPtr<WebServiceWorkerResponse> webResponse = createTestWebServiceWorkerRes ponse();
123 webResponse->setResponseType(WebServiceWorkerResponseTypeCORS); 121 webResponse->setResponseType(WebServiceWorkerResponseTypeCORS);
124 Response* response = Response::create(getScriptState(), *webResponse); 122 Response* response = Response::create(getScriptState(), *webResponse);
125 123
126 Headers* responseHeaders = response->headers(); 124 Headers* responseHeaders = response->headers();
127 TrackExceptionState exceptionState; 125 TrackExceptionState exceptionState;
128 EXPECT_STREQ("", responseHeaders->get("set-cookie", exceptionState).utf8().d ata()); 126 EXPECT_STREQ("", responseHeaders->get("set-cookie", exceptionState).utf8().d ata());
129 EXPECT_STREQ("", responseHeaders->get("foo", exceptionState).utf8().data()); 127 EXPECT_STREQ("", responseHeaders->get("foo", exceptionState).utf8().data());
130 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());
131 EXPECT_FALSE(exceptionState.hadException()); 129 EXPECT_FALSE(exceptionState.hadException());
132 } 130 }
133 131
134 TEST_F(ServiceWorkerResponseTest, FromWebServiceWorkerResponseOpaque) 132 TEST_F(ServiceWorkerResponseTest, FromWebServiceWorkerResponseOpaque)
135 { 133 {
136 std::unique_ptr<WebServiceWorkerResponse> webResponse = createTestWebService WorkerResponse(); 134 OwnPtr<WebServiceWorkerResponse> webResponse = createTestWebServiceWorkerRes ponse();
137 webResponse->setResponseType(WebServiceWorkerResponseTypeOpaque); 135 webResponse->setResponseType(WebServiceWorkerResponseTypeOpaque);
138 Response* response = Response::create(getScriptState(), *webResponse); 136 Response* response = Response::create(getScriptState(), *webResponse);
139 137
140 Headers* responseHeaders = response->headers(); 138 Headers* responseHeaders = response->headers();
141 TrackExceptionState exceptionState; 139 TrackExceptionState exceptionState;
142 EXPECT_STREQ("", responseHeaders->get("set-cookie", exceptionState).utf8().d ata()); 140 EXPECT_STREQ("", responseHeaders->get("set-cookie", exceptionState).utf8().d ata());
143 EXPECT_STREQ("", responseHeaders->get("foo", exceptionState).utf8().data()); 141 EXPECT_STREQ("", responseHeaders->get("foo", exceptionState).utf8().data());
144 EXPECT_STREQ("", responseHeaders->get("cache-control", exceptionState).utf8( ).data()); 142 EXPECT_STREQ("", responseHeaders->get("cache-control", exceptionState).utf8( ).data());
145 EXPECT_FALSE(exceptionState.hadException()); 143 EXPECT_FALSE(exceptionState.hadException());
146 } 144 }
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 EXPECT_CALL(*client2, didFetchDataLoadedString(String("Hello, world"))); 180 EXPECT_CALL(*client2, didFetchDataLoadedString(String("Hello, world")));
183 181
184 response->internalBodyBuffer()->startLoading(FetchDataLoader::createLoaderAs String(), client1); 182 response->internalBodyBuffer()->startLoading(FetchDataLoader::createLoaderAs String(), client1);
185 clonedResponse->internalBodyBuffer()->startLoading(FetchDataLoader::createLo aderAsString(), client2); 183 clonedResponse->internalBodyBuffer()->startLoading(FetchDataLoader::createLo aderAsString(), client2);
186 blink::testing::runPendingTasks(); 184 blink::testing::runPendingTasks();
187 } 185 }
188 186
189 BodyStreamBuffer* createHelloWorldBuffer(ScriptState* scriptState) 187 BodyStreamBuffer* createHelloWorldBuffer(ScriptState* scriptState)
190 { 188 {
191 using Command = DataConsumerHandleTestUtil::Command; 189 using Command = DataConsumerHandleTestUtil::Command;
192 std::unique_ptr<DataConsumerHandleTestUtil::ReplayingHandle> src(DataConsume rHandleTestUtil::ReplayingHandle::create()); 190 OwnPtr<DataConsumerHandleTestUtil::ReplayingHandle> src(DataConsumerHandleTe stUtil::ReplayingHandle::create());
193 src->add(Command(Command::Data, "Hello, ")); 191 src->add(Command(Command::Data, "Hello, "));
194 src->add(Command(Command::Data, "world")); 192 src->add(Command(Command::Data, "world"));
195 src->add(Command(Command::Done)); 193 src->add(Command(Command::Done));
196 return new BodyStreamBuffer(scriptState, createFetchDataConsumerHandleFromWe bHandle(std::move(src))); 194 return new BodyStreamBuffer(scriptState, createFetchDataConsumerHandleFromWe bHandle(std::move(src)));
197 } 195 }
198 196
199 TEST_F(ServiceWorkerResponseTest, BodyStreamBufferCloneDefault) 197 TEST_F(ServiceWorkerResponseTest, BodyStreamBufferCloneDefault)
200 { 198 {
201 BodyStreamBuffer* buffer = createHelloWorldBuffer(getScriptState()); 199 BodyStreamBuffer* buffer = createHelloWorldBuffer(getScriptState());
202 FetchResponseData* fetchResponseData = FetchResponseData::createWithBuffer(b uffer); 200 FetchResponseData* fetchResponseData = FetchResponseData::createWithBuffer(b uffer);
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 EXPECT_CALL(*client1, didFetchDataLoadFailed()); 252 EXPECT_CALL(*client1, didFetchDataLoadFailed());
255 EXPECT_CALL(*client2, didFetchDataLoadFailed()); 253 EXPECT_CALL(*client2, didFetchDataLoadFailed());
256 254
257 response->internalBodyBuffer()->startLoading(FetchDataLoader::createLoaderAs String(), client1); 255 response->internalBodyBuffer()->startLoading(FetchDataLoader::createLoaderAs String(), client1);
258 clonedResponse->internalBodyBuffer()->startLoading(FetchDataLoader::createLo aderAsString(), client2); 256 clonedResponse->internalBodyBuffer()->startLoading(FetchDataLoader::createLo aderAsString(), client2);
259 blink::testing::runPendingTasks(); 257 blink::testing::runPendingTasks();
260 } 258 }
261 259
262 } // namespace 260 } // namespace
263 } // namespace blink 261 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/modules/fetch/Response.cpp ('k') | third_party/WebKit/Source/modules/filesystem/DOMFileSystem.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698