| 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 |