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

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
« no previous file with comments | « webkit/blob/blob_storage_controller.cc ('k') | webkit/glue/resource_loader_bridge.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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"
tony 2012/08/20 18:43:10 Nit: Can you remove the upload_data.h include?
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 #include "webkit/glue/resource_request_body.h"
13 14
14 using net::UploadData; 15 using webkit_glue::ResourceRequestBody;
15 16
16 namespace webkit_blob { 17 namespace webkit_blob {
17 18
18 TEST(BlobStorageControllerTest, RegisterBlobUrl) { 19 TEST(BlobStorageControllerTest, RegisterBlobUrl) {
19 // Setup a set of blob data for testing. 20 // Setup a set of blob data for testing.
20 base::Time time1, time2; 21 base::Time time1, time2;
21 base::Time::FromString("Tue, 15 Nov 1994, 12:45:26 GMT", &time1); 22 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); 23 base::Time::FromString("Mon, 14 Nov 1994, 11:30:49 GMT", &time2);
23 24
24 scoped_refptr<BlobData> blob_data1(new BlobData()); 25 scoped_refptr<BlobData> blob_data1(new BlobData());
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 blob_data_found = blob_storage_controller.GetBlobDataFromUrl(blob_url3); 70 blob_data_found = blob_storage_controller.GetBlobDataFromUrl(blob_url3);
70 ASSERT_TRUE(blob_data_found != NULL); 71 ASSERT_TRUE(blob_data_found != NULL);
71 EXPECT_TRUE(*blob_data_found == *blob_data1); 72 EXPECT_TRUE(*blob_data_found == *blob_data1);
72 73
73 // Test unregistering a blob URL. 74 // Test unregistering a blob URL.
74 blob_storage_controller.RemoveBlob(blob_url3); 75 blob_storage_controller.RemoveBlob(blob_url3);
75 blob_data_found = blob_storage_controller.GetBlobDataFromUrl(blob_url3); 76 blob_data_found = blob_storage_controller.GetBlobDataFromUrl(blob_url3);
76 EXPECT_TRUE(!blob_data_found); 77 EXPECT_TRUE(!blob_data_found);
77 } 78 }
78 79
79 TEST(BlobStorageControllerTest, ResolveBlobReferencesInUploadData) { 80 TEST(BlobStorageControllerTest, ResolveBlobReferencesInRequestBody) {
80 // Setup blob data for testing. 81 // Setup blob data for testing.
81 base::Time time1, time2; 82 base::Time time1, time2;
82 base::Time::FromString("Tue, 15 Nov 1994, 12:45:26 GMT", &time1); 83 base::Time::FromString("Tue, 15 Nov 1994, 12:45:26 GMT", &time1);
83 base::Time::FromString("Mon, 14 Nov 1994, 11:30:49 GMT", &time2); 84 base::Time::FromString("Mon, 14 Nov 1994, 11:30:49 GMT", &time2);
84 85
85 BlobStorageController blob_storage_controller; 86 BlobStorageController blob_storage_controller;
86 scoped_refptr<BlobData> blob_data(new BlobData()); 87 scoped_refptr<BlobData> blob_data(new BlobData());
87 88
88 GURL blob_url0("blob://url_0"); 89 GURL blob_url0("blob://url_0");
89 blob_storage_controller.AddFinishedBlob(blob_url0, blob_data); 90 blob_storage_controller.AddFinishedBlob(blob_url0, blob_data);
90 91
91 blob_data->AppendData("BlobData"); 92 blob_data->AppendData("BlobData");
92 blob_data->AppendFile( 93 blob_data->AppendFile(
93 FilePath(FILE_PATH_LITERAL("BlobFile.txt")), 0, 20, time1); 94 FilePath(FILE_PATH_LITERAL("BlobFile.txt")), 0, 20, time1);
94 95
95 GURL blob_url1("blob://url_1"); 96 GURL blob_url1("blob://url_1");
96 blob_storage_controller.AddFinishedBlob(blob_url1, blob_data); 97 blob_storage_controller.AddFinishedBlob(blob_url1, blob_data);
97 98
98 GURL blob_url2("blob://url_2"); 99 GURL blob_url2("blob://url_2");
99 blob_storage_controller.CloneBlob(blob_url2, blob_url1); 100 blob_storage_controller.CloneBlob(blob_url2, blob_url1);
100 101
101 GURL blob_url3("blob://url_3"); 102 GURL blob_url3("blob://url_3");
102 blob_storage_controller.CloneBlob(blob_url3, blob_url2); 103 blob_storage_controller.CloneBlob(blob_url3, blob_url2);
103 104
104 // Setup upload data elements for comparison. 105 // Setup upload data elements for comparison.
105 UploadData::Element blob_element1, blob_element2; 106 ResourceRequestBody::Element blob_element1, blob_element2;
106 blob_element1.SetToBytes( 107 blob_element1.SetToBytes(
107 blob_data->items().at(0).data.c_str() + 108 blob_data->items().at(0).data.c_str() +
108 static_cast<int>(blob_data->items().at(0).offset), 109 static_cast<int>(blob_data->items().at(0).offset),
109 static_cast<int>(blob_data->items().at(0).length)); 110 static_cast<int>(blob_data->items().at(0).length));
110 blob_element2.SetToFilePathRange( 111 blob_element2.SetToFilePathRange(
111 blob_data->items().at(1).file_path, 112 blob_data->items().at(1).file_path,
112 blob_data->items().at(1).offset, 113 blob_data->items().at(1).offset,
113 blob_data->items().at(1).length, 114 blob_data->items().at(1).length,
114 blob_data->items().at(1).expected_modification_time); 115 blob_data->items().at(1).expected_modification_time);
115 116
116 UploadData::Element upload_element1, upload_element2; 117 ResourceRequestBody::Element upload_element1, upload_element2;
117 upload_element1.SetToBytes("Hello", 5); 118 upload_element1.SetToBytes("Hello", 5);
118 upload_element2.SetToFilePathRange( 119 upload_element2.SetToFilePathRange(
119 FilePath(FILE_PATH_LITERAL("foo1.txt")), 0, 20, time2); 120 FilePath(FILE_PATH_LITERAL("foo1.txt")), 0, 20, time2);
120 121
121 // Test no blob reference. 122 // Test no blob reference.
122 scoped_refptr<UploadData> upload_data(new UploadData()); 123 scoped_refptr<ResourceRequestBody> request_body(new ResourceRequestBody());
123 upload_data->AppendBytes( 124 request_body->AppendBytes(
124 &upload_element1.bytes().at(0), 125 upload_element1.bytes(),
125 upload_element1.bytes().size()); 126 upload_element1.bytes_length());
126 upload_data->AppendFileRange( 127 request_body->AppendFileRange(
127 upload_element2.file_path(), 128 upload_element2.file_path(),
128 upload_element2.file_range_offset(), 129 upload_element2.file_range_offset(),
129 upload_element2.file_range_length(), 130 upload_element2.file_range_length(),
130 upload_element2.expected_file_modification_time()); 131 upload_element2.expected_file_modification_time());
131 132
132 blob_storage_controller.ResolveBlobReferencesInUploadData(upload_data.get()); 133 blob_storage_controller.ResolveBlobReferencesInRequestBody(
133 ASSERT_EQ(upload_data->elements()->size(), 2U); 134 request_body.get());
134 EXPECT_TRUE(upload_data->elements()->at(0) == upload_element1); 135 ASSERT_EQ(request_body->elements()->size(), 2U);
135 EXPECT_TRUE(upload_data->elements()->at(1) == upload_element2); 136 EXPECT_TRUE(request_body->elements()->at(0) == upload_element1);
137 EXPECT_TRUE(request_body->elements()->at(1) == upload_element2);
136 138
137 // Test having only one blob reference that refers to empty blob data. 139 // Test having only one blob reference that refers to empty blob data.
138 upload_data = new UploadData(); 140 request_body = new ResourceRequestBody();
139 upload_data->AppendBlob(blob_url0); 141 request_body->AppendBlob(blob_url0);
140 142
141 blob_storage_controller.ResolveBlobReferencesInUploadData(upload_data.get()); 143 blob_storage_controller.ResolveBlobReferencesInRequestBody(
142 ASSERT_EQ(upload_data->elements()->size(), 0U); 144 request_body.get());
145 ASSERT_EQ(request_body->elements()->size(), 0U);
143 146
144 // Test having only one blob reference. 147 // Test having only one blob reference.
145 upload_data = new UploadData(); 148 request_body = new ResourceRequestBody();
146 upload_data->AppendBlob(blob_url1); 149 request_body->AppendBlob(blob_url1);
147 150
148 blob_storage_controller.ResolveBlobReferencesInUploadData(upload_data.get()); 151 blob_storage_controller.ResolveBlobReferencesInRequestBody(
149 ASSERT_EQ(upload_data->elements()->size(), 2U); 152 request_body.get());
150 EXPECT_TRUE(upload_data->elements()->at(0) == blob_element1); 153 ASSERT_EQ(request_body->elements()->size(), 2U);
151 EXPECT_TRUE(upload_data->elements()->at(1) == blob_element2); 154 EXPECT_TRUE(request_body->elements()->at(0) == blob_element1);
155 EXPECT_TRUE(request_body->elements()->at(1) == blob_element2);
152 156
153 // Test having one blob reference at the beginning. 157 // Test having one blob reference at the beginning.
154 upload_data = new UploadData(); 158 request_body = new ResourceRequestBody();
155 upload_data->AppendBlob(blob_url1); 159 request_body->AppendBlob(blob_url1);
156 upload_data->AppendBytes( 160 request_body->AppendBytes(
157 &upload_element1.bytes().at(0), 161 upload_element1.bytes(),
158 upload_element1.bytes().size()); 162 upload_element1.bytes_length());
159 upload_data->AppendFileRange( 163 request_body->AppendFileRange(
160 upload_element2.file_path(), 164 upload_element2.file_path(),
161 upload_element2.file_range_offset(), 165 upload_element2.file_range_offset(),
162 upload_element2.file_range_length(), 166 upload_element2.file_range_length(),
163 upload_element2.expected_file_modification_time()); 167 upload_element2.expected_file_modification_time());
164 168
165 blob_storage_controller.ResolveBlobReferencesInUploadData(upload_data.get()); 169 blob_storage_controller.ResolveBlobReferencesInRequestBody(
166 ASSERT_EQ(upload_data->elements()->size(), 4U); 170 request_body.get());
167 EXPECT_TRUE(upload_data->elements()->at(0) == blob_element1); 171 ASSERT_EQ(request_body->elements()->size(), 4U);
168 EXPECT_TRUE(upload_data->elements()->at(1) == blob_element2); 172 EXPECT_TRUE(request_body->elements()->at(0) == blob_element1);
169 EXPECT_TRUE(upload_data->elements()->at(2) == upload_element1); 173 EXPECT_TRUE(request_body->elements()->at(1) == blob_element2);
170 EXPECT_TRUE(upload_data->elements()->at(3) == upload_element2); 174 EXPECT_TRUE(request_body->elements()->at(2) == upload_element1);
175 EXPECT_TRUE(request_body->elements()->at(3) == upload_element2);
171 176
172 // Test having one blob reference at the end. 177 // Test having one blob reference at the end.
173 upload_data = new UploadData(); 178 request_body = new ResourceRequestBody();
174 upload_data->AppendBytes( 179 request_body->AppendBytes(
175 &upload_element1.bytes().at(0), 180 upload_element1.bytes(),
176 upload_element1.bytes().size()); 181 upload_element1.bytes_length());
177 upload_data->AppendFileRange( 182 request_body->AppendFileRange(
178 upload_element2.file_path(), 183 upload_element2.file_path(),
179 upload_element2.file_range_offset(), 184 upload_element2.file_range_offset(),
180 upload_element2.file_range_length(), 185 upload_element2.file_range_length(),
181 upload_element2.expected_file_modification_time()); 186 upload_element2.expected_file_modification_time());
182 upload_data->AppendBlob(blob_url1); 187 request_body->AppendBlob(blob_url1);
183 188
184 blob_storage_controller.ResolveBlobReferencesInUploadData(upload_data.get()); 189 blob_storage_controller.ResolveBlobReferencesInRequestBody(
185 ASSERT_EQ(upload_data->elements()->size(), 4U); 190 request_body.get());
186 EXPECT_TRUE(upload_data->elements()->at(0) == upload_element1); 191 ASSERT_EQ(request_body->elements()->size(), 4U);
187 EXPECT_TRUE(upload_data->elements()->at(1) == upload_element2); 192 EXPECT_TRUE(request_body->elements()->at(0) == upload_element1);
188 EXPECT_TRUE(upload_data->elements()->at(2) == blob_element1); 193 EXPECT_TRUE(request_body->elements()->at(1) == upload_element2);
189 EXPECT_TRUE(upload_data->elements()->at(3) == blob_element2); 194 EXPECT_TRUE(request_body->elements()->at(2) == blob_element1);
195 EXPECT_TRUE(request_body->elements()->at(3) == blob_element2);
190 196
191 // Test having one blob reference in the middle. 197 // Test having one blob reference in the middle.
192 upload_data = new UploadData(); 198 request_body = new ResourceRequestBody();
193 upload_data->AppendBytes( 199 request_body->AppendBytes(
194 &upload_element1.bytes().at(0), 200 upload_element1.bytes(),
195 upload_element1.bytes().size()); 201 upload_element1.bytes_length());
196 upload_data->AppendBlob(blob_url1); 202 request_body->AppendBlob(blob_url1);
197 upload_data->AppendFileRange( 203 request_body->AppendFileRange(
198 upload_element2.file_path(), 204 upload_element2.file_path(),
199 upload_element2.file_range_offset(), 205 upload_element2.file_range_offset(),
200 upload_element2.file_range_length(), 206 upload_element2.file_range_length(),
201 upload_element2.expected_file_modification_time()); 207 upload_element2.expected_file_modification_time());
202 208
203 blob_storage_controller.ResolveBlobReferencesInUploadData(upload_data.get()); 209 blob_storage_controller.ResolveBlobReferencesInRequestBody(
204 ASSERT_EQ(upload_data->elements()->size(), 4U); 210 request_body.get());
205 EXPECT_TRUE(upload_data->elements()->at(0) == upload_element1); 211 ASSERT_EQ(request_body->elements()->size(), 4U);
206 EXPECT_TRUE(upload_data->elements()->at(1) == blob_element1); 212 EXPECT_TRUE(request_body->elements()->at(0) == upload_element1);
207 EXPECT_TRUE(upload_data->elements()->at(2) == blob_element2); 213 EXPECT_TRUE(request_body->elements()->at(1) == blob_element1);
208 EXPECT_TRUE(upload_data->elements()->at(3) == upload_element2); 214 EXPECT_TRUE(request_body->elements()->at(2) == blob_element2);
215 EXPECT_TRUE(request_body->elements()->at(3) == upload_element2);
209 216
210 // Test having multiple blob references. 217 // Test having multiple blob references.
211 upload_data = new UploadData(); 218 request_body = new ResourceRequestBody();
212 upload_data->AppendBlob(blob_url1); 219 request_body->AppendBlob(blob_url1);
213 upload_data->AppendBytes( 220 request_body->AppendBytes(
214 &upload_element1.bytes().at(0), 221 upload_element1.bytes(),
215 upload_element1.bytes().size()); 222 upload_element1.bytes_length());
216 upload_data->AppendBlob(blob_url2); 223 request_body->AppendBlob(blob_url2);
217 upload_data->AppendBlob(blob_url3); 224 request_body->AppendBlob(blob_url3);
218 upload_data->AppendFileRange( 225 request_body->AppendFileRange(
219 upload_element2.file_path(), 226 upload_element2.file_path(),
220 upload_element2.file_range_offset(), 227 upload_element2.file_range_offset(),
221 upload_element2.file_range_length(), 228 upload_element2.file_range_length(),
222 upload_element2.expected_file_modification_time()); 229 upload_element2.expected_file_modification_time());
223 230
224 blob_storage_controller.ResolveBlobReferencesInUploadData(upload_data.get()); 231 blob_storage_controller.ResolveBlobReferencesInRequestBody(
225 ASSERT_EQ(upload_data->elements()->size(), 8U); 232 request_body.get());
226 EXPECT_TRUE(upload_data->elements()->at(0) == blob_element1); 233 ASSERT_EQ(request_body->elements()->size(), 8U);
227 EXPECT_TRUE(upload_data->elements()->at(1) == blob_element2); 234 EXPECT_TRUE(request_body->elements()->at(0) == blob_element1);
228 EXPECT_TRUE(upload_data->elements()->at(2) == upload_element1); 235 EXPECT_TRUE(request_body->elements()->at(1) == blob_element2);
229 EXPECT_TRUE(upload_data->elements()->at(3) == blob_element1); 236 EXPECT_TRUE(request_body->elements()->at(2) == upload_element1);
230 EXPECT_TRUE(upload_data->elements()->at(4) == blob_element2); 237 EXPECT_TRUE(request_body->elements()->at(3) == blob_element1);
231 EXPECT_TRUE(upload_data->elements()->at(5) == blob_element1); 238 EXPECT_TRUE(request_body->elements()->at(4) == blob_element2);
232 EXPECT_TRUE(upload_data->elements()->at(6) == blob_element2); 239 EXPECT_TRUE(request_body->elements()->at(5) == blob_element1);
233 EXPECT_TRUE(upload_data->elements()->at(7) == upload_element2); 240 EXPECT_TRUE(request_body->elements()->at(6) == blob_element2);
241 EXPECT_TRUE(request_body->elements()->at(7) == upload_element2);
234 } 242 }
235 243
236 } // namespace webkit_blob 244 } // namespace webkit_blob
OLDNEW
« no previous file with comments | « webkit/blob/blob_storage_controller.cc ('k') | webkit/glue/resource_loader_bridge.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698