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

Side by Side Diff: webkit/blob/blob_storage_controller_unittest.cc

Issue 10834289: Split net::UploadData into two: for IPC and for upload handling (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 4 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "base/file_path.h" 5 #include "base/file_path.h"
6 #include "base/memory/ref_counted.h" 6 #include "base/memory/ref_counted.h"
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/time.h" 8 #include "base/time.h"
9 #include "net/base/upload_data.h" 9 #include "net/base/upload_data.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
11 #include "webkit/blob/blob_data.h" 11 #include "webkit/blob/blob_data.h"
12 #include "webkit/blob/blob_storage_controller.h" 12 #include "webkit/blob/blob_storage_controller.h"
13 13 #include "webkit/glue/webupload_data.h"
14 using net::UploadData;
15 14
16 namespace webkit_blob { 15 namespace webkit_blob {
17 16
18 TEST(BlobStorageControllerTest, RegisterBlobUrl) { 17 TEST(BlobStorageControllerTest, RegisterBlobUrl) {
19 // Setup a set of blob data for testing. 18 // Setup a set of blob data for testing.
20 base::Time time1, time2; 19 base::Time time1, time2;
21 base::Time::FromString("Tue, 15 Nov 1994, 12:45:26 GMT", &time1); 20 base::Time::FromString("Tue, 15 Nov 1994, 12:45:26 GMT", &time1);
22 base::Time::FromString("Mon, 14 Nov 1994, 11:30:49 GMT", &time2); 21 base::Time::FromString("Mon, 14 Nov 1994, 11:30:49 GMT", &time2);
23 22
24 scoped_refptr<BlobData> blob_data1(new BlobData()); 23 scoped_refptr<BlobData> blob_data1(new BlobData());
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 GURL blob_url1("blob://url_1"); 94 GURL blob_url1("blob://url_1");
96 blob_storage_controller.AddFinishedBlob(blob_url1, blob_data); 95 blob_storage_controller.AddFinishedBlob(blob_url1, blob_data);
97 96
98 GURL blob_url2("blob://url_2"); 97 GURL blob_url2("blob://url_2");
99 blob_storage_controller.CloneBlob(blob_url2, blob_url1); 98 blob_storage_controller.CloneBlob(blob_url2, blob_url1);
100 99
101 GURL blob_url3("blob://url_3"); 100 GURL blob_url3("blob://url_3");
102 blob_storage_controller.CloneBlob(blob_url3, blob_url2); 101 blob_storage_controller.CloneBlob(blob_url3, blob_url2);
103 102
104 // Setup upload data elements for comparison. 103 // Setup upload data elements for comparison.
105 UploadData::Element blob_element1, blob_element2; 104 WebUploadData::Element blob_element1, blob_element2;
106 blob_element1.SetToBytes( 105 blob_element1.SetToBytes(
107 blob_data->items().at(0).data.c_str() + 106 blob_data->items().at(0).data.c_str() +
108 static_cast<int>(blob_data->items().at(0).offset), 107 static_cast<int>(blob_data->items().at(0).offset),
109 static_cast<int>(blob_data->items().at(0).length)); 108 static_cast<int>(blob_data->items().at(0).length));
110 blob_element2.SetToFilePathRange( 109 blob_element2.SetToFilePathRange(
111 blob_data->items().at(1).file_path, 110 blob_data->items().at(1).file_path,
112 blob_data->items().at(1).offset, 111 blob_data->items().at(1).offset,
113 blob_data->items().at(1).length, 112 blob_data->items().at(1).length,
114 blob_data->items().at(1).expected_modification_time); 113 blob_data->items().at(1).expected_modification_time);
115 114
116 UploadData::Element upload_element1, upload_element2; 115 WebUploadData::Element upload_element1, upload_element2;
117 upload_element1.SetToBytes("Hello", 5); 116 upload_element1.SetToBytes("Hello", 5);
118 upload_element2.SetToFilePathRange( 117 upload_element2.SetToFilePathRange(
119 FilePath(FILE_PATH_LITERAL("foo1.txt")), 0, 20, time2); 118 FilePath(FILE_PATH_LITERAL("foo1.txt")), 0, 20, time2);
120 119
121 // Test no blob reference. 120 // Test no blob reference.
122 scoped_refptr<UploadData> upload_data(new UploadData()); 121 scoped_refptr<WebUploadData> upload_data(new WebUploadData());
123 upload_data->AppendBytes( 122 upload_data->AppendBytes(
124 &upload_element1.bytes().at(0), 123 &upload_element1.bytes().at(0),
125 upload_element1.bytes().size()); 124 upload_element1.bytes().size());
126 upload_data->AppendFileRange( 125 upload_data->AppendFileRange(
127 upload_element2.file_path(), 126 upload_element2.file_path(),
128 upload_element2.file_range_offset(), 127 upload_element2.file_range_offset(),
129 upload_element2.file_range_length(), 128 upload_element2.file_range_length(),
130 upload_element2.expected_file_modification_time()); 129 upload_element2.expected_file_modification_time());
131 130
132 blob_storage_controller.ResolveBlobReferencesInUploadData(upload_data.get()); 131 blob_storage_controller.ResolveBlobReferencesInUploadData(upload_data.get());
133 ASSERT_EQ(upload_data->elements()->size(), 2U); 132 ASSERT_EQ(upload_data->elements()->size(), 2U);
134 EXPECT_TRUE(upload_data->elements()->at(0) == upload_element1); 133 EXPECT_TRUE(upload_data->elements()->at(0) == upload_element1);
135 EXPECT_TRUE(upload_data->elements()->at(1) == upload_element2); 134 EXPECT_TRUE(upload_data->elements()->at(1) == upload_element2);
136 135
137 // Test having only one blob reference that refers to empty blob data. 136 // Test having only one blob reference that refers to empty blob data.
138 upload_data = new UploadData(); 137 upload_data = new WebUploadData();
139 upload_data->AppendBlob(blob_url0); 138 upload_data->AppendBlob(blob_url0);
140 139
141 blob_storage_controller.ResolveBlobReferencesInUploadData(upload_data.get()); 140 blob_storage_controller.ResolveBlobReferencesInUploadData(upload_data.get());
142 ASSERT_EQ(upload_data->elements()->size(), 0U); 141 ASSERT_EQ(upload_data->elements()->size(), 0U);
143 142
144 // Test having only one blob reference. 143 // Test having only one blob reference.
145 upload_data = new UploadData(); 144 upload_data = new WebUploadData();
146 upload_data->AppendBlob(blob_url1); 145 upload_data->AppendBlob(blob_url1);
147 146
148 blob_storage_controller.ResolveBlobReferencesInUploadData(upload_data.get()); 147 blob_storage_controller.ResolveBlobReferencesInUploadData(upload_data.get());
149 ASSERT_EQ(upload_data->elements()->size(), 2U); 148 ASSERT_EQ(upload_data->elements()->size(), 2U);
150 EXPECT_TRUE(upload_data->elements()->at(0) == blob_element1); 149 EXPECT_TRUE(upload_data->elements()->at(0) == blob_element1);
151 EXPECT_TRUE(upload_data->elements()->at(1) == blob_element2); 150 EXPECT_TRUE(upload_data->elements()->at(1) == blob_element2);
152 151
153 // Test having one blob reference at the beginning. 152 // Test having one blob reference at the beginning.
154 upload_data = new UploadData(); 153 upload_data = new WebUploadData();
155 upload_data->AppendBlob(blob_url1); 154 upload_data->AppendBlob(blob_url1);
156 upload_data->AppendBytes( 155 upload_data->AppendBytes(
157 &upload_element1.bytes().at(0), 156 &upload_element1.bytes().at(0),
158 upload_element1.bytes().size()); 157 upload_element1.bytes().size());
159 upload_data->AppendFileRange( 158 upload_data->AppendFileRange(
160 upload_element2.file_path(), 159 upload_element2.file_path(),
161 upload_element2.file_range_offset(), 160 upload_element2.file_range_offset(),
162 upload_element2.file_range_length(), 161 upload_element2.file_range_length(),
163 upload_element2.expected_file_modification_time()); 162 upload_element2.expected_file_modification_time());
164 163
165 blob_storage_controller.ResolveBlobReferencesInUploadData(upload_data.get()); 164 blob_storage_controller.ResolveBlobReferencesInUploadData(upload_data.get());
166 ASSERT_EQ(upload_data->elements()->size(), 4U); 165 ASSERT_EQ(upload_data->elements()->size(), 4U);
167 EXPECT_TRUE(upload_data->elements()->at(0) == blob_element1); 166 EXPECT_TRUE(upload_data->elements()->at(0) == blob_element1);
168 EXPECT_TRUE(upload_data->elements()->at(1) == blob_element2); 167 EXPECT_TRUE(upload_data->elements()->at(1) == blob_element2);
169 EXPECT_TRUE(upload_data->elements()->at(2) == upload_element1); 168 EXPECT_TRUE(upload_data->elements()->at(2) == upload_element1);
170 EXPECT_TRUE(upload_data->elements()->at(3) == upload_element2); 169 EXPECT_TRUE(upload_data->elements()->at(3) == upload_element2);
171 170
172 // Test having one blob reference at the end. 171 // Test having one blob reference at the end.
173 upload_data = new UploadData(); 172 upload_data = new WebUploadData();
174 upload_data->AppendBytes( 173 upload_data->AppendBytes(
175 &upload_element1.bytes().at(0), 174 &upload_element1.bytes().at(0),
176 upload_element1.bytes().size()); 175 upload_element1.bytes().size());
177 upload_data->AppendFileRange( 176 upload_data->AppendFileRange(
178 upload_element2.file_path(), 177 upload_element2.file_path(),
179 upload_element2.file_range_offset(), 178 upload_element2.file_range_offset(),
180 upload_element2.file_range_length(), 179 upload_element2.file_range_length(),
181 upload_element2.expected_file_modification_time()); 180 upload_element2.expected_file_modification_time());
182 upload_data->AppendBlob(blob_url1); 181 upload_data->AppendBlob(blob_url1);
183 182
184 blob_storage_controller.ResolveBlobReferencesInUploadData(upload_data.get()); 183 blob_storage_controller.ResolveBlobReferencesInUploadData(upload_data.get());
185 ASSERT_EQ(upload_data->elements()->size(), 4U); 184 ASSERT_EQ(upload_data->elements()->size(), 4U);
186 EXPECT_TRUE(upload_data->elements()->at(0) == upload_element1); 185 EXPECT_TRUE(upload_data->elements()->at(0) == upload_element1);
187 EXPECT_TRUE(upload_data->elements()->at(1) == upload_element2); 186 EXPECT_TRUE(upload_data->elements()->at(1) == upload_element2);
188 EXPECT_TRUE(upload_data->elements()->at(2) == blob_element1); 187 EXPECT_TRUE(upload_data->elements()->at(2) == blob_element1);
189 EXPECT_TRUE(upload_data->elements()->at(3) == blob_element2); 188 EXPECT_TRUE(upload_data->elements()->at(3) == blob_element2);
190 189
191 // Test having one blob reference in the middle. 190 // Test having one blob reference in the middle.
192 upload_data = new UploadData(); 191 upload_data = new WebUploadData();
193 upload_data->AppendBytes( 192 upload_data->AppendBytes(
194 &upload_element1.bytes().at(0), 193 &upload_element1.bytes().at(0),
195 upload_element1.bytes().size()); 194 upload_element1.bytes().size());
196 upload_data->AppendBlob(blob_url1); 195 upload_data->AppendBlob(blob_url1);
197 upload_data->AppendFileRange( 196 upload_data->AppendFileRange(
198 upload_element2.file_path(), 197 upload_element2.file_path(),
199 upload_element2.file_range_offset(), 198 upload_element2.file_range_offset(),
200 upload_element2.file_range_length(), 199 upload_element2.file_range_length(),
201 upload_element2.expected_file_modification_time()); 200 upload_element2.expected_file_modification_time());
202 201
203 blob_storage_controller.ResolveBlobReferencesInUploadData(upload_data.get()); 202 blob_storage_controller.ResolveBlobReferencesInUploadData(upload_data.get());
204 ASSERT_EQ(upload_data->elements()->size(), 4U); 203 ASSERT_EQ(upload_data->elements()->size(), 4U);
205 EXPECT_TRUE(upload_data->elements()->at(0) == upload_element1); 204 EXPECT_TRUE(upload_data->elements()->at(0) == upload_element1);
206 EXPECT_TRUE(upload_data->elements()->at(1) == blob_element1); 205 EXPECT_TRUE(upload_data->elements()->at(1) == blob_element1);
207 EXPECT_TRUE(upload_data->elements()->at(2) == blob_element2); 206 EXPECT_TRUE(upload_data->elements()->at(2) == blob_element2);
208 EXPECT_TRUE(upload_data->elements()->at(3) == upload_element2); 207 EXPECT_TRUE(upload_data->elements()->at(3) == upload_element2);
209 208
210 // Test having multiple blob references. 209 // Test having multiple blob references.
211 upload_data = new UploadData(); 210 upload_data = new WebUploadData();
212 upload_data->AppendBlob(blob_url1); 211 upload_data->AppendBlob(blob_url1);
213 upload_data->AppendBytes( 212 upload_data->AppendBytes(
214 &upload_element1.bytes().at(0), 213 &upload_element1.bytes().at(0),
215 upload_element1.bytes().size()); 214 upload_element1.bytes().size());
216 upload_data->AppendBlob(blob_url2); 215 upload_data->AppendBlob(blob_url2);
217 upload_data->AppendBlob(blob_url3); 216 upload_data->AppendBlob(blob_url3);
218 upload_data->AppendFileRange( 217 upload_data->AppendFileRange(
219 upload_element2.file_path(), 218 upload_element2.file_path(),
220 upload_element2.file_range_offset(), 219 upload_element2.file_range_offset(),
221 upload_element2.file_range_length(), 220 upload_element2.file_range_length(),
222 upload_element2.expected_file_modification_time()); 221 upload_element2.expected_file_modification_time());
223 222
224 blob_storage_controller.ResolveBlobReferencesInUploadData(upload_data.get()); 223 blob_storage_controller.ResolveBlobReferencesInUploadData(upload_data.get());
225 ASSERT_EQ(upload_data->elements()->size(), 8U); 224 ASSERT_EQ(upload_data->elements()->size(), 8U);
226 EXPECT_TRUE(upload_data->elements()->at(0) == blob_element1); 225 EXPECT_TRUE(upload_data->elements()->at(0) == blob_element1);
227 EXPECT_TRUE(upload_data->elements()->at(1) == blob_element2); 226 EXPECT_TRUE(upload_data->elements()->at(1) == blob_element2);
228 EXPECT_TRUE(upload_data->elements()->at(2) == upload_element1); 227 EXPECT_TRUE(upload_data->elements()->at(2) == upload_element1);
229 EXPECT_TRUE(upload_data->elements()->at(3) == blob_element1); 228 EXPECT_TRUE(upload_data->elements()->at(3) == blob_element1);
230 EXPECT_TRUE(upload_data->elements()->at(4) == blob_element2); 229 EXPECT_TRUE(upload_data->elements()->at(4) == blob_element2);
231 EXPECT_TRUE(upload_data->elements()->at(5) == blob_element1); 230 EXPECT_TRUE(upload_data->elements()->at(5) == blob_element1);
232 EXPECT_TRUE(upload_data->elements()->at(6) == blob_element2); 231 EXPECT_TRUE(upload_data->elements()->at(6) == blob_element2);
233 EXPECT_TRUE(upload_data->elements()->at(7) == upload_element2); 232 EXPECT_TRUE(upload_data->elements()->at(7) == upload_element2);
234 } 233 }
235 234
236 } // namespace webkit_blob 235 } // namespace webkit_blob
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698