OLD | NEW |
| (Empty) |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "chrome/browser/google_apis/drive_api_url_generator.h" | |
6 | |
7 #include "chrome/browser/google_apis/test_util.h" | |
8 #include "testing/gtest/include/gtest/gtest.h" | |
9 #include "url/gurl.h" | |
10 | |
11 namespace google_apis { | |
12 | |
13 class DriveApiUrlGeneratorTest : public testing::Test { | |
14 public: | |
15 DriveApiUrlGeneratorTest() | |
16 : url_generator_( | |
17 GURL(DriveApiUrlGenerator::kBaseUrlForProduction), | |
18 GURL(DriveApiUrlGenerator::kBaseDownloadUrlForProduction)), | |
19 test_url_generator_( | |
20 test_util::GetBaseUrlForTesting(12345), | |
21 test_util::GetBaseUrlForTesting(12345).Resolve("download/")) { | |
22 } | |
23 | |
24 protected: | |
25 DriveApiUrlGenerator url_generator_; | |
26 DriveApiUrlGenerator test_url_generator_; | |
27 }; | |
28 | |
29 // Make sure the hard-coded urls are returned. | |
30 TEST_F(DriveApiUrlGeneratorTest, GetAboutGetUrl) { | |
31 EXPECT_EQ("https://www.googleapis.com/drive/v2/about", | |
32 url_generator_.GetAboutGetUrl().spec()); | |
33 EXPECT_EQ("http://127.0.0.1:12345/drive/v2/about", | |
34 test_url_generator_.GetAboutGetUrl().spec()); | |
35 } | |
36 | |
37 TEST_F(DriveApiUrlGeneratorTest, GetAppsListUrl) { | |
38 EXPECT_EQ("https://www.googleapis.com/drive/v2/apps", | |
39 url_generator_.GetAppsListUrl().spec()); | |
40 EXPECT_EQ("http://127.0.0.1:12345/drive/v2/apps", | |
41 test_url_generator_.GetAppsListUrl().spec()); | |
42 } | |
43 | |
44 TEST_F(DriveApiUrlGeneratorTest, GetFilesGetUrl) { | |
45 // |file_id| should be embedded into the url. | |
46 EXPECT_EQ("https://www.googleapis.com/drive/v2/files/0ADK06pfg", | |
47 url_generator_.GetFilesGetUrl("0ADK06pfg").spec()); | |
48 EXPECT_EQ("https://www.googleapis.com/drive/v2/files/0Bz0bd074", | |
49 url_generator_.GetFilesGetUrl("0Bz0bd074").spec()); | |
50 EXPECT_EQ("https://www.googleapis.com/drive/v2/files/file%3Afile_id", | |
51 url_generator_.GetFilesGetUrl("file:file_id").spec()); | |
52 | |
53 EXPECT_EQ("http://127.0.0.1:12345/drive/v2/files/0ADK06pfg", | |
54 test_url_generator_.GetFilesGetUrl("0ADK06pfg").spec()); | |
55 EXPECT_EQ("http://127.0.0.1:12345/drive/v2/files/0Bz0bd074", | |
56 test_url_generator_.GetFilesGetUrl("0Bz0bd074").spec()); | |
57 EXPECT_EQ("http://127.0.0.1:12345/drive/v2/files/file%3Afile_id", | |
58 test_url_generator_.GetFilesGetUrl("file:file_id").spec()); | |
59 } | |
60 | |
61 TEST_F(DriveApiUrlGeneratorTest, GetFilesInsertUrl) { | |
62 EXPECT_EQ("https://www.googleapis.com/drive/v2/files", | |
63 url_generator_.GetFilesInsertUrl().spec()); | |
64 EXPECT_EQ("http://127.0.0.1:12345/drive/v2/files", | |
65 test_url_generator_.GetFilesInsertUrl().spec()); | |
66 } | |
67 | |
68 TEST_F(DriveApiUrlGeneratorTest, GetFilePatchUrl) { | |
69 struct TestPattern { | |
70 bool set_modified_date; | |
71 bool update_viewed_date; | |
72 const std::string expected_query; | |
73 }; | |
74 const TestPattern kTestPatterns[] = { | |
75 { false, true, "" }, | |
76 { true, true, "?setModifiedDate=true" }, | |
77 { false, false, "?updateViewedDate=false" }, | |
78 { true, false, "?setModifiedDate=true&updateViewedDate=false" }, | |
79 }; | |
80 | |
81 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestPatterns); ++i) { | |
82 EXPECT_EQ( | |
83 "https://www.googleapis.com/drive/v2/files/0ADK06pfg" + | |
84 kTestPatterns[i].expected_query, | |
85 url_generator_.GetFilesPatchUrl( | |
86 "0ADK06pfg", | |
87 kTestPatterns[i].set_modified_date, | |
88 kTestPatterns[i].update_viewed_date).spec()); | |
89 | |
90 EXPECT_EQ( | |
91 "https://www.googleapis.com/drive/v2/files/0Bz0bd074" + | |
92 kTestPatterns[i].expected_query, | |
93 url_generator_.GetFilesPatchUrl( | |
94 "0Bz0bd074", | |
95 kTestPatterns[i].set_modified_date, | |
96 kTestPatterns[i].update_viewed_date).spec()); | |
97 | |
98 EXPECT_EQ( | |
99 "https://www.googleapis.com/drive/v2/files/file%3Afile_id" + | |
100 kTestPatterns[i].expected_query, | |
101 url_generator_.GetFilesPatchUrl( | |
102 "file:file_id", | |
103 kTestPatterns[i].set_modified_date, | |
104 kTestPatterns[i].update_viewed_date).spec()); | |
105 | |
106 | |
107 EXPECT_EQ( | |
108 "http://127.0.0.1:12345/drive/v2/files/0ADK06pfg" + | |
109 kTestPatterns[i].expected_query, | |
110 test_url_generator_.GetFilesPatchUrl( | |
111 "0ADK06pfg", | |
112 kTestPatterns[i].set_modified_date, | |
113 kTestPatterns[i].update_viewed_date).spec()); | |
114 | |
115 EXPECT_EQ( | |
116 "http://127.0.0.1:12345/drive/v2/files/0Bz0bd074" + | |
117 kTestPatterns[i].expected_query, | |
118 test_url_generator_.GetFilesPatchUrl( | |
119 "0Bz0bd074", | |
120 kTestPatterns[i].set_modified_date, | |
121 kTestPatterns[i].update_viewed_date).spec()); | |
122 | |
123 EXPECT_EQ( | |
124 "http://127.0.0.1:12345/drive/v2/files/file%3Afile_id" + | |
125 kTestPatterns[i].expected_query, | |
126 test_url_generator_.GetFilesPatchUrl( | |
127 "file:file_id", | |
128 kTestPatterns[i].set_modified_date, | |
129 kTestPatterns[i].update_viewed_date).spec()); | |
130 } | |
131 } | |
132 | |
133 TEST_F(DriveApiUrlGeneratorTest, GetFilesCopyUrl) { | |
134 // |file_id| should be embedded into the url. | |
135 EXPECT_EQ("https://www.googleapis.com/drive/v2/files/0ADK06pfg/copy", | |
136 url_generator_.GetFilesCopyUrl("0ADK06pfg").spec()); | |
137 EXPECT_EQ("https://www.googleapis.com/drive/v2/files/0Bz0bd074/copy", | |
138 url_generator_.GetFilesCopyUrl("0Bz0bd074").spec()); | |
139 EXPECT_EQ("https://www.googleapis.com/drive/v2/files/file%3Afile_id/copy", | |
140 url_generator_.GetFilesCopyUrl("file:file_id").spec()); | |
141 | |
142 EXPECT_EQ("http://127.0.0.1:12345/drive/v2/files/0ADK06pfg/copy", | |
143 test_url_generator_.GetFilesCopyUrl("0ADK06pfg").spec()); | |
144 EXPECT_EQ("http://127.0.0.1:12345/drive/v2/files/0Bz0bd074/copy", | |
145 test_url_generator_.GetFilesCopyUrl("0Bz0bd074").spec()); | |
146 EXPECT_EQ("http://127.0.0.1:12345/drive/v2/files/file%3Afile_id/copy", | |
147 test_url_generator_.GetFilesCopyUrl("file:file_id").spec()); | |
148 } | |
149 | |
150 TEST_F(DriveApiUrlGeneratorTest, GetFilesListUrl) { | |
151 struct TestPattern { | |
152 int max_results; | |
153 const std::string page_token; | |
154 const std::string q; | |
155 const std::string expected_query; | |
156 }; | |
157 const TestPattern kTestPatterns[] = { | |
158 { 100, "", "", "" }, | |
159 { 150, "", "", "?maxResults=150" }, | |
160 { 10, "", "", "?maxResults=10" }, | |
161 { 100, "token", "", "?pageToken=token" }, | |
162 { 150, "token", "", "?maxResults=150&pageToken=token" }, | |
163 { 10, "token", "", "?maxResults=10&pageToken=token" }, | |
164 { 100, "", "query", "?q=query" }, | |
165 { 150, "", "query", "?maxResults=150&q=query" }, | |
166 { 10, "", "query", "?maxResults=10&q=query" }, | |
167 { 100, "token", "query", "?pageToken=token&q=query" }, | |
168 { 150, "token", "query", "?maxResults=150&pageToken=token&q=query" }, | |
169 { 10, "token", "query", "?maxResults=10&pageToken=token&q=query" }, | |
170 }; | |
171 | |
172 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestPatterns); ++i) { | |
173 EXPECT_EQ( | |
174 "https://www.googleapis.com/drive/v2/files" + | |
175 kTestPatterns[i].expected_query, | |
176 url_generator_.GetFilesListUrl( | |
177 kTestPatterns[i].max_results, kTestPatterns[i].page_token, | |
178 kTestPatterns[i].q).spec()); | |
179 | |
180 EXPECT_EQ( | |
181 "http://127.0.0.1:12345/drive/v2/files" + | |
182 kTestPatterns[i].expected_query, | |
183 test_url_generator_.GetFilesListUrl( | |
184 kTestPatterns[i].max_results, kTestPatterns[i].page_token, | |
185 kTestPatterns[i].q).spec()); | |
186 } | |
187 } | |
188 | |
189 TEST_F(DriveApiUrlGeneratorTest, GetFilesTrashUrl) { | |
190 // |file_id| should be embedded into the url. | |
191 EXPECT_EQ("https://www.googleapis.com/drive/v2/files/0ADK06pfg/trash", | |
192 url_generator_.GetFilesTrashUrl("0ADK06pfg").spec()); | |
193 EXPECT_EQ("https://www.googleapis.com/drive/v2/files/0Bz0bd074/trash", | |
194 url_generator_.GetFilesTrashUrl("0Bz0bd074").spec()); | |
195 EXPECT_EQ("https://www.googleapis.com/drive/v2/files/file%3Afile_id/trash", | |
196 url_generator_.GetFilesTrashUrl("file:file_id").spec()); | |
197 | |
198 EXPECT_EQ("http://127.0.0.1:12345/drive/v2/files/0ADK06pfg/trash", | |
199 test_url_generator_.GetFilesTrashUrl("0ADK06pfg").spec()); | |
200 EXPECT_EQ("http://127.0.0.1:12345/drive/v2/files/0Bz0bd074/trash", | |
201 test_url_generator_.GetFilesTrashUrl("0Bz0bd074").spec()); | |
202 EXPECT_EQ("http://127.0.0.1:12345/drive/v2/files/file%3Afile_id/trash", | |
203 test_url_generator_.GetFilesTrashUrl("file:file_id").spec()); | |
204 } | |
205 | |
206 TEST_F(DriveApiUrlGeneratorTest, GetChangesListUrl) { | |
207 struct TestPattern { | |
208 bool include_deleted; | |
209 int max_results; | |
210 const std::string page_token; | |
211 int64 start_change_id; | |
212 const std::string expected_query; | |
213 }; | |
214 const TestPattern kTestPatterns[] = { | |
215 { true, 100, "", 0, "" }, | |
216 { false, 100, "", 0, "?includeDeleted=false" }, | |
217 { true, 150, "", 0, "?maxResults=150" }, | |
218 { false, 150, "", 0, "?includeDeleted=false&maxResults=150" }, | |
219 { true, 10, "", 0, "?maxResults=10" }, | |
220 { false, 10, "", 0, "?includeDeleted=false&maxResults=10" }, | |
221 | |
222 { true, 100, "token", 0, "?pageToken=token" }, | |
223 { false, 100, "token", 0, "?includeDeleted=false&pageToken=token" }, | |
224 { true, 150, "token", 0, "?maxResults=150&pageToken=token" }, | |
225 { false, 150, "token", 0, | |
226 "?includeDeleted=false&maxResults=150&pageToken=token" }, | |
227 { true, 10, "token", 0, "?maxResults=10&pageToken=token" }, | |
228 { false, 10, "token", 0, | |
229 "?includeDeleted=false&maxResults=10&pageToken=token" }, | |
230 | |
231 { true, 100, "", 12345, "?startChangeId=12345" }, | |
232 { false, 100, "", 12345, "?includeDeleted=false&startChangeId=12345" }, | |
233 { true, 150, "", 12345, "?maxResults=150&startChangeId=12345" }, | |
234 { false, 150, "", 12345, | |
235 "?includeDeleted=false&maxResults=150&startChangeId=12345" }, | |
236 { true, 10, "", 12345, "?maxResults=10&startChangeId=12345" }, | |
237 { false, 10, "", 12345, | |
238 "?includeDeleted=false&maxResults=10&startChangeId=12345" }, | |
239 | |
240 { true, 100, "token", 12345, "?pageToken=token&startChangeId=12345" }, | |
241 { false, 100, "token", 12345, | |
242 "?includeDeleted=false&pageToken=token&startChangeId=12345" }, | |
243 { true, 150, "token", 12345, | |
244 "?maxResults=150&pageToken=token&startChangeId=12345" }, | |
245 { false, 150, "token", 12345, | |
246 "?includeDeleted=false&maxResults=150&pageToken=token" | |
247 "&startChangeId=12345" }, | |
248 { true, 10, "token", 12345, | |
249 "?maxResults=10&pageToken=token&startChangeId=12345" }, | |
250 { false, 10, "token", 12345, | |
251 "?includeDeleted=false&maxResults=10&pageToken=token" | |
252 "&startChangeId=12345" }, | |
253 }; | |
254 | |
255 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestPatterns); ++i) { | |
256 EXPECT_EQ( | |
257 "https://www.googleapis.com/drive/v2/changes" + | |
258 kTestPatterns[i].expected_query, | |
259 url_generator_.GetChangesListUrl( | |
260 kTestPatterns[i].include_deleted, | |
261 kTestPatterns[i].max_results, | |
262 kTestPatterns[i].page_token, | |
263 kTestPatterns[i].start_change_id).spec()); | |
264 | |
265 EXPECT_EQ( | |
266 "http://127.0.0.1:12345/drive/v2/changes" + | |
267 kTestPatterns[i].expected_query, | |
268 test_url_generator_.GetChangesListUrl( | |
269 kTestPatterns[i].include_deleted, | |
270 kTestPatterns[i].max_results, | |
271 kTestPatterns[i].page_token, | |
272 kTestPatterns[i].start_change_id).spec()); | |
273 } | |
274 } | |
275 | |
276 TEST_F(DriveApiUrlGeneratorTest, GetChildrenInsertUrl) { | |
277 // |file_id| should be embedded into the url. | |
278 EXPECT_EQ("https://www.googleapis.com/drive/v2/files/0ADK06pfg/children", | |
279 url_generator_.GetChildrenInsertUrl("0ADK06pfg").spec()); | |
280 EXPECT_EQ("https://www.googleapis.com/drive/v2/files/0Bz0bd074/children", | |
281 url_generator_.GetChildrenInsertUrl("0Bz0bd074").spec()); | |
282 EXPECT_EQ( | |
283 "https://www.googleapis.com/drive/v2/files/file%3Afolder_id/children", | |
284 url_generator_.GetChildrenInsertUrl("file:folder_id").spec()); | |
285 | |
286 EXPECT_EQ("http://127.0.0.1:12345/drive/v2/files/0ADK06pfg/children", | |
287 test_url_generator_.GetChildrenInsertUrl("0ADK06pfg").spec()); | |
288 EXPECT_EQ("http://127.0.0.1:12345/drive/v2/files/0Bz0bd074/children", | |
289 test_url_generator_.GetChildrenInsertUrl("0Bz0bd074").spec()); | |
290 EXPECT_EQ("http://127.0.0.1:12345/drive/v2/files/file%3Afolder_id/children", | |
291 test_url_generator_.GetChildrenInsertUrl("file:folder_id").spec()); | |
292 } | |
293 | |
294 TEST_F(DriveApiUrlGeneratorTest, GetChildrenDeleteUrl) { | |
295 // |file_id| should be embedded into the url. | |
296 EXPECT_EQ( | |
297 "https://www.googleapis.com/drive/v2/files/0ADK06pfg/children/0Bz0bd074", | |
298 url_generator_.GetChildrenDeleteUrl("0Bz0bd074", "0ADK06pfg").spec()); | |
299 EXPECT_EQ( | |
300 "https://www.googleapis.com/drive/v2/files/0Bz0bd074/children/0ADK06pfg", | |
301 url_generator_.GetChildrenDeleteUrl("0ADK06pfg", "0Bz0bd074").spec()); | |
302 EXPECT_EQ( | |
303 "https://www.googleapis.com/drive/v2/files/file%3Afolder_id/children" | |
304 "/file%3Achild_id", | |
305 url_generator_.GetChildrenDeleteUrl( | |
306 "file:child_id", "file:folder_id").spec()); | |
307 | |
308 EXPECT_EQ( | |
309 "http://127.0.0.1:12345/drive/v2/files/0ADK06pfg/children/0Bz0bd074", | |
310 test_url_generator_.GetChildrenDeleteUrl( | |
311 "0Bz0bd074", "0ADK06pfg").spec()); | |
312 EXPECT_EQ( | |
313 "http://127.0.0.1:12345/drive/v2/files/0Bz0bd074/children/0ADK06pfg", | |
314 test_url_generator_.GetChildrenDeleteUrl( | |
315 "0ADK06pfg", "0Bz0bd074").spec()); | |
316 EXPECT_EQ( | |
317 "http://127.0.0.1:12345/drive/v2/files/file%3Afolder_id/children/" | |
318 "file%3Achild_id", | |
319 test_url_generator_.GetChildrenDeleteUrl( | |
320 "file:child_id", "file:folder_id").spec()); | |
321 } | |
322 | |
323 TEST_F(DriveApiUrlGeneratorTest, GetInitiateUploadNewFileUrl) { | |
324 EXPECT_EQ( | |
325 "https://www.googleapis.com/upload/drive/v2/files?uploadType=resumable", | |
326 url_generator_.GetInitiateUploadNewFileUrl().spec()); | |
327 | |
328 EXPECT_EQ( | |
329 "http://127.0.0.1:12345/upload/drive/v2/files?uploadType=resumable", | |
330 test_url_generator_.GetInitiateUploadNewFileUrl().spec()); | |
331 } | |
332 | |
333 TEST_F(DriveApiUrlGeneratorTest, GetInitiateUploadExistingFileUrl) { | |
334 // |resource_id| should be embedded into the url. | |
335 EXPECT_EQ( | |
336 "https://www.googleapis.com/upload/drive/v2/files/0ADK06pfg" | |
337 "?uploadType=resumable", | |
338 url_generator_.GetInitiateUploadExistingFileUrl("0ADK06pfg").spec()); | |
339 EXPECT_EQ( | |
340 "https://www.googleapis.com/upload/drive/v2/files/0Bz0bd074" | |
341 "?uploadType=resumable", | |
342 url_generator_.GetInitiateUploadExistingFileUrl("0Bz0bd074").spec()); | |
343 EXPECT_EQ( | |
344 "https://www.googleapis.com/upload/drive/v2/files/file%3Afile_id" | |
345 "?uploadType=resumable", | |
346 url_generator_.GetInitiateUploadExistingFileUrl("file:file_id").spec()); | |
347 | |
348 EXPECT_EQ( | |
349 "http://127.0.0.1:12345/upload/drive/v2/files/0ADK06pfg" | |
350 "?uploadType=resumable", | |
351 test_url_generator_.GetInitiateUploadExistingFileUrl( | |
352 "0ADK06pfg").spec()); | |
353 EXPECT_EQ( | |
354 "http://127.0.0.1:12345/upload/drive/v2/files/0Bz0bd074" | |
355 "?uploadType=resumable", | |
356 test_url_generator_.GetInitiateUploadExistingFileUrl( | |
357 "0Bz0bd074").spec()); | |
358 EXPECT_EQ( | |
359 "http://127.0.0.1:12345/upload/drive/v2/files/file%3Afile_id" | |
360 "?uploadType=resumable", | |
361 test_url_generator_.GetInitiateUploadExistingFileUrl( | |
362 "file:file_id").spec()); | |
363 } | |
364 | |
365 TEST_F(DriveApiUrlGeneratorTest, GenerateDownloadFileUrl) { | |
366 EXPECT_EQ( | |
367 "https://www.googledrive.com/host/resourceId", | |
368 url_generator_.GenerateDownloadFileUrl("resourceId").spec()); | |
369 EXPECT_EQ( | |
370 "https://www.googledrive.com/host/file%3AresourceId", | |
371 url_generator_.GenerateDownloadFileUrl("file:resourceId").spec()); | |
372 EXPECT_EQ( | |
373 "http://127.0.0.1:12345/download/resourceId", | |
374 test_url_generator_.GenerateDownloadFileUrl("resourceId").spec()); | |
375 } | |
376 | |
377 } // namespace google_apis | |
OLD | NEW |