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

Side by Side Diff: third_party/WebKit/Source/modules/fetch/FetchDataLoaderTest.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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/FetchDataLoader.h" 5 #include "modules/fetch/FetchDataLoader.h"
6 6
7 #include "modules/fetch/DataConsumerHandleTestUtil.h" 7 #include "modules/fetch/DataConsumerHandleTestUtil.h"
8 #include "testing/gmock/include/gmock/gmock.h" 8 #include "testing/gmock/include/gmock/gmock.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 #include <memory>
11 10
12 namespace blink { 11 namespace blink {
13 12
14 namespace { 13 namespace {
15 14
16 using ::testing::InSequence; 15 using ::testing::InSequence;
17 using ::testing::Return; 16 using ::testing::Return;
18 using ::testing::DoAll; 17 using ::testing::DoAll;
19 using ::testing::StrictMock; 18 using ::testing::StrictMock;
20 using ::testing::_; 19 using ::testing::_;
(...skipping 12 matching lines...) Expand all
33 32
34 const char kQuickBrownFox[] = "Quick brown fox"; 33 const char kQuickBrownFox[] = "Quick brown fox";
35 const size_t kQuickBrownFoxLength = 15; 34 const size_t kQuickBrownFoxLength = 15;
36 const size_t kQuickBrownFoxLengthWithTerminatingNull = 16; 35 const size_t kQuickBrownFoxLengthWithTerminatingNull = 16;
37 36
38 TEST(FetchDataLoaderTest, LoadAsBlob) 37 TEST(FetchDataLoaderTest, LoadAsBlob)
39 { 38 {
40 WebDataConsumerHandle::Client *client = nullptr; 39 WebDataConsumerHandle::Client *client = nullptr;
41 Checkpoint checkpoint; 40 Checkpoint checkpoint;
42 41
43 std::unique_ptr<MockHandle> handle = MockHandle::create(); 42 OwnPtr<MockHandle> handle = MockHandle::create();
44 std::unique_ptr<MockReader> reader = MockReader::create(); 43 OwnPtr<MockReader> reader = MockReader::create();
45 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsBlobHandle ("text/test"); 44 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsBlobHandle ("text/test");
46 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient ::create(); 45 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient ::create();
47 RefPtr<BlobDataHandle> blobDataHandle; 46 RefPtr<BlobDataHandle> blobDataHandle;
48 47
49 InSequence s; 48 InSequence s;
50 EXPECT_CALL(checkpoint, Call(1)); 49 EXPECT_CALL(checkpoint, Call(1));
51 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(DoAll(SaveArg<0>(&cli ent), Return(reader.get()))); 50 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(DoAll(SaveArg<0>(&cli ent), Return(reader.get())));
52 EXPECT_CALL(*reader, drainAsBlobDataHandle(kDisallowBlobWithInvalidSize)).Wi llOnce(Return(nullptr)); 51 EXPECT_CALL(*reader, drainAsBlobDataHandle(kDisallowBlobWithInvalidSize)).Wi llOnce(Return(nullptr));
53 EXPECT_CALL(checkpoint, Call(2)); 52 EXPECT_CALL(checkpoint, Call(2));
54 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0> (static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengt hWithTerminatingNull), Return(kOk))); 53 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0> (static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengt hWithTerminatingNull), Return(kOk)));
55 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLengthWithTerminatingNull)).WillO nce(Return(kOk)); 54 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLengthWithTerminatingNull)).WillO nce(Return(kOk));
56 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kDone)); 55 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kDone));
57 EXPECT_CALL(*reader, destruct()); 56 EXPECT_CALL(*reader, destruct());
58 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadedBlobHandleMock(_)).Wil lOnce(SaveArg<0>(&blobDataHandle)); 57 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadedBlobHandleMock(_)).Wil lOnce(SaveArg<0>(&blobDataHandle));
59 EXPECT_CALL(checkpoint, Call(3)); 58 EXPECT_CALL(checkpoint, Call(3));
60 EXPECT_CALL(checkpoint, Call(4)); 59 EXPECT_CALL(checkpoint, Call(4));
61 60
62 // |reader| is adopted by |obtainReader|. 61 // |reader| is adopted by |obtainReader|.
63 ASSERT_TRUE(reader.release()); 62 ASSERT_TRUE(reader.leakPtr());
64 63
65 checkpoint.Call(1); 64 checkpoint.Call(1);
66 fetchDataLoader->start(handle.get(), fetchDataLoaderClient); 65 fetchDataLoader->start(handle.get(), fetchDataLoaderClient);
67 checkpoint.Call(2); 66 checkpoint.Call(2);
68 ASSERT_TRUE(client); 67 ASSERT_TRUE(client);
69 client->didGetReadable(); 68 client->didGetReadable();
70 checkpoint.Call(3); 69 checkpoint.Call(3);
71 fetchDataLoader->cancel(); 70 fetchDataLoader->cancel();
72 checkpoint.Call(4); 71 checkpoint.Call(4);
73 72
74 ASSERT_TRUE(blobDataHandle); 73 ASSERT_TRUE(blobDataHandle);
75 EXPECT_EQ(kQuickBrownFoxLengthWithTerminatingNull, blobDataHandle->size()); 74 EXPECT_EQ(kQuickBrownFoxLengthWithTerminatingNull, blobDataHandle->size());
76 EXPECT_EQ(String("text/test"), blobDataHandle->type()); 75 EXPECT_EQ(String("text/test"), blobDataHandle->type());
77 } 76 }
78 77
79 TEST(FetchDataLoaderTest, LoadAsBlobFailed) 78 TEST(FetchDataLoaderTest, LoadAsBlobFailed)
80 { 79 {
81 WebDataConsumerHandle::Client *client = nullptr; 80 WebDataConsumerHandle::Client *client = nullptr;
82 Checkpoint checkpoint; 81 Checkpoint checkpoint;
83 82
84 std::unique_ptr<MockHandle> handle = MockHandle::create(); 83 OwnPtr<MockHandle> handle = MockHandle::create();
85 std::unique_ptr<MockReader> reader = MockReader::create(); 84 OwnPtr<MockReader> reader = MockReader::create();
86 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsBlobHandle ("text/test"); 85 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsBlobHandle ("text/test");
87 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient ::create(); 86 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient ::create();
88 87
89 InSequence s; 88 InSequence s;
90 EXPECT_CALL(checkpoint, Call(1)); 89 EXPECT_CALL(checkpoint, Call(1));
91 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(DoAll(SaveArg<0>(&cli ent), Return(reader.get()))); 90 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(DoAll(SaveArg<0>(&cli ent), Return(reader.get())));
92 EXPECT_CALL(*reader, drainAsBlobDataHandle(kDisallowBlobWithInvalidSize)).Wi llOnce(Return(nullptr)); 91 EXPECT_CALL(*reader, drainAsBlobDataHandle(kDisallowBlobWithInvalidSize)).Wi llOnce(Return(nullptr));
93 EXPECT_CALL(checkpoint, Call(2)); 92 EXPECT_CALL(checkpoint, Call(2));
94 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0> (static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengt hWithTerminatingNull), Return(kOk))); 93 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0> (static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengt hWithTerminatingNull), Return(kOk)));
95 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLengthWithTerminatingNull)).WillO nce(Return(kOk)); 94 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLengthWithTerminatingNull)).WillO nce(Return(kOk));
96 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kUnexpectedErro r)); 95 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kUnexpectedErro r));
97 EXPECT_CALL(*reader, destruct()); 96 EXPECT_CALL(*reader, destruct());
98 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadFailed()); 97 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadFailed());
99 EXPECT_CALL(checkpoint, Call(3)); 98 EXPECT_CALL(checkpoint, Call(3));
100 EXPECT_CALL(checkpoint, Call(4)); 99 EXPECT_CALL(checkpoint, Call(4));
101 100
102 // |reader| is adopted by |obtainReader|. 101 // |reader| is adopted by |obtainReader|.
103 ASSERT_TRUE(reader.release()); 102 ASSERT_TRUE(reader.leakPtr());
104 103
105 checkpoint.Call(1); 104 checkpoint.Call(1);
106 fetchDataLoader->start(handle.get(), fetchDataLoaderClient); 105 fetchDataLoader->start(handle.get(), fetchDataLoaderClient);
107 checkpoint.Call(2); 106 checkpoint.Call(2);
108 ASSERT_TRUE(client); 107 ASSERT_TRUE(client);
109 client->didGetReadable(); 108 client->didGetReadable();
110 checkpoint.Call(3); 109 checkpoint.Call(3);
111 fetchDataLoader->cancel(); 110 fetchDataLoader->cancel();
112 checkpoint.Call(4); 111 checkpoint.Call(4);
113 } 112 }
114 113
115 TEST(FetchDataLoaderTest, LoadAsBlobCancel) 114 TEST(FetchDataLoaderTest, LoadAsBlobCancel)
116 { 115 {
117 Checkpoint checkpoint; 116 Checkpoint checkpoint;
118 117
119 std::unique_ptr<MockHandle> handle = MockHandle::create(); 118 OwnPtr<MockHandle> handle = MockHandle::create();
120 std::unique_ptr<MockReader> reader = MockReader::create(); 119 OwnPtr<MockReader> reader = MockReader::create();
121 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsBlobHandle ("text/test"); 120 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsBlobHandle ("text/test");
122 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient ::create(); 121 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient ::create();
123 122
124 InSequence s; 123 InSequence s;
125 EXPECT_CALL(checkpoint, Call(1)); 124 EXPECT_CALL(checkpoint, Call(1));
126 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(Return(reader.get())) ; 125 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(Return(reader.get())) ;
127 EXPECT_CALL(*reader, drainAsBlobDataHandle(kDisallowBlobWithInvalidSize)).Wi llOnce(Return(nullptr)); 126 EXPECT_CALL(*reader, drainAsBlobDataHandle(kDisallowBlobWithInvalidSize)).Wi llOnce(Return(nullptr));
128 EXPECT_CALL(checkpoint, Call(2)); 127 EXPECT_CALL(checkpoint, Call(2));
129 EXPECT_CALL(*reader, destruct()); 128 EXPECT_CALL(*reader, destruct());
130 EXPECT_CALL(checkpoint, Call(3)); 129 EXPECT_CALL(checkpoint, Call(3));
131 130
132 // |reader| is adopted by |obtainReader|. 131 // |reader| is adopted by |obtainReader|.
133 ASSERT_TRUE(reader.release()); 132 ASSERT_TRUE(reader.leakPtr());
134 133
135 checkpoint.Call(1); 134 checkpoint.Call(1);
136 fetchDataLoader->start(handle.get(), fetchDataLoaderClient); 135 fetchDataLoader->start(handle.get(), fetchDataLoaderClient);
137 checkpoint.Call(2); 136 checkpoint.Call(2);
138 fetchDataLoader->cancel(); 137 fetchDataLoader->cancel();
139 checkpoint.Call(3); 138 checkpoint.Call(3);
140 } 139 }
141 140
142 TEST(FetchDataLoaderTest, LoadAsBlobViaDrainAsBlobDataHandleWithSameContentType) 141 TEST(FetchDataLoaderTest, LoadAsBlobViaDrainAsBlobDataHandleWithSameContentType)
143 { 142 {
144 std::unique_ptr<BlobData> blobData = BlobData::create(); 143 OwnPtr<BlobData> blobData = BlobData::create();
145 blobData->appendBytes(kQuickBrownFox, kQuickBrownFoxLengthWithTerminatingNul l); 144 blobData->appendBytes(kQuickBrownFox, kQuickBrownFoxLengthWithTerminatingNul l);
146 blobData->setContentType("text/test"); 145 blobData->setContentType("text/test");
147 RefPtr<BlobDataHandle> inputBlobDataHandle = BlobDataHandle::create(std::mov e(blobData), kQuickBrownFoxLengthWithTerminatingNull); 146 RefPtr<BlobDataHandle> inputBlobDataHandle = BlobDataHandle::create(std::mov e(blobData), kQuickBrownFoxLengthWithTerminatingNull);
148 147
149 Checkpoint checkpoint; 148 Checkpoint checkpoint;
150 149
151 std::unique_ptr<MockHandle> handle = MockHandle::create(); 150 OwnPtr<MockHandle> handle = MockHandle::create();
152 std::unique_ptr<MockReader> reader = MockReader::create(); 151 OwnPtr<MockReader> reader = MockReader::create();
153 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsBlobHandle ("text/test"); 152 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsBlobHandle ("text/test");
154 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient ::create(); 153 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient ::create();
155 RefPtr<BlobDataHandle> blobDataHandle; 154 RefPtr<BlobDataHandle> blobDataHandle;
156 155
157 InSequence s; 156 InSequence s;
158 EXPECT_CALL(checkpoint, Call(1)); 157 EXPECT_CALL(checkpoint, Call(1));
159 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(Return(reader.get())) ; 158 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(Return(reader.get())) ;
160 EXPECT_CALL(*reader, drainAsBlobDataHandle(kDisallowBlobWithInvalidSize)).Wi llOnce(Return(inputBlobDataHandle)); 159 EXPECT_CALL(*reader, drainAsBlobDataHandle(kDisallowBlobWithInvalidSize)).Wi llOnce(Return(inputBlobDataHandle));
161 EXPECT_CALL(*reader, destruct()); 160 EXPECT_CALL(*reader, destruct());
162 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadedBlobHandleMock(_)).Wil lOnce(SaveArg<0>(&blobDataHandle)); 161 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadedBlobHandleMock(_)).Wil lOnce(SaveArg<0>(&blobDataHandle));
163 EXPECT_CALL(checkpoint, Call(2)); 162 EXPECT_CALL(checkpoint, Call(2));
164 EXPECT_CALL(checkpoint, Call(3)); 163 EXPECT_CALL(checkpoint, Call(3));
165 164
166 // |reader| is adopted by |obtainReader|. 165 // |reader| is adopted by |obtainReader|.
167 ASSERT_TRUE(reader.release()); 166 ASSERT_TRUE(reader.leakPtr());
168 167
169 checkpoint.Call(1); 168 checkpoint.Call(1);
170 fetchDataLoader->start(handle.get(), fetchDataLoaderClient); 169 fetchDataLoader->start(handle.get(), fetchDataLoaderClient);
171 checkpoint.Call(2); 170 checkpoint.Call(2);
172 fetchDataLoader->cancel(); 171 fetchDataLoader->cancel();
173 checkpoint.Call(3); 172 checkpoint.Call(3);
174 173
175 ASSERT_TRUE(blobDataHandle); 174 ASSERT_TRUE(blobDataHandle);
176 EXPECT_EQ(inputBlobDataHandle, blobDataHandle); 175 EXPECT_EQ(inputBlobDataHandle, blobDataHandle);
177 EXPECT_EQ(kQuickBrownFoxLengthWithTerminatingNull, blobDataHandle->size()); 176 EXPECT_EQ(kQuickBrownFoxLengthWithTerminatingNull, blobDataHandle->size());
178 EXPECT_EQ(String("text/test"), blobDataHandle->type()); 177 EXPECT_EQ(String("text/test"), blobDataHandle->type());
179 } 178 }
180 179
181 TEST(FetchDataLoaderTest, LoadAsBlobViaDrainAsBlobDataHandleWithDifferentContent Type) 180 TEST(FetchDataLoaderTest, LoadAsBlobViaDrainAsBlobDataHandleWithDifferentContent Type)
182 { 181 {
183 std::unique_ptr<BlobData> blobData = BlobData::create(); 182 OwnPtr<BlobData> blobData = BlobData::create();
184 blobData->appendBytes(kQuickBrownFox, kQuickBrownFoxLengthWithTerminatingNul l); 183 blobData->appendBytes(kQuickBrownFox, kQuickBrownFoxLengthWithTerminatingNul l);
185 blobData->setContentType("text/different"); 184 blobData->setContentType("text/different");
186 RefPtr<BlobDataHandle> inputBlobDataHandle = BlobDataHandle::create(std::mov e(blobData), kQuickBrownFoxLengthWithTerminatingNull); 185 RefPtr<BlobDataHandle> inputBlobDataHandle = BlobDataHandle::create(std::mov e(blobData), kQuickBrownFoxLengthWithTerminatingNull);
187 186
188 Checkpoint checkpoint; 187 Checkpoint checkpoint;
189 188
190 std::unique_ptr<MockHandle> handle = MockHandle::create(); 189 OwnPtr<MockHandle> handle = MockHandle::create();
191 std::unique_ptr<MockReader> reader = MockReader::create(); 190 OwnPtr<MockReader> reader = MockReader::create();
192 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsBlobHandle ("text/test"); 191 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsBlobHandle ("text/test");
193 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient ::create(); 192 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient ::create();
194 RefPtr<BlobDataHandle> blobDataHandle; 193 RefPtr<BlobDataHandle> blobDataHandle;
195 194
196 InSequence s; 195 InSequence s;
197 EXPECT_CALL(checkpoint, Call(1)); 196 EXPECT_CALL(checkpoint, Call(1));
198 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(Return(reader.get())) ; 197 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(Return(reader.get())) ;
199 EXPECT_CALL(*reader, drainAsBlobDataHandle(kDisallowBlobWithInvalidSize)).Wi llOnce(Return(inputBlobDataHandle)); 198 EXPECT_CALL(*reader, drainAsBlobDataHandle(kDisallowBlobWithInvalidSize)).Wi llOnce(Return(inputBlobDataHandle));
200 EXPECT_CALL(*reader, destruct()); 199 EXPECT_CALL(*reader, destruct());
201 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadedBlobHandleMock(_)).Wil lOnce(SaveArg<0>(&blobDataHandle)); 200 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadedBlobHandleMock(_)).Wil lOnce(SaveArg<0>(&blobDataHandle));
202 EXPECT_CALL(checkpoint, Call(2)); 201 EXPECT_CALL(checkpoint, Call(2));
203 EXPECT_CALL(checkpoint, Call(3)); 202 EXPECT_CALL(checkpoint, Call(3));
204 203
205 // |reader| is adopted by |obtainReader|. 204 // |reader| is adopted by |obtainReader|.
206 ASSERT_TRUE(reader.release()); 205 ASSERT_TRUE(reader.leakPtr());
207 206
208 checkpoint.Call(1); 207 checkpoint.Call(1);
209 fetchDataLoader->start(handle.get(), fetchDataLoaderClient); 208 fetchDataLoader->start(handle.get(), fetchDataLoaderClient);
210 checkpoint.Call(2); 209 checkpoint.Call(2);
211 fetchDataLoader->cancel(); 210 fetchDataLoader->cancel();
212 checkpoint.Call(3); 211 checkpoint.Call(3);
213 212
214 ASSERT_TRUE(blobDataHandle); 213 ASSERT_TRUE(blobDataHandle);
215 EXPECT_NE(inputBlobDataHandle, blobDataHandle); 214 EXPECT_NE(inputBlobDataHandle, blobDataHandle);
216 EXPECT_EQ(kQuickBrownFoxLengthWithTerminatingNull, blobDataHandle->size()); 215 EXPECT_EQ(kQuickBrownFoxLengthWithTerminatingNull, blobDataHandle->size());
217 EXPECT_EQ(String("text/test"), blobDataHandle->type()); 216 EXPECT_EQ(String("text/test"), blobDataHandle->type());
218 } 217 }
219 218
220 TEST(FetchDataLoaderTest, LoadAsArrayBuffer) 219 TEST(FetchDataLoaderTest, LoadAsArrayBuffer)
221 { 220 {
222 WebDataConsumerHandle::Client *client = nullptr; 221 WebDataConsumerHandle::Client *client = nullptr;
223 Checkpoint checkpoint; 222 Checkpoint checkpoint;
224 223
225 std::unique_ptr<MockHandle> handle = MockHandle::create(); 224 OwnPtr<MockHandle> handle = MockHandle::create();
226 std::unique_ptr<MockReader> reader = MockReader::create(); 225 OwnPtr<MockReader> reader = MockReader::create();
227 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsArrayBuffe r(); 226 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsArrayBuffe r();
228 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient ::create(); 227 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient ::create();
229 DOMArrayBuffer* arrayBuffer = nullptr; 228 DOMArrayBuffer* arrayBuffer = nullptr;
230 229
231 InSequence s; 230 InSequence s;
232 EXPECT_CALL(checkpoint, Call(1)); 231 EXPECT_CALL(checkpoint, Call(1));
233 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(DoAll(SaveArg<0>(&cli ent), Return(reader.get()))); 232 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(DoAll(SaveArg<0>(&cli ent), Return(reader.get())));
234 EXPECT_CALL(checkpoint, Call(2)); 233 EXPECT_CALL(checkpoint, Call(2));
235 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0> (static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengt hWithTerminatingNull), Return(kOk))); 234 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0> (static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengt hWithTerminatingNull), Return(kOk)));
236 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLengthWithTerminatingNull)).WillO nce(Return(kOk)); 235 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLengthWithTerminatingNull)).WillO nce(Return(kOk));
237 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kDone)); 236 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kDone));
238 EXPECT_CALL(*reader, destruct()); 237 EXPECT_CALL(*reader, destruct());
239 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadedArrayBufferMock(_)).Wi llOnce(SaveArg<0>(&arrayBuffer)); 238 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadedArrayBufferMock(_)).Wi llOnce(SaveArg<0>(&arrayBuffer));
240 EXPECT_CALL(checkpoint, Call(3)); 239 EXPECT_CALL(checkpoint, Call(3));
241 EXPECT_CALL(checkpoint, Call(4)); 240 EXPECT_CALL(checkpoint, Call(4));
242 241
243 // |reader| is adopted by |obtainReader|. 242 // |reader| is adopted by |obtainReader|.
244 ASSERT_TRUE(reader.release()); 243 ASSERT_TRUE(reader.leakPtr());
245 244
246 checkpoint.Call(1); 245 checkpoint.Call(1);
247 fetchDataLoader->start(handle.get(), fetchDataLoaderClient); 246 fetchDataLoader->start(handle.get(), fetchDataLoaderClient);
248 checkpoint.Call(2); 247 checkpoint.Call(2);
249 ASSERT_TRUE(client); 248 ASSERT_TRUE(client);
250 client->didGetReadable(); 249 client->didGetReadable();
251 checkpoint.Call(3); 250 checkpoint.Call(3);
252 fetchDataLoader->cancel(); 251 fetchDataLoader->cancel();
253 checkpoint.Call(4); 252 checkpoint.Call(4);
254 253
255 ASSERT_TRUE(arrayBuffer); 254 ASSERT_TRUE(arrayBuffer);
256 ASSERT_EQ(kQuickBrownFoxLengthWithTerminatingNull, arrayBuffer->byteLength() ); 255 ASSERT_EQ(kQuickBrownFoxLengthWithTerminatingNull, arrayBuffer->byteLength() );
257 EXPECT_STREQ(kQuickBrownFox, static_cast<const char*>(arrayBuffer->data())); 256 EXPECT_STREQ(kQuickBrownFox, static_cast<const char*>(arrayBuffer->data()));
258 } 257 }
259 258
260 TEST(FetchDataLoaderTest, LoadAsArrayBufferFailed) 259 TEST(FetchDataLoaderTest, LoadAsArrayBufferFailed)
261 { 260 {
262 WebDataConsumerHandle::Client *client = nullptr; 261 WebDataConsumerHandle::Client *client = nullptr;
263 Checkpoint checkpoint; 262 Checkpoint checkpoint;
264 263
265 std::unique_ptr<MockHandle> handle = MockHandle::create(); 264 OwnPtr<MockHandle> handle = MockHandle::create();
266 std::unique_ptr<MockReader> reader = MockReader::create(); 265 OwnPtr<MockReader> reader = MockReader::create();
267 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsArrayBuffe r(); 266 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsArrayBuffe r();
268 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient ::create(); 267 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient ::create();
269 268
270 InSequence s; 269 InSequence s;
271 EXPECT_CALL(checkpoint, Call(1)); 270 EXPECT_CALL(checkpoint, Call(1));
272 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(DoAll(SaveArg<0>(&cli ent), Return(reader.get()))); 271 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(DoAll(SaveArg<0>(&cli ent), Return(reader.get())));
273 EXPECT_CALL(checkpoint, Call(2)); 272 EXPECT_CALL(checkpoint, Call(2));
274 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0> (static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengt hWithTerminatingNull), Return(kOk))); 273 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0> (static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengt hWithTerminatingNull), Return(kOk)));
275 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLengthWithTerminatingNull)).WillO nce(Return(kOk)); 274 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLengthWithTerminatingNull)).WillO nce(Return(kOk));
276 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kUnexpectedErro r)); 275 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kUnexpectedErro r));
277 EXPECT_CALL(*reader, destruct()); 276 EXPECT_CALL(*reader, destruct());
278 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadFailed()); 277 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadFailed());
279 EXPECT_CALL(checkpoint, Call(3)); 278 EXPECT_CALL(checkpoint, Call(3));
280 EXPECT_CALL(checkpoint, Call(4)); 279 EXPECT_CALL(checkpoint, Call(4));
281 280
282 // |reader| is adopted by |obtainReader|. 281 // |reader| is adopted by |obtainReader|.
283 ASSERT_TRUE(reader.release()); 282 ASSERT_TRUE(reader.leakPtr());
284 283
285 checkpoint.Call(1); 284 checkpoint.Call(1);
286 fetchDataLoader->start(handle.get(), fetchDataLoaderClient); 285 fetchDataLoader->start(handle.get(), fetchDataLoaderClient);
287 checkpoint.Call(2); 286 checkpoint.Call(2);
288 ASSERT_TRUE(client); 287 ASSERT_TRUE(client);
289 client->didGetReadable(); 288 client->didGetReadable();
290 checkpoint.Call(3); 289 checkpoint.Call(3);
291 fetchDataLoader->cancel(); 290 fetchDataLoader->cancel();
292 checkpoint.Call(4); 291 checkpoint.Call(4);
293 } 292 }
294 293
295 TEST(FetchDataLoaderTest, LoadAsArrayBufferCancel) 294 TEST(FetchDataLoaderTest, LoadAsArrayBufferCancel)
296 { 295 {
297 Checkpoint checkpoint; 296 Checkpoint checkpoint;
298 297
299 std::unique_ptr<MockHandle> handle = MockHandle::create(); 298 OwnPtr<MockHandle> handle = MockHandle::create();
300 std::unique_ptr<MockReader> reader = MockReader::create(); 299 OwnPtr<MockReader> reader = MockReader::create();
301 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsArrayBuffe r(); 300 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsArrayBuffe r();
302 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient ::create(); 301 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient ::create();
303 302
304 InSequence s; 303 InSequence s;
305 EXPECT_CALL(checkpoint, Call(1)); 304 EXPECT_CALL(checkpoint, Call(1));
306 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(Return(reader.get())) ; 305 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(Return(reader.get())) ;
307 EXPECT_CALL(checkpoint, Call(2)); 306 EXPECT_CALL(checkpoint, Call(2));
308 EXPECT_CALL(*reader, destruct()); 307 EXPECT_CALL(*reader, destruct());
309 EXPECT_CALL(checkpoint, Call(3)); 308 EXPECT_CALL(checkpoint, Call(3));
310 309
311 // |reader| is adopted by |obtainReader|. 310 // |reader| is adopted by |obtainReader|.
312 ASSERT_TRUE(reader.release()); 311 ASSERT_TRUE(reader.leakPtr());
313 312
314 checkpoint.Call(1); 313 checkpoint.Call(1);
315 fetchDataLoader->start(handle.get(), fetchDataLoaderClient); 314 fetchDataLoader->start(handle.get(), fetchDataLoaderClient);
316 checkpoint.Call(2); 315 checkpoint.Call(2);
317 fetchDataLoader->cancel(); 316 fetchDataLoader->cancel();
318 checkpoint.Call(3); 317 checkpoint.Call(3);
319 } 318 }
320 319
321 TEST(FetchDataLoaderTest, LoadAsString) 320 TEST(FetchDataLoaderTest, LoadAsString)
322 { 321 {
323 WebDataConsumerHandle::Client *client = nullptr; 322 WebDataConsumerHandle::Client *client = nullptr;
324 Checkpoint checkpoint; 323 Checkpoint checkpoint;
325 324
326 std::unique_ptr<MockHandle> handle = MockHandle::create(); 325 OwnPtr<MockHandle> handle = MockHandle::create();
327 std::unique_ptr<MockReader> reader = MockReader::create(); 326 OwnPtr<MockReader> reader = MockReader::create();
328 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsString(); 327 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsString();
329 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient ::create(); 328 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient ::create();
330 329
331 InSequence s; 330 InSequence s;
332 EXPECT_CALL(checkpoint, Call(1)); 331 EXPECT_CALL(checkpoint, Call(1));
333 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(DoAll(SaveArg<0>(&cli ent), Return(reader.get()))); 332 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(DoAll(SaveArg<0>(&cli ent), Return(reader.get())));
334 EXPECT_CALL(checkpoint, Call(2)); 333 EXPECT_CALL(checkpoint, Call(2));
335 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0> (static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengt h), Return(kOk))); 334 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0> (static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengt h), Return(kOk)));
336 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLength)).WillOnce(Return(kOk)); 335 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLength)).WillOnce(Return(kOk));
337 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kDone)); 336 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kDone));
338 EXPECT_CALL(*reader, destruct()); 337 EXPECT_CALL(*reader, destruct());
339 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadedString(String(kQuickBr ownFox))); 338 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadedString(String(kQuickBr ownFox)));
340 EXPECT_CALL(checkpoint, Call(3)); 339 EXPECT_CALL(checkpoint, Call(3));
341 EXPECT_CALL(checkpoint, Call(4)); 340 EXPECT_CALL(checkpoint, Call(4));
342 341
343 // |reader| is adopted by |obtainReader|. 342 // |reader| is adopted by |obtainReader|.
344 ASSERT_TRUE(reader.release()); 343 ASSERT_TRUE(reader.leakPtr());
345 344
346 checkpoint.Call(1); 345 checkpoint.Call(1);
347 fetchDataLoader->start(handle.get(), fetchDataLoaderClient); 346 fetchDataLoader->start(handle.get(), fetchDataLoaderClient);
348 checkpoint.Call(2); 347 checkpoint.Call(2);
349 ASSERT_TRUE(client); 348 ASSERT_TRUE(client);
350 client->didGetReadable(); 349 client->didGetReadable();
351 checkpoint.Call(3); 350 checkpoint.Call(3);
352 fetchDataLoader->cancel(); 351 fetchDataLoader->cancel();
353 checkpoint.Call(4); 352 checkpoint.Call(4);
354 } 353 }
355 354
356 TEST(FetchDataLoaderTest, LoadAsStringWithNullBytes) 355 TEST(FetchDataLoaderTest, LoadAsStringWithNullBytes)
357 { 356 {
358 WebDataConsumerHandle::Client *client = nullptr; 357 WebDataConsumerHandle::Client *client = nullptr;
359 Checkpoint checkpoint; 358 Checkpoint checkpoint;
360 359
361 std::unique_ptr<MockHandle> handle = MockHandle::create(); 360 OwnPtr<MockHandle> handle = MockHandle::create();
362 std::unique_ptr<MockReader> reader = MockReader::create(); 361 OwnPtr<MockReader> reader = MockReader::create();
363 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsString(); 362 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsString();
364 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient ::create(); 363 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient ::create();
365 364
366 InSequence s; 365 InSequence s;
367 EXPECT_CALL(checkpoint, Call(1)); 366 EXPECT_CALL(checkpoint, Call(1));
368 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(DoAll(SaveArg<0>(&cli ent), Return(reader.get()))); 367 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(DoAll(SaveArg<0>(&cli ent), Return(reader.get())));
369 EXPECT_CALL(checkpoint, Call(2)); 368 EXPECT_CALL(checkpoint, Call(2));
370 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0> (static_cast<const void*>("Quick\0brown\0fox")), SetArgPointee<2>(16), Return(kO k))); 369 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0> (static_cast<const void*>("Quick\0brown\0fox")), SetArgPointee<2>(16), Return(kO k)));
371 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLengthWithTerminatingNull)).WillO nce(Return(kOk)); 370 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLengthWithTerminatingNull)).WillO nce(Return(kOk));
372 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kDone)); 371 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kDone));
373 EXPECT_CALL(*reader, destruct()); 372 EXPECT_CALL(*reader, destruct());
374 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadedString(String("Quick\0 brown\0fox", 16))); 373 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadedString(String("Quick\0 brown\0fox", 16)));
375 EXPECT_CALL(checkpoint, Call(3)); 374 EXPECT_CALL(checkpoint, Call(3));
376 EXPECT_CALL(checkpoint, Call(4)); 375 EXPECT_CALL(checkpoint, Call(4));
377 376
378 // |reader| is adopted by |obtainReader|. 377 // |reader| is adopted by |obtainReader|.
379 ASSERT_TRUE(reader.release()); 378 ASSERT_TRUE(reader.leakPtr());
380 379
381 checkpoint.Call(1); 380 checkpoint.Call(1);
382 fetchDataLoader->start(handle.get(), fetchDataLoaderClient); 381 fetchDataLoader->start(handle.get(), fetchDataLoaderClient);
383 checkpoint.Call(2); 382 checkpoint.Call(2);
384 ASSERT_TRUE(client); 383 ASSERT_TRUE(client);
385 client->didGetReadable(); 384 client->didGetReadable();
386 checkpoint.Call(3); 385 checkpoint.Call(3);
387 fetchDataLoader->cancel(); 386 fetchDataLoader->cancel();
388 checkpoint.Call(4); 387 checkpoint.Call(4);
389 } 388 }
390 389
391 TEST(FetchDataLoaderTest, LoadAsStringError) 390 TEST(FetchDataLoaderTest, LoadAsStringError)
392 { 391 {
393 WebDataConsumerHandle::Client *client = nullptr; 392 WebDataConsumerHandle::Client *client = nullptr;
394 Checkpoint checkpoint; 393 Checkpoint checkpoint;
395 394
396 std::unique_ptr<MockHandle> handle = MockHandle::create(); 395 OwnPtr<MockHandle> handle = MockHandle::create();
397 std::unique_ptr<MockReader> reader = MockReader::create(); 396 OwnPtr<MockReader> reader = MockReader::create();
398 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsString(); 397 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsString();
399 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient ::create(); 398 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient ::create();
400 399
401 InSequence s; 400 InSequence s;
402 EXPECT_CALL(checkpoint, Call(1)); 401 EXPECT_CALL(checkpoint, Call(1));
403 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(DoAll(SaveArg<0>(&cli ent), Return(reader.get()))); 402 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(DoAll(SaveArg<0>(&cli ent), Return(reader.get())));
404 EXPECT_CALL(checkpoint, Call(2)); 403 EXPECT_CALL(checkpoint, Call(2));
405 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0> (static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengt h), Return(kOk))); 404 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0> (static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengt h), Return(kOk)));
406 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLength)).WillOnce(Return(kOk)); 405 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLength)).WillOnce(Return(kOk));
407 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kUnexpectedErro r)); 406 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kUnexpectedErro r));
408 EXPECT_CALL(*reader, destruct()); 407 EXPECT_CALL(*reader, destruct());
409 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadFailed()); 408 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadFailed());
410 EXPECT_CALL(checkpoint, Call(3)); 409 EXPECT_CALL(checkpoint, Call(3));
411 EXPECT_CALL(checkpoint, Call(4)); 410 EXPECT_CALL(checkpoint, Call(4));
412 411
413 // |reader| is adopted by |obtainReader|. 412 // |reader| is adopted by |obtainReader|.
414 ASSERT_TRUE(reader.release()); 413 ASSERT_TRUE(reader.leakPtr());
415 414
416 checkpoint.Call(1); 415 checkpoint.Call(1);
417 fetchDataLoader->start(handle.get(), fetchDataLoaderClient); 416 fetchDataLoader->start(handle.get(), fetchDataLoaderClient);
418 checkpoint.Call(2); 417 checkpoint.Call(2);
419 ASSERT_TRUE(client); 418 ASSERT_TRUE(client);
420 client->didGetReadable(); 419 client->didGetReadable();
421 checkpoint.Call(3); 420 checkpoint.Call(3);
422 fetchDataLoader->cancel(); 421 fetchDataLoader->cancel();
423 checkpoint.Call(4); 422 checkpoint.Call(4);
424 } 423 }
425 424
426 TEST(FetchDataLoaderTest, LoadAsStringCancel) 425 TEST(FetchDataLoaderTest, LoadAsStringCancel)
427 { 426 {
428 Checkpoint checkpoint; 427 Checkpoint checkpoint;
429 428
430 std::unique_ptr<MockHandle> handle = MockHandle::create(); 429 OwnPtr<MockHandle> handle = MockHandle::create();
431 std::unique_ptr<MockReader> reader = MockReader::create(); 430 OwnPtr<MockReader> reader = MockReader::create();
432 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsString(); 431 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsString();
433 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient ::create(); 432 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient ::create();
434 433
435 InSequence s; 434 InSequence s;
436 EXPECT_CALL(checkpoint, Call(1)); 435 EXPECT_CALL(checkpoint, Call(1));
437 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(Return(reader.get())) ; 436 EXPECT_CALL(*handle, obtainReaderInternal(_)).WillOnce(Return(reader.get())) ;
438 EXPECT_CALL(checkpoint, Call(2)); 437 EXPECT_CALL(checkpoint, Call(2));
439 EXPECT_CALL(*reader, destruct()); 438 EXPECT_CALL(*reader, destruct());
440 EXPECT_CALL(checkpoint, Call(3)); 439 EXPECT_CALL(checkpoint, Call(3));
441 440
442 // |reader| is adopted by |obtainReader|. 441 // |reader| is adopted by |obtainReader|.
443 ASSERT_TRUE(reader.release()); 442 ASSERT_TRUE(reader.leakPtr());
444 443
445 checkpoint.Call(1); 444 checkpoint.Call(1);
446 fetchDataLoader->start(handle.get(), fetchDataLoaderClient); 445 fetchDataLoader->start(handle.get(), fetchDataLoaderClient);
447 checkpoint.Call(2); 446 checkpoint.Call(2);
448 fetchDataLoader->cancel(); 447 fetchDataLoader->cancel();
449 checkpoint.Call(3); 448 checkpoint.Call(3);
450 } 449 }
451 450
452 } // namespace 451 } // namespace
453 452
454 } // namespace blink 453 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698