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

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

Issue 2356693002: Remove BytesConsumer::read (Closed)
Patch Set: fix Created 4 years, 3 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/BytesConsumerForDataConsumerHandle.h" 5 #include "modules/fetch/BytesConsumerForDataConsumerHandle.h"
6 6
7 #include "core/testing/DummyPageHolder.h" 7 #include "core/testing/DummyPageHolder.h"
8 #include "modules/fetch/BytesConsumer.h" 8 #include "modules/fetch/BytesConsumer.h"
9 #include "modules/fetch/DataConsumerHandleTestUtil.h" 9 #include "modules/fetch/DataConsumerHandleTestUtil.h"
10 #include "modules/fetch/DataConsumerHandleUtil.h" 10 #include "modules/fetch/DataConsumerHandleUtil.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 MOCK_METHOD0(onStateChange, void()); 46 MOCK_METHOD0(onStateChange, void());
47 47
48 protected: 48 protected:
49 MockClient() {} 49 MockClient() {}
50 }; 50 };
51 51
52 class MockDataConsumerHandle final : public FetchDataConsumerHandle { 52 class MockDataConsumerHandle final : public FetchDataConsumerHandle {
53 public: 53 public:
54 class MockReaderProxy : public GarbageCollectedFinalized<MockReaderProxy> { 54 class MockReaderProxy : public GarbageCollectedFinalized<MockReaderProxy> {
55 public: 55 public:
56 MOCK_METHOD4(read, WebDataConsumerHandle::Result(void*, size_t, WebDataC onsumerHandle::Flags, size_t*));
57 MOCK_METHOD3(beginRead, WebDataConsumerHandle::Result(const void**, WebD ataConsumerHandle::Flags, size_t*)); 56 MOCK_METHOD3(beginRead, WebDataConsumerHandle::Result(const void**, WebD ataConsumerHandle::Flags, size_t*));
58 MOCK_METHOD1(endRead, WebDataConsumerHandle::Result(size_t)); 57 MOCK_METHOD1(endRead, WebDataConsumerHandle::Result(size_t));
59 MOCK_METHOD1(drainAsBlobDataHandle, PassRefPtr<BlobDataHandle>(FetchData ConsumerHandle::Reader::BlobSizePolicy)); 58 MOCK_METHOD1(drainAsBlobDataHandle, PassRefPtr<BlobDataHandle>(FetchData ConsumerHandle::Reader::BlobSizePolicy));
60 MOCK_METHOD0(drainAsFormData, PassRefPtr<EncodedFormData>()); 59 MOCK_METHOD0(drainAsFormData, PassRefPtr<EncodedFormData>());
61 60
62 DEFINE_INLINE_TRACE() {} 61 DEFINE_INLINE_TRACE() {}
63 }; 62 };
64 63
65 MockDataConsumerHandle() : m_proxy(new MockReaderProxy) {} 64 MockDataConsumerHandle() : m_proxy(new MockReaderProxy) {}
66 MockReaderProxy* proxy() { return m_proxy; } 65 MockReaderProxy* proxy() { return m_proxy; }
67 const char* debugName() const { return "MockDataConsumerHandle"; } 66 const char* debugName() const { return "MockDataConsumerHandle"; }
68 67
69 private: 68 private:
70 class Reader final : public FetchDataConsumerHandle::Reader { 69 class Reader final : public FetchDataConsumerHandle::Reader {
71 public: 70 public:
72 explicit Reader(MockReaderProxy* proxy) : m_proxy(proxy) {} 71 explicit Reader(MockReaderProxy* proxy) : m_proxy(proxy) {}
73 Result read(void* buffer, size_t size, WebDataConsumerHandle::Flags flag s, size_t* read) override
74 {
75 return m_proxy->read(buffer, size, flags, read);
76 }
77 Result beginRead(const void** buffer, Flags flags, size_t* available) ov erride 72 Result beginRead(const void** buffer, Flags flags, size_t* available) ov erride
78 { 73 {
79 return m_proxy->beginRead(buffer, flags, available); 74 return m_proxy->beginRead(buffer, flags, available);
80 } 75 }
81 Result endRead(size_t readSize) override 76 Result endRead(size_t readSize) override
82 { 77 {
83 return m_proxy->endRead(readSize); 78 return m_proxy->endRead(readSize);
84 } 79 }
85 PassRefPtr<BlobDataHandle> drainAsBlobDataHandle(BlobSizePolicy policy) override 80 PassRefPtr<BlobDataHandle> drainAsBlobDataHandle(BlobSizePolicy policy) override
86 { 81 {
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 handle->add(Command(Command::Error)); 181 handle->add(Command(Command::Error));
187 Persistent<BytesConsumer> consumer = new BytesConsumerForDataConsumerHandle( document(), createFetchDataConsumerHandleFromWebHandle(std::move(handle))); 182 Persistent<BytesConsumer> consumer = new BytesConsumerForDataConsumerHandle( document(), createFetchDataConsumerHandleFromWebHandle(std::move(handle)));
188 consumer->setClient(client); 183 consumer->setClient(client);
189 consumer->clearClient(); 184 consumer->clearClient();
190 185
191 checkpoint.Call(1); 186 checkpoint.Call(1);
192 testing::runPendingTasks(); 187 testing::runPendingTasks();
193 checkpoint.Call(2); 188 checkpoint.Call(2);
194 } 189 }
195 190
196 TEST_F(BytesConsumerForDataConsumerHandleTest, ReadWhenReadable)
197 {
198 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create();
199 handle->add(Command(Command::Data, "hello"));
200 Persistent<BytesConsumer> consumer = new BytesConsumerForDataConsumerHandle( document(), createFetchDataConsumerHandleFromWebHandle(std::move(handle)));
201 consumer->setClient(MockClient::create());
202
203 char buffer[16];
204 size_t read;
205 Result r = consumer->read(buffer, sizeof(buffer), &read);
206 ASSERT_EQ(Result::Ok, r);
207 EXPECT_EQ("hello", String(buffer, read));
208 }
209
210 TEST_F(BytesConsumerForDataConsumerHandleTest, ReadWhenWaiting)
211 {
212 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create();
213 Persistent<BytesConsumer> consumer = new BytesConsumerForDataConsumerHandle( document(), createFetchDataConsumerHandleFromWebHandle(std::move(handle)));
214 consumer->setClient(MockClient::create());
215
216 char buffer[16];
217 size_t read = 42;
218 Result r = consumer->read(buffer, sizeof(buffer), &read);
219 ASSERT_EQ(Result::ShouldWait, r);
220 EXPECT_EQ(0u, read);
221 }
222
223 TEST_F(BytesConsumerForDataConsumerHandleTest, ReadWhenClosed)
224 {
225 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create();
226 handle->add(Command(Command::Done));
227 Persistent<BytesConsumer> consumer = new BytesConsumerForDataConsumerHandle( document(), createFetchDataConsumerHandleFromWebHandle(std::move(handle)));
228 consumer->setClient(MockClient::create());
229
230 char buffer[16];
231 size_t read = 42;
232 Result r = consumer->read(buffer, sizeof(buffer), &read);
233 ASSERT_EQ(Result::Done, r);
234 EXPECT_EQ(0u, read);
235 }
236
237 TEST_F(BytesConsumerForDataConsumerHandleTest, ReadWhenErrored)
238 {
239 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create();
240 handle->add(Command(Command::Error));
241 Persistent<BytesConsumer> consumer = new BytesConsumerForDataConsumerHandle( document(), createFetchDataConsumerHandleFromWebHandle(std::move(handle)));
242 consumer->setClient(MockClient::create());
243
244 char buffer[16];
245 size_t read;
246 Result r = consumer->read(buffer, sizeof(buffer), &read);
247 ASSERT_EQ(Result::Error, r);
248 EXPECT_EQ(BytesConsumer::Error("error"), consumer->getError());
249 }
250
251 TEST_F(BytesConsumerForDataConsumerHandleTest, TwoPhaseReadWhenReadable) 191 TEST_F(BytesConsumerForDataConsumerHandleTest, TwoPhaseReadWhenReadable)
252 { 192 {
253 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create(); 193 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create();
254 handle->add(Command(Command::Data, "hello")); 194 handle->add(Command(Command::Data, "hello"));
255 Persistent<BytesConsumer> consumer = new BytesConsumerForDataConsumerHandle( document(), createFetchDataConsumerHandleFromWebHandle(std::move(handle))); 195 Persistent<BytesConsumer> consumer = new BytesConsumerForDataConsumerHandle( document(), createFetchDataConsumerHandleFromWebHandle(std::move(handle)));
256 consumer->setClient(MockClient::create()); 196 consumer->setClient(MockClient::create());
257 197
258 const char* buffer = nullptr; 198 const char* buffer = nullptr;
259 size_t available = 0; 199 size_t available = 0;
260 ASSERT_EQ(Result::Ok, consumer->beginRead(&buffer, &available)); 200 ASSERT_EQ(Result::Ok, consumer->beginRead(&buffer, &available));
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
347 InSequence s; 287 InSequence s;
348 EXPECT_CALL(*proxy, drainAsFormData()).WillOnce(Return(formData)); 288 EXPECT_CALL(*proxy, drainAsFormData()).WillOnce(Return(formData));
349 289
350 EXPECT_EQ(formData, consumer->drainAsFormData()); 290 EXPECT_EQ(formData, consumer->drainAsFormData());
351 EXPECT_EQ(BytesConsumer::PublicState::Closed, consumer->getPublicState()); 291 EXPECT_EQ(BytesConsumer::PublicState::Closed, consumer->getPublicState());
352 } 292 }
353 293
354 } // namespace 294 } // namespace
355 295
356 } // namespace blink 296 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698