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

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

Issue 1983783002: Remove OwnPtr::release() calls in modules/ (part 1). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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/BodyStreamBuffer.h" 5 #include "modules/fetch/BodyStreamBuffer.h"
6 6
7 #include "core/html/FormData.h" 7 #include "core/html/FormData.h"
8 #include "core/testing/DummyPageHolder.h" 8 #include "core/testing/DummyPageHolder.h"
9 #include "modules/fetch/DataConsumerHandleTestUtil.h" 9 #include "modules/fetch/DataConsumerHandleTestUtil.h"
10 #include "modules/fetch/FetchBlobDataConsumerHandle.h" 10 #include "modules/fetch/FetchBlobDataConsumerHandle.h"
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 ScriptState* getScriptState() { return ScriptState::forMainWorld(m_page->doc ument().frame()); } 50 ScriptState* getScriptState() { return ScriptState::forMainWorld(m_page->doc ument().frame()); }
51 ExecutionContext* getExecutionContext() { return &m_page->document(); } 51 ExecutionContext* getExecutionContext() { return &m_page->document(); }
52 52
53 OwnPtr<DummyPageHolder> m_page; 53 OwnPtr<DummyPageHolder> m_page;
54 }; 54 };
55 55
56 TEST_F(BodyStreamBufferTest, ReleaseHandle) 56 TEST_F(BodyStreamBufferTest, ReleaseHandle)
57 { 57 {
58 OwnPtr<FetchDataConsumerHandle> handle = createFetchDataConsumerHandleFromWe bHandle(createWaitingDataConsumerHandle()); 58 OwnPtr<FetchDataConsumerHandle> handle = createFetchDataConsumerHandleFromWe bHandle(createWaitingDataConsumerHandle());
59 FetchDataConsumerHandle* rawHandle = handle.get(); 59 FetchDataConsumerHandle* rawHandle = handle.get();
60 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), handle.rel ease()); 60 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), std::move( handle));
61 61
62 EXPECT_FALSE(buffer->hasPendingActivity()); 62 EXPECT_FALSE(buffer->hasPendingActivity());
63 EXPECT_FALSE(buffer->isStreamLocked()); 63 EXPECT_FALSE(buffer->isStreamLocked());
64 EXPECT_FALSE(buffer->isStreamDisturbed()); 64 EXPECT_FALSE(buffer->isStreamDisturbed());
65 EXPECT_TRUE(buffer->isStreamReadable()); 65 EXPECT_TRUE(buffer->isStreamReadable());
66 66
67 OwnPtr<FetchDataConsumerHandle> handle2 = buffer->releaseHandle(); 67 OwnPtr<FetchDataConsumerHandle> handle2 = buffer->releaseHandle();
68 68
69 ASSERT_EQ(rawHandle, handle2.get()); 69 ASSERT_EQ(rawHandle, handle2.get());
70 EXPECT_TRUE(buffer->isStreamLocked()); 70 EXPECT_TRUE(buffer->isStreamLocked());
71 EXPECT_TRUE(buffer->isStreamDisturbed()); 71 EXPECT_TRUE(buffer->isStreamDisturbed());
72 EXPECT_TRUE(buffer->isStreamClosed()); 72 EXPECT_TRUE(buffer->isStreamClosed());
73 } 73 }
74 74
75 TEST_F(BodyStreamBufferTest, DrainAsBlobDataHandle) 75 TEST_F(BodyStreamBufferTest, DrainAsBlobDataHandle)
76 { 76 {
77 OwnPtr<BlobData> data = BlobData::create(); 77 OwnPtr<BlobData> data = BlobData::create();
78 data->appendText("hello", false); 78 data->appendText("hello", false);
79 auto size = data->length(); 79 auto size = data->length();
80 RefPtr<BlobDataHandle> blobDataHandle = BlobDataHandle::create(data.release( ), size); 80 RefPtr<BlobDataHandle> blobDataHandle = BlobDataHandle::create(std::move(dat a), size);
81 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), FetchBlobD ataConsumerHandle::create(getExecutionContext(), blobDataHandle, new FakeLoaderF actory)); 81 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), FetchBlobD ataConsumerHandle::create(getExecutionContext(), blobDataHandle, new FakeLoaderF actory));
82 82
83 EXPECT_FALSE(buffer->isStreamLocked()); 83 EXPECT_FALSE(buffer->isStreamLocked());
84 EXPECT_FALSE(buffer->isStreamDisturbed()); 84 EXPECT_FALSE(buffer->isStreamDisturbed());
85 EXPECT_FALSE(buffer->hasPendingActivity()); 85 EXPECT_FALSE(buffer->hasPendingActivity());
86 RefPtr<BlobDataHandle> outputBlobDataHandle = buffer->drainAsBlobDataHandle( FetchDataConsumerHandle::Reader::AllowBlobWithInvalidSize); 86 RefPtr<BlobDataHandle> outputBlobDataHandle = buffer->drainAsBlobDataHandle( FetchDataConsumerHandle::Reader::AllowBlobWithInvalidSize);
87 87
88 EXPECT_TRUE(buffer->isStreamLocked()); 88 EXPECT_TRUE(buffer->isStreamLocked());
89 EXPECT_TRUE(buffer->isStreamDisturbed()); 89 EXPECT_TRUE(buffer->isStreamDisturbed());
90 EXPECT_FALSE(buffer->hasPendingActivity()); 90 EXPECT_FALSE(buffer->hasPendingActivity());
91 EXPECT_EQ(blobDataHandle, outputBlobDataHandle); 91 EXPECT_EQ(blobDataHandle, outputBlobDataHandle);
92 } 92 }
93 93
94 TEST_F(BodyStreamBufferTest, DrainAsBlobDataHandleReturnsNull) 94 TEST_F(BodyStreamBufferTest, DrainAsBlobDataHandleReturnsNull)
95 { 95 {
96 // This handle is not drainable. 96 // This handle is not drainable.
97 OwnPtr<FetchDataConsumerHandle> handle = createFetchDataConsumerHandleFromWe bHandle(createWaitingDataConsumerHandle()); 97 OwnPtr<FetchDataConsumerHandle> handle = createFetchDataConsumerHandleFromWe bHandle(createWaitingDataConsumerHandle());
98 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), handle.rel ease()); 98 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), std::move( handle));
99 99
100 EXPECT_FALSE(buffer->isStreamLocked()); 100 EXPECT_FALSE(buffer->isStreamLocked());
101 EXPECT_FALSE(buffer->isStreamDisturbed()); 101 EXPECT_FALSE(buffer->isStreamDisturbed());
102 EXPECT_FALSE(buffer->hasPendingActivity()); 102 EXPECT_FALSE(buffer->hasPendingActivity());
103 103
104 EXPECT_FALSE(buffer->drainAsBlobDataHandle(FetchDataConsumerHandle::Reader:: AllowBlobWithInvalidSize)); 104 EXPECT_FALSE(buffer->drainAsBlobDataHandle(FetchDataConsumerHandle::Reader:: AllowBlobWithInvalidSize));
105 105
106 EXPECT_FALSE(buffer->isStreamLocked()); 106 EXPECT_FALSE(buffer->isStreamLocked());
107 EXPECT_FALSE(buffer->isStreamDisturbed()); 107 EXPECT_FALSE(buffer->isStreamDisturbed());
108 EXPECT_FALSE(buffer->hasPendingActivity()); 108 EXPECT_FALSE(buffer->hasPendingActivity());
(...skipping 16 matching lines...) Expand all
125 EXPECT_TRUE(buffer->isStreamLocked()); 125 EXPECT_TRUE(buffer->isStreamLocked());
126 EXPECT_TRUE(buffer->isStreamDisturbed()); 126 EXPECT_TRUE(buffer->isStreamDisturbed());
127 EXPECT_FALSE(buffer->hasPendingActivity()); 127 EXPECT_FALSE(buffer->hasPendingActivity());
128 EXPECT_EQ(outputFormData->flattenToString(), inputFormData->flattenToString( )); 128 EXPECT_EQ(outputFormData->flattenToString(), inputFormData->flattenToString( ));
129 } 129 }
130 130
131 TEST_F(BodyStreamBufferTest, DrainAsFormDataReturnsNull) 131 TEST_F(BodyStreamBufferTest, DrainAsFormDataReturnsNull)
132 { 132 {
133 // This handle is not drainable. 133 // This handle is not drainable.
134 OwnPtr<FetchDataConsumerHandle> handle = createFetchDataConsumerHandleFromWe bHandle(createWaitingDataConsumerHandle()); 134 OwnPtr<FetchDataConsumerHandle> handle = createFetchDataConsumerHandleFromWe bHandle(createWaitingDataConsumerHandle());
135 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), handle.rel ease()); 135 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), std::move( handle));
136 136
137 EXPECT_FALSE(buffer->isStreamLocked()); 137 EXPECT_FALSE(buffer->isStreamLocked());
138 EXPECT_FALSE(buffer->isStreamDisturbed()); 138 EXPECT_FALSE(buffer->isStreamDisturbed());
139 EXPECT_FALSE(buffer->hasPendingActivity()); 139 EXPECT_FALSE(buffer->hasPendingActivity());
140 140
141 EXPECT_FALSE(buffer->drainAsFormData()); 141 EXPECT_FALSE(buffer->drainAsFormData());
142 142
143 EXPECT_FALSE(buffer->isStreamLocked()); 143 EXPECT_FALSE(buffer->isStreamLocked());
144 EXPECT_FALSE(buffer->isStreamDisturbed()); 144 EXPECT_FALSE(buffer->isStreamDisturbed());
145 EXPECT_FALSE(buffer->hasPendingActivity()); 145 EXPECT_FALSE(buffer->hasPendingActivity());
146 } 146 }
147 147
148 TEST_F(BodyStreamBufferTest, LoadBodyStreamBufferAsArrayBuffer) 148 TEST_F(BodyStreamBufferTest, LoadBodyStreamBufferAsArrayBuffer)
149 { 149 {
150 Checkpoint checkpoint; 150 Checkpoint checkpoint;
151 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); 151 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create();
152 DOMArrayBuffer* arrayBuffer = nullptr; 152 DOMArrayBuffer* arrayBuffer = nullptr;
153 153
154 InSequence s; 154 InSequence s;
155 EXPECT_CALL(checkpoint, Call(1)); 155 EXPECT_CALL(checkpoint, Call(1));
156 EXPECT_CALL(*client, didFetchDataLoadedArrayBufferMock(_)).WillOnce(SaveArg< 0>(&arrayBuffer)); 156 EXPECT_CALL(*client, didFetchDataLoadedArrayBufferMock(_)).WillOnce(SaveArg< 0>(&arrayBuffer));
157 EXPECT_CALL(checkpoint, Call(2)); 157 EXPECT_CALL(checkpoint, Call(2));
158 158
159 OwnPtr<ReplayingHandle> handle = ReplayingHandle::create(); 159 OwnPtr<ReplayingHandle> handle = ReplayingHandle::create();
160 handle->add(Command(Command::Data, "hello")); 160 handle->add(Command(Command::Data, "hello"));
161 handle->add(Command(Command::Done)); 161 handle->add(Command(Command::Done));
162 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), createFetc hDataConsumerHandleFromWebHandle(handle.release())); 162 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), createFetc hDataConsumerHandleFromWebHandle(std::move(handle)));
163 buffer->startLoading(FetchDataLoader::createLoaderAsArrayBuffer(), client); 163 buffer->startLoading(FetchDataLoader::createLoaderAsArrayBuffer(), client);
164 164
165 EXPECT_TRUE(buffer->isStreamLocked()); 165 EXPECT_TRUE(buffer->isStreamLocked());
166 EXPECT_TRUE(buffer->isStreamDisturbed()); 166 EXPECT_TRUE(buffer->isStreamDisturbed());
167 EXPECT_TRUE(buffer->hasPendingActivity()); 167 EXPECT_TRUE(buffer->hasPendingActivity());
168 168
169 checkpoint.Call(1); 169 checkpoint.Call(1);
170 testing::runPendingTasks(); 170 testing::runPendingTasks();
171 checkpoint.Call(2); 171 checkpoint.Call(2);
172 172
(...skipping 11 matching lines...) Expand all
184 RefPtr<BlobDataHandle> blobDataHandle; 184 RefPtr<BlobDataHandle> blobDataHandle;
185 185
186 InSequence s; 186 InSequence s;
187 EXPECT_CALL(checkpoint, Call(1)); 187 EXPECT_CALL(checkpoint, Call(1));
188 EXPECT_CALL(*client, didFetchDataLoadedBlobHandleMock(_)).WillOnce(SaveArg<0 >(&blobDataHandle)); 188 EXPECT_CALL(*client, didFetchDataLoadedBlobHandleMock(_)).WillOnce(SaveArg<0 >(&blobDataHandle));
189 EXPECT_CALL(checkpoint, Call(2)); 189 EXPECT_CALL(checkpoint, Call(2));
190 190
191 OwnPtr<ReplayingHandle> handle = ReplayingHandle::create(); 191 OwnPtr<ReplayingHandle> handle = ReplayingHandle::create();
192 handle->add(Command(Command::Data, "hello")); 192 handle->add(Command(Command::Data, "hello"));
193 handle->add(Command(Command::Done)); 193 handle->add(Command(Command::Done));
194 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), createFetc hDataConsumerHandleFromWebHandle(handle.release())); 194 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), createFetc hDataConsumerHandleFromWebHandle(std::move(handle)));
195 buffer->startLoading(FetchDataLoader::createLoaderAsBlobHandle("text/plain") , client); 195 buffer->startLoading(FetchDataLoader::createLoaderAsBlobHandle("text/plain") , client);
196 196
197 EXPECT_TRUE(buffer->isStreamLocked()); 197 EXPECT_TRUE(buffer->isStreamLocked());
198 EXPECT_TRUE(buffer->isStreamDisturbed()); 198 EXPECT_TRUE(buffer->isStreamDisturbed());
199 EXPECT_TRUE(buffer->hasPendingActivity()); 199 EXPECT_TRUE(buffer->hasPendingActivity());
200 200
201 checkpoint.Call(1); 201 checkpoint.Call(1);
202 testing::runPendingTasks(); 202 testing::runPendingTasks();
203 checkpoint.Call(2); 203 checkpoint.Call(2);
204 204
205 EXPECT_TRUE(buffer->isStreamLocked()); 205 EXPECT_TRUE(buffer->isStreamLocked());
206 EXPECT_TRUE(buffer->isStreamDisturbed()); 206 EXPECT_TRUE(buffer->isStreamDisturbed());
207 EXPECT_FALSE(buffer->hasPendingActivity()); 207 EXPECT_FALSE(buffer->hasPendingActivity());
208 EXPECT_EQ(5u, blobDataHandle->size()); 208 EXPECT_EQ(5u, blobDataHandle->size());
209 } 209 }
210 210
211 TEST_F(BodyStreamBufferTest, LoadBodyStreamBufferAsString) 211 TEST_F(BodyStreamBufferTest, LoadBodyStreamBufferAsString)
212 { 212 {
213 Checkpoint checkpoint; 213 Checkpoint checkpoint;
214 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); 214 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create();
215 215
216 InSequence s; 216 InSequence s;
217 EXPECT_CALL(checkpoint, Call(1)); 217 EXPECT_CALL(checkpoint, Call(1));
218 EXPECT_CALL(*client, didFetchDataLoadedString(String("hello"))); 218 EXPECT_CALL(*client, didFetchDataLoadedString(String("hello")));
219 EXPECT_CALL(checkpoint, Call(2)); 219 EXPECT_CALL(checkpoint, Call(2));
220 220
221 OwnPtr<ReplayingHandle> handle = ReplayingHandle::create(); 221 OwnPtr<ReplayingHandle> handle = ReplayingHandle::create();
222 handle->add(Command(Command::Data, "hello")); 222 handle->add(Command(Command::Data, "hello"));
223 handle->add(Command(Command::Done)); 223 handle->add(Command(Command::Done));
224 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), createFetc hDataConsumerHandleFromWebHandle(handle.release())); 224 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), createFetc hDataConsumerHandleFromWebHandle(std::move(handle)));
225 buffer->startLoading(FetchDataLoader::createLoaderAsString(), client); 225 buffer->startLoading(FetchDataLoader::createLoaderAsString(), client);
226 226
227 EXPECT_TRUE(buffer->isStreamLocked()); 227 EXPECT_TRUE(buffer->isStreamLocked());
228 EXPECT_TRUE(buffer->isStreamDisturbed()); 228 EXPECT_TRUE(buffer->isStreamDisturbed());
229 EXPECT_TRUE(buffer->hasPendingActivity()); 229 EXPECT_TRUE(buffer->hasPendingActivity());
230 230
231 checkpoint.Call(1); 231 checkpoint.Call(1);
232 testing::runPendingTasks(); 232 testing::runPendingTasks();
233 checkpoint.Call(2); 233 checkpoint.Call(2);
234 234
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
347 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); 347 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create();
348 348
349 InSequence s; 349 InSequence s;
350 EXPECT_CALL(checkpoint, Call(1)); 350 EXPECT_CALL(checkpoint, Call(1));
351 EXPECT_CALL(*client, didFetchDataLoadedString(String("hello"))); 351 EXPECT_CALL(*client, didFetchDataLoadedString(String("hello")));
352 EXPECT_CALL(checkpoint, Call(2)); 352 EXPECT_CALL(checkpoint, Call(2));
353 353
354 OwnPtr<ReplayingHandle> handle = ReplayingHandle::create(); 354 OwnPtr<ReplayingHandle> handle = ReplayingHandle::create();
355 handle->add(Command(Command::Data, "hello")); 355 handle->add(Command(Command::Data, "hello"));
356 handle->add(Command(Command::Done)); 356 handle->add(Command(Command::Done));
357 Persistent<BodyStreamBuffer> buffer = new BodyStreamBuffer(getScriptState(), createFetchDataConsumerHandleFromWebHandle(handle.release())); 357 Persistent<BodyStreamBuffer> buffer = new BodyStreamBuffer(getScriptState(), createFetchDataConsumerHandleFromWebHandle(std::move(handle)));
358 buffer->startLoading(FetchDataLoader::createLoaderAsString(), client); 358 buffer->startLoading(FetchDataLoader::createLoaderAsString(), client);
359 359
360 ThreadHeap::collectAllGarbage(); 360 ThreadHeap::collectAllGarbage();
361 checkpoint.Call(1); 361 checkpoint.Call(1);
362 testing::runPendingTasks(); 362 testing::runPendingTasks();
363 checkpoint.Call(2); 363 checkpoint.Call(2);
364 } 364 }
365 365
366 // TODO(hiroshige): Merge this class into MockFetchDataConsumerHandle. 366 // TODO(hiroshige): Merge this class into MockFetchDataConsumerHandle.
367 class MockFetchDataConsumerHandleWithMockDestructor : public DataConsumerHandleT estUtil::MockFetchDataConsumerHandle { 367 class MockFetchDataConsumerHandleWithMockDestructor : public DataConsumerHandleT estUtil::MockFetchDataConsumerHandle {
(...skipping 21 matching lines...) Expand all
389 389
390 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(::testing::Return(rea der.get())); 390 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(::testing::Return(rea der.get()));
391 EXPECT_CALL(checkpoint, Call(1)); 391 EXPECT_CALL(checkpoint, Call(1));
392 EXPECT_CALL(*reader, destruct()); 392 EXPECT_CALL(*reader, destruct());
393 EXPECT_CALL(*handle, destruct()); 393 EXPECT_CALL(*handle, destruct());
394 EXPECT_CALL(checkpoint, Call(2)); 394 EXPECT_CALL(checkpoint, Call(2));
395 395
396 // |reader| is adopted by |obtainReader|. 396 // |reader| is adopted by |obtainReader|.
397 ASSERT_TRUE(reader.leakPtr()); 397 ASSERT_TRUE(reader.leakPtr());
398 398
399 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), handle.rel ease()); 399 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), std::move( handle));
400 checkpoint.Call(1); 400 checkpoint.Call(1);
401 ScriptValue reason(getScriptState(), v8String(getScriptState()->isolate(), " reason")); 401 ScriptValue reason(getScriptState(), v8String(getScriptState()->isolate(), " reason"));
402 buffer->cancelSource(getScriptState(), reason); 402 buffer->cancelSource(getScriptState(), reason);
403 checkpoint.Call(2); 403 checkpoint.Call(2);
404 } 404 }
405 405
406 } // namespace 406 } // namespace
407 407
408 } // namespace blink 408 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698