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

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

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

Powered by Google App Engine
This is Rietveld 408576698