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

Side by Side Diff: third_party/WebKit/Source/modules/fetch/BytesConsumerTest.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/BytesConsumer.h" 5 #include "modules/fetch/BytesConsumer.h"
6 6
7 #include "core/testing/DummyPageHolder.h" 7 #include "core/testing/DummyPageHolder.h"
8 #include "modules/fetch/BytesConsumerTestUtil.h" 8 #include "modules/fetch/BytesConsumerTestUtil.h"
9 #include "platform/blob/BlobData.h" 9 #include "platform/blob/BlobData.h"
10 #include "platform/testing/UnitTestHelpers.h" 10 #include "platform/testing/UnitTestHelpers.h"
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 TEST_F(BytesConsumerTeeTest, CreateDone) 94 TEST_F(BytesConsumerTeeTest, CreateDone)
95 { 95 {
96 ReplayingBytesConsumer* src = new ReplayingBytesConsumer(document()); 96 ReplayingBytesConsumer* src = new ReplayingBytesConsumer(document());
97 src->add(Command(Command::Done)); 97 src->add(Command(Command::Done));
98 EXPECT_FALSE(src->isCancelled()); 98 EXPECT_FALSE(src->isCancelled());
99 99
100 BytesConsumer* dest1 = nullptr; 100 BytesConsumer* dest1 = nullptr;
101 BytesConsumer* dest2 = nullptr; 101 BytesConsumer* dest2 = nullptr;
102 BytesConsumer::tee(document(), src, &dest1, &dest2); 102 BytesConsumer::tee(document(), src, &dest1, &dest2);
103 103
104 auto result1 = (new BytesConsumerTestUtil::Reader(dest1))->run(); 104 auto result1 = (new BytesConsumerTestUtil::TwoPhaseReader(dest1))->run();
105 auto result2 = (new BytesConsumerTestUtil::Reader(dest2))->run(); 105 auto result2 = (new BytesConsumerTestUtil::TwoPhaseReader(dest2))->run();
106 106
107 EXPECT_EQ(Result::Done, result1.first); 107 EXPECT_EQ(Result::Done, result1.first);
108 EXPECT_TRUE(result1.second.isEmpty()); 108 EXPECT_TRUE(result1.second.isEmpty());
109 EXPECT_EQ(BytesConsumer::PublicState::Closed, dest1->getPublicState()); 109 EXPECT_EQ(BytesConsumer::PublicState::Closed, dest1->getPublicState());
110 EXPECT_EQ(Result::Done, result2.first); 110 EXPECT_EQ(Result::Done, result2.first);
111 EXPECT_TRUE(result2.second.isEmpty()); 111 EXPECT_TRUE(result2.second.isEmpty());
112 EXPECT_EQ(BytesConsumer::PublicState::Closed, dest2->getPublicState()); 112 EXPECT_EQ(BytesConsumer::PublicState::Closed, dest2->getPublicState());
113 EXPECT_FALSE(src->isCancelled()); 113 EXPECT_FALSE(src->isCancelled());
114 114
115 // Cancelling does nothing when closed. 115 // Cancelling does nothing when closed.
116 dest1->cancel(); 116 dest1->cancel();
117 dest2->cancel(); 117 dest2->cancel();
118 EXPECT_EQ(BytesConsumer::PublicState::Closed, dest1->getPublicState()); 118 EXPECT_EQ(BytesConsumer::PublicState::Closed, dest1->getPublicState());
119 EXPECT_EQ(BytesConsumer::PublicState::Closed, dest2->getPublicState()); 119 EXPECT_EQ(BytesConsumer::PublicState::Closed, dest2->getPublicState());
120 EXPECT_FALSE(src->isCancelled()); 120 EXPECT_FALSE(src->isCancelled());
121 } 121 }
122 122
123 TEST_F(BytesConsumerTeeTest, Read)
124 {
125 ReplayingBytesConsumer* src = new ReplayingBytesConsumer(document());
126
127 src->add(Command(Command::Wait));
128 src->add(Command(Command::Data, "hello, "));
129 src->add(Command(Command::Wait));
130 src->add(Command(Command::Data, "world"));
131 src->add(Command(Command::Wait));
132 src->add(Command(Command::Wait));
133 src->add(Command(Command::Done));
134
135 BytesConsumer* dest1 = nullptr;
136 BytesConsumer* dest2 = nullptr;
137 BytesConsumer::tee(document(), src, &dest1, &dest2);
138
139 EXPECT_EQ(BytesConsumer::PublicState::ReadableOrWaiting, dest1->getPublicSta te());
140 EXPECT_EQ(BytesConsumer::PublicState::ReadableOrWaiting, dest2->getPublicSta te());
141
142 auto result1 = (new BytesConsumerTestUtil::Reader(dest1))->run();
143 auto result2 = (new BytesConsumerTestUtil::Reader(dest2))->run();
144
145 EXPECT_EQ(Result::Done, result1.first);
146 EXPECT_EQ("hello, world", toString(result1.second));
147 EXPECT_EQ(BytesConsumer::PublicState::Closed, dest1->getPublicState());
148 EXPECT_EQ(Result::Done, result2.first);
149 EXPECT_EQ("hello, world", toString(result2.second));
150 EXPECT_EQ(BytesConsumer::PublicState::Closed, dest2->getPublicState());
151 EXPECT_FALSE(src->isCancelled());
152 }
153
154 TEST_F(BytesConsumerTeeTest, TwoPhaseRead) 123 TEST_F(BytesConsumerTeeTest, TwoPhaseRead)
155 { 124 {
156 ReplayingBytesConsumer* src = new ReplayingBytesConsumer(document()); 125 ReplayingBytesConsumer* src = new ReplayingBytesConsumer(document());
157 126
158 src->add(Command(Command::Wait)); 127 src->add(Command(Command::Wait));
159 src->add(Command(Command::Data, "hello, ")); 128 src->add(Command(Command::Data, "hello, "));
160 src->add(Command(Command::Wait)); 129 src->add(Command(Command::Wait));
161 src->add(Command(Command::Data, "world")); 130 src->add(Command(Command::Data, "world"));
162 src->add(Command(Command::Wait)); 131 src->add(Command(Command::Wait));
163 src->add(Command(Command::Wait)); 132 src->add(Command(Command::Wait));
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 TestClient* client = new TestClient(); 317 TestClient* client = new TestClient();
349 dest1->setClient(client); 318 dest1->setClient(client);
350 319
351 const char* buffer = nullptr; 320 const char* buffer = nullptr;
352 size_t available = 0; 321 size_t available = 0;
353 ASSERT_EQ(Result::Ok, dest1->beginRead(&buffer, &available)); 322 ASSERT_EQ(Result::Ok, dest1->beginRead(&buffer, &available));
354 ASSERT_EQ(1u, available); 323 ASSERT_EQ(1u, available);
355 324
356 EXPECT_EQ(BytesConsumer::PublicState::ReadableOrWaiting, dest1->getPublicSta te()); 325 EXPECT_EQ(BytesConsumer::PublicState::ReadableOrWaiting, dest1->getPublicSta te());
357 int numOnStateChangeCalled = client->numOnStateChangeCalled(); 326 int numOnStateChangeCalled = client->numOnStateChangeCalled();
358 EXPECT_EQ(Result::Error, (new BytesConsumerTestUtil::Reader(dest2))->run().f irst); 327 EXPECT_EQ(Result::Error, (new BytesConsumerTestUtil::TwoPhaseReader(dest2))- >run().first);
359 EXPECT_EQ(BytesConsumer::PublicState::Errored, dest1->getPublicState()); 328 EXPECT_EQ(BytesConsumer::PublicState::Errored, dest1->getPublicState());
360 EXPECT_EQ(numOnStateChangeCalled + 1, client->numOnStateChangeCalled()); 329 EXPECT_EQ(numOnStateChangeCalled + 1, client->numOnStateChangeCalled());
361 EXPECT_EQ('a', buffer[0]); 330 EXPECT_EQ('a', buffer[0]);
362 EXPECT_EQ(Result::Ok, dest1->endRead(available)); 331 EXPECT_EQ(Result::Ok, dest1->endRead(available));
363 } 332 }
364 333
365 TEST_F(BytesConsumerTeeTest, AsyncNotificationShouldBeDispatchedWhenAllDataIsCon sumed) 334 TEST_F(BytesConsumerTeeTest, AsyncNotificationShouldBeDispatchedWhenAllDataIsCon sumed)
366 { 335 {
367 ReplayingBytesConsumer* src = new ReplayingBytesConsumer(document()); 336 ReplayingBytesConsumer* src = new ReplayingBytesConsumer(document());
368 src->add(Command(Command::Data, "a")); 337 src->add(Command(Command::Data, "a"));
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 EXPECT_EQ(0, client->numOnStateChangeCalled()); 394 EXPECT_EQ(0, client->numOnStateChangeCalled());
426 EXPECT_EQ(BytesConsumer::PublicState::Closed, dest1->getPublicState()); 395 EXPECT_EQ(BytesConsumer::PublicState::Closed, dest1->getPublicState());
427 testing::runPendingTasks(); 396 testing::runPendingTasks();
428 EXPECT_EQ(0, client->numOnStateChangeCalled()); 397 EXPECT_EQ(0, client->numOnStateChangeCalled());
429 EXPECT_EQ(BytesConsumer::PublicState::Closed, dest1->getPublicState()); 398 EXPECT_EQ(BytesConsumer::PublicState::Closed, dest1->getPublicState());
430 } 399 }
431 400
432 } // namespace 401 } // namespace
433 402
434 } // namespace blink 403 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698