| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/bind.h" | 6 #include "base/bind.h" |
| 7 #include "base/files/file_util.h" | 7 #include "base/files/file_util.h" |
| 8 #include "base/files/scoped_temp_dir.h" | 8 #include "base/files/scoped_temp_dir.h" |
| 9 #include "base/message_loop/message_loop_proxy.h" | 9 #include "base/message_loop/message_loop_proxy.h" |
| 10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
| (...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 243 scoped_ptr<FileSystemQuotaClient> quota_client(NewQuotaClient(false)); | 243 scoped_ptr<FileSystemQuotaClient> quota_client(NewQuotaClient(false)); |
| 244 | 244 |
| 245 EXPECT_EQ(0, GetOriginUsage(quota_client.get(), kDummyURL1, kTemporary)); | 245 EXPECT_EQ(0, GetOriginUsage(quota_client.get(), kDummyURL1, kTemporary)); |
| 246 } | 246 } |
| 247 | 247 |
| 248 TEST_F(FileSystemQuotaClientTest, NoFileTest) { | 248 TEST_F(FileSystemQuotaClientTest, NoFileTest) { |
| 249 scoped_ptr<FileSystemQuotaClient> quota_client(NewQuotaClient(false)); | 249 scoped_ptr<FileSystemQuotaClient> quota_client(NewQuotaClient(false)); |
| 250 const TestFile kFiles[] = { | 250 const TestFile kFiles[] = { |
| 251 {true, NULL, 0, kDummyURL1, kTemporary}, | 251 {true, NULL, 0, kDummyURL1, kTemporary}, |
| 252 }; | 252 }; |
| 253 InitializeOriginFiles(quota_client.get(), kFiles, ARRAYSIZE_UNSAFE(kFiles)); | 253 InitializeOriginFiles(quota_client.get(), kFiles, arraysize(kFiles)); |
| 254 | 254 |
| 255 for (int i = 0; i < 2; i++) { | 255 for (int i = 0; i < 2; i++) { |
| 256 EXPECT_EQ(0, GetOriginUsage(quota_client.get(), kDummyURL1, kTemporary)); | 256 EXPECT_EQ(0, GetOriginUsage(quota_client.get(), kDummyURL1, kTemporary)); |
| 257 } | 257 } |
| 258 } | 258 } |
| 259 | 259 |
| 260 TEST_F(FileSystemQuotaClientTest, OneFileTest) { | 260 TEST_F(FileSystemQuotaClientTest, OneFileTest) { |
| 261 scoped_ptr<FileSystemQuotaClient> quota_client(NewQuotaClient(false)); | 261 scoped_ptr<FileSystemQuotaClient> quota_client(NewQuotaClient(false)); |
| 262 const TestFile kFiles[] = { | 262 const TestFile kFiles[] = { |
| 263 {true, NULL, 0, kDummyURL1, kTemporary}, | 263 {true, NULL, 0, kDummyURL1, kTemporary}, |
| 264 {false, "foo", 4921, kDummyURL1, kTemporary}, | 264 {false, "foo", 4921, kDummyURL1, kTemporary}, |
| 265 }; | 265 }; |
| 266 InitializeOriginFiles(quota_client.get(), kFiles, ARRAYSIZE_UNSAFE(kFiles)); | 266 InitializeOriginFiles(quota_client.get(), kFiles, arraysize(kFiles)); |
| 267 const int64 file_paths_cost = ComputeFilePathsCostForOriginAndType( | 267 const int64 file_paths_cost = ComputeFilePathsCostForOriginAndType( |
| 268 kFiles, ARRAYSIZE_UNSAFE(kFiles), kDummyURL1, kTemporary); | 268 kFiles, arraysize(kFiles), kDummyURL1, kTemporary); |
| 269 | 269 |
| 270 for (int i = 0; i < 2; i++) { | 270 for (int i = 0; i < 2; i++) { |
| 271 EXPECT_EQ(4921 + file_paths_cost, | 271 EXPECT_EQ(4921 + file_paths_cost, |
| 272 GetOriginUsage(quota_client.get(), kDummyURL1, kTemporary)); | 272 GetOriginUsage(quota_client.get(), kDummyURL1, kTemporary)); |
| 273 } | 273 } |
| 274 } | 274 } |
| 275 | 275 |
| 276 TEST_F(FileSystemQuotaClientTest, TwoFilesTest) { | 276 TEST_F(FileSystemQuotaClientTest, TwoFilesTest) { |
| 277 scoped_ptr<FileSystemQuotaClient> quota_client(NewQuotaClient(false)); | 277 scoped_ptr<FileSystemQuotaClient> quota_client(NewQuotaClient(false)); |
| 278 const TestFile kFiles[] = { | 278 const TestFile kFiles[] = { |
| 279 {true, NULL, 0, kDummyURL1, kTemporary}, | 279 {true, NULL, 0, kDummyURL1, kTemporary}, |
| 280 {false, "foo", 10310, kDummyURL1, kTemporary}, | 280 {false, "foo", 10310, kDummyURL1, kTemporary}, |
| 281 {false, "bar", 41, kDummyURL1, kTemporary}, | 281 {false, "bar", 41, kDummyURL1, kTemporary}, |
| 282 }; | 282 }; |
| 283 InitializeOriginFiles(quota_client.get(), kFiles, ARRAYSIZE_UNSAFE(kFiles)); | 283 InitializeOriginFiles(quota_client.get(), kFiles, arraysize(kFiles)); |
| 284 const int64 file_paths_cost = ComputeFilePathsCostForOriginAndType( | 284 const int64 file_paths_cost = ComputeFilePathsCostForOriginAndType( |
| 285 kFiles, ARRAYSIZE_UNSAFE(kFiles), kDummyURL1, kTemporary); | 285 kFiles, arraysize(kFiles), kDummyURL1, kTemporary); |
| 286 | 286 |
| 287 for (int i = 0; i < 2; i++) { | 287 for (int i = 0; i < 2; i++) { |
| 288 EXPECT_EQ(10310 + 41 + file_paths_cost, | 288 EXPECT_EQ(10310 + 41 + file_paths_cost, |
| 289 GetOriginUsage(quota_client.get(), kDummyURL1, kTemporary)); | 289 GetOriginUsage(quota_client.get(), kDummyURL1, kTemporary)); |
| 290 } | 290 } |
| 291 } | 291 } |
| 292 | 292 |
| 293 TEST_F(FileSystemQuotaClientTest, EmptyFilesTest) { | 293 TEST_F(FileSystemQuotaClientTest, EmptyFilesTest) { |
| 294 scoped_ptr<FileSystemQuotaClient> quota_client(NewQuotaClient(false)); | 294 scoped_ptr<FileSystemQuotaClient> quota_client(NewQuotaClient(false)); |
| 295 const TestFile kFiles[] = { | 295 const TestFile kFiles[] = { |
| 296 {true, NULL, 0, kDummyURL1, kTemporary}, | 296 {true, NULL, 0, kDummyURL1, kTemporary}, |
| 297 {false, "foo", 0, kDummyURL1, kTemporary}, | 297 {false, "foo", 0, kDummyURL1, kTemporary}, |
| 298 {false, "bar", 0, kDummyURL1, kTemporary}, | 298 {false, "bar", 0, kDummyURL1, kTemporary}, |
| 299 {false, "baz", 0, kDummyURL1, kTemporary}, | 299 {false, "baz", 0, kDummyURL1, kTemporary}, |
| 300 }; | 300 }; |
| 301 InitializeOriginFiles(quota_client.get(), kFiles, ARRAYSIZE_UNSAFE(kFiles)); | 301 InitializeOriginFiles(quota_client.get(), kFiles, arraysize(kFiles)); |
| 302 const int64 file_paths_cost = ComputeFilePathsCostForOriginAndType( | 302 const int64 file_paths_cost = ComputeFilePathsCostForOriginAndType( |
| 303 kFiles, ARRAYSIZE_UNSAFE(kFiles), kDummyURL1, kTemporary); | 303 kFiles, arraysize(kFiles), kDummyURL1, kTemporary); |
| 304 | 304 |
| 305 for (int i = 0; i < 2; i++) { | 305 for (int i = 0; i < 2; i++) { |
| 306 EXPECT_EQ(file_paths_cost, | 306 EXPECT_EQ(file_paths_cost, |
| 307 GetOriginUsage(quota_client.get(), kDummyURL1, kTemporary)); | 307 GetOriginUsage(quota_client.get(), kDummyURL1, kTemporary)); |
| 308 } | 308 } |
| 309 } | 309 } |
| 310 | 310 |
| 311 TEST_F(FileSystemQuotaClientTest, SubDirectoryTest) { | 311 TEST_F(FileSystemQuotaClientTest, SubDirectoryTest) { |
| 312 scoped_ptr<FileSystemQuotaClient> quota_client(NewQuotaClient(false)); | 312 scoped_ptr<FileSystemQuotaClient> quota_client(NewQuotaClient(false)); |
| 313 const TestFile kFiles[] = { | 313 const TestFile kFiles[] = { |
| 314 {true, NULL, 0, kDummyURL1, kTemporary}, | 314 {true, NULL, 0, kDummyURL1, kTemporary}, |
| 315 {true, "dirtest", 0, kDummyURL1, kTemporary}, | 315 {true, "dirtest", 0, kDummyURL1, kTemporary}, |
| 316 {false, "dirtest/foo", 11921, kDummyURL1, kTemporary}, | 316 {false, "dirtest/foo", 11921, kDummyURL1, kTemporary}, |
| 317 {false, "bar", 4814, kDummyURL1, kTemporary}, | 317 {false, "bar", 4814, kDummyURL1, kTemporary}, |
| 318 }; | 318 }; |
| 319 InitializeOriginFiles(quota_client.get(), kFiles, ARRAYSIZE_UNSAFE(kFiles)); | 319 InitializeOriginFiles(quota_client.get(), kFiles, arraysize(kFiles)); |
| 320 const int64 file_paths_cost = ComputeFilePathsCostForOriginAndType( | 320 const int64 file_paths_cost = ComputeFilePathsCostForOriginAndType( |
| 321 kFiles, ARRAYSIZE_UNSAFE(kFiles), kDummyURL1, kTemporary); | 321 kFiles, arraysize(kFiles), kDummyURL1, kTemporary); |
| 322 | 322 |
| 323 for (int i = 0; i < 2; i++) { | 323 for (int i = 0; i < 2; i++) { |
| 324 EXPECT_EQ(11921 + 4814 + file_paths_cost, | 324 EXPECT_EQ(11921 + 4814 + file_paths_cost, |
| 325 GetOriginUsage(quota_client.get(), kDummyURL1, kTemporary)); | 325 GetOriginUsage(quota_client.get(), kDummyURL1, kTemporary)); |
| 326 } | 326 } |
| 327 } | 327 } |
| 328 | 328 |
| 329 TEST_F(FileSystemQuotaClientTest, MultiTypeTest) { | 329 TEST_F(FileSystemQuotaClientTest, MultiTypeTest) { |
| 330 scoped_ptr<FileSystemQuotaClient> quota_client(NewQuotaClient(false)); | 330 scoped_ptr<FileSystemQuotaClient> quota_client(NewQuotaClient(false)); |
| 331 const TestFile kFiles[] = { | 331 const TestFile kFiles[] = { |
| 332 {true, NULL, 0, kDummyURL1, kTemporary}, | 332 {true, NULL, 0, kDummyURL1, kTemporary}, |
| 333 {true, "dirtest", 0, kDummyURL1, kTemporary}, | 333 {true, "dirtest", 0, kDummyURL1, kTemporary}, |
| 334 {false, "dirtest/foo", 133, kDummyURL1, kTemporary}, | 334 {false, "dirtest/foo", 133, kDummyURL1, kTemporary}, |
| 335 {false, "bar", 14, kDummyURL1, kTemporary}, | 335 {false, "bar", 14, kDummyURL1, kTemporary}, |
| 336 {true, NULL, 0, kDummyURL1, kPersistent}, | 336 {true, NULL, 0, kDummyURL1, kPersistent}, |
| 337 {true, "dirtest", 0, kDummyURL1, kPersistent}, | 337 {true, "dirtest", 0, kDummyURL1, kPersistent}, |
| 338 {false, "dirtest/foo", 193, kDummyURL1, kPersistent}, | 338 {false, "dirtest/foo", 193, kDummyURL1, kPersistent}, |
| 339 {false, "bar", 9, kDummyURL1, kPersistent}, | 339 {false, "bar", 9, kDummyURL1, kPersistent}, |
| 340 }; | 340 }; |
| 341 InitializeOriginFiles(quota_client.get(), kFiles, ARRAYSIZE_UNSAFE(kFiles)); | 341 InitializeOriginFiles(quota_client.get(), kFiles, arraysize(kFiles)); |
| 342 const int64 file_paths_cost_temporary = ComputeFilePathsCostForOriginAndType( | 342 const int64 file_paths_cost_temporary = ComputeFilePathsCostForOriginAndType( |
| 343 kFiles, ARRAYSIZE_UNSAFE(kFiles), kDummyURL1, kTemporary); | 343 kFiles, arraysize(kFiles), kDummyURL1, kTemporary); |
| 344 const int64 file_paths_cost_persistent = ComputeFilePathsCostForOriginAndType( | 344 const int64 file_paths_cost_persistent = ComputeFilePathsCostForOriginAndType( |
| 345 kFiles, ARRAYSIZE_UNSAFE(kFiles), kDummyURL1, kTemporary); | 345 kFiles, arraysize(kFiles), kDummyURL1, kTemporary); |
| 346 | 346 |
| 347 for (int i = 0; i < 2; i++) { | 347 for (int i = 0; i < 2; i++) { |
| 348 EXPECT_EQ(133 + 14 + file_paths_cost_temporary, | 348 EXPECT_EQ(133 + 14 + file_paths_cost_temporary, |
| 349 GetOriginUsage(quota_client.get(), kDummyURL1, kTemporary)); | 349 GetOriginUsage(quota_client.get(), kDummyURL1, kTemporary)); |
| 350 EXPECT_EQ(193 + 9 + file_paths_cost_persistent, | 350 EXPECT_EQ(193 + 9 + file_paths_cost_persistent, |
| 351 GetOriginUsage(quota_client.get(), kDummyURL1, kPersistent)); | 351 GetOriginUsage(quota_client.get(), kDummyURL1, kPersistent)); |
| 352 } | 352 } |
| 353 } | 353 } |
| 354 | 354 |
| 355 TEST_F(FileSystemQuotaClientTest, MultiDomainTest) { | 355 TEST_F(FileSystemQuotaClientTest, MultiDomainTest) { |
| 356 scoped_ptr<FileSystemQuotaClient> quota_client(NewQuotaClient(false)); | 356 scoped_ptr<FileSystemQuotaClient> quota_client(NewQuotaClient(false)); |
| 357 const TestFile kFiles[] = { | 357 const TestFile kFiles[] = { |
| 358 {true, NULL, 0, kDummyURL1, kTemporary}, | 358 {true, NULL, 0, kDummyURL1, kTemporary}, |
| 359 {true, "dir1", 0, kDummyURL1, kTemporary}, | 359 {true, "dir1", 0, kDummyURL1, kTemporary}, |
| 360 {false, "dir1/foo", 1331, kDummyURL1, kTemporary}, | 360 {false, "dir1/foo", 1331, kDummyURL1, kTemporary}, |
| 361 {false, "bar", 134, kDummyURL1, kTemporary}, | 361 {false, "bar", 134, kDummyURL1, kTemporary}, |
| 362 {true, NULL, 0, kDummyURL1, kPersistent}, | 362 {true, NULL, 0, kDummyURL1, kPersistent}, |
| 363 {true, "dir2", 0, kDummyURL1, kPersistent}, | 363 {true, "dir2", 0, kDummyURL1, kPersistent}, |
| 364 {false, "dir2/foo", 1903, kDummyURL1, kPersistent}, | 364 {false, "dir2/foo", 1903, kDummyURL1, kPersistent}, |
| 365 {false, "bar", 19, kDummyURL1, kPersistent}, | 365 {false, "bar", 19, kDummyURL1, kPersistent}, |
| 366 {true, NULL, 0, kDummyURL2, kTemporary}, | 366 {true, NULL, 0, kDummyURL2, kTemporary}, |
| 367 {true, "dom", 0, kDummyURL2, kTemporary}, | 367 {true, "dom", 0, kDummyURL2, kTemporary}, |
| 368 {false, "dom/fan", 1319, kDummyURL2, kTemporary}, | 368 {false, "dom/fan", 1319, kDummyURL2, kTemporary}, |
| 369 {false, "bar", 113, kDummyURL2, kTemporary}, | 369 {false, "bar", 113, kDummyURL2, kTemporary}, |
| 370 {true, NULL, 0, kDummyURL2, kPersistent}, | 370 {true, NULL, 0, kDummyURL2, kPersistent}, |
| 371 {true, "dom", 0, kDummyURL2, kPersistent}, | 371 {true, "dom", 0, kDummyURL2, kPersistent}, |
| 372 {false, "dom/fan", 2013, kDummyURL2, kPersistent}, | 372 {false, "dom/fan", 2013, kDummyURL2, kPersistent}, |
| 373 {false, "baz", 18, kDummyURL2, kPersistent}, | 373 {false, "baz", 18, kDummyURL2, kPersistent}, |
| 374 }; | 374 }; |
| 375 InitializeOriginFiles(quota_client.get(), kFiles, ARRAYSIZE_UNSAFE(kFiles)); | 375 InitializeOriginFiles(quota_client.get(), kFiles, arraysize(kFiles)); |
| 376 const int64 file_paths_cost_temporary1 = ComputeFilePathsCostForOriginAndType( | 376 const int64 file_paths_cost_temporary1 = ComputeFilePathsCostForOriginAndType( |
| 377 kFiles, ARRAYSIZE_UNSAFE(kFiles), kDummyURL1, kTemporary); | 377 kFiles, arraysize(kFiles), kDummyURL1, kTemporary); |
| 378 const int64 file_paths_cost_persistent1 = | 378 const int64 file_paths_cost_persistent1 = |
| 379 ComputeFilePathsCostForOriginAndType(kFiles, ARRAYSIZE_UNSAFE(kFiles), | 379 ComputeFilePathsCostForOriginAndType(kFiles, arraysize(kFiles), |
| 380 kDummyURL1, kPersistent); | 380 kDummyURL1, kPersistent); |
| 381 const int64 file_paths_cost_temporary2 = ComputeFilePathsCostForOriginAndType( | 381 const int64 file_paths_cost_temporary2 = ComputeFilePathsCostForOriginAndType( |
| 382 kFiles, ARRAYSIZE_UNSAFE(kFiles), kDummyURL2, kTemporary); | 382 kFiles, arraysize(kFiles), kDummyURL2, kTemporary); |
| 383 const int64 file_paths_cost_persistent2 = | 383 const int64 file_paths_cost_persistent2 = |
| 384 ComputeFilePathsCostForOriginAndType(kFiles, ARRAYSIZE_UNSAFE(kFiles), | 384 ComputeFilePathsCostForOriginAndType(kFiles, arraysize(kFiles), |
| 385 kDummyURL2, kPersistent); | 385 kDummyURL2, kPersistent); |
| 386 | 386 |
| 387 for (int i = 0; i < 2; i++) { | 387 for (int i = 0; i < 2; i++) { |
| 388 EXPECT_EQ(1331 + 134 + file_paths_cost_temporary1, | 388 EXPECT_EQ(1331 + 134 + file_paths_cost_temporary1, |
| 389 GetOriginUsage(quota_client.get(), kDummyURL1, kTemporary)); | 389 GetOriginUsage(quota_client.get(), kDummyURL1, kTemporary)); |
| 390 EXPECT_EQ(1903 + 19 + file_paths_cost_persistent1, | 390 EXPECT_EQ(1903 + 19 + file_paths_cost_persistent1, |
| 391 GetOriginUsage(quota_client.get(), kDummyURL1, kPersistent)); | 391 GetOriginUsage(quota_client.get(), kDummyURL1, kPersistent)); |
| 392 EXPECT_EQ(1319 + 113 + file_paths_cost_temporary2, | 392 EXPECT_EQ(1319 + 113 + file_paths_cost_temporary2, |
| 393 GetOriginUsage(quota_client.get(), kDummyURL2, kTemporary)); | 393 GetOriginUsage(quota_client.get(), kDummyURL2, kTemporary)); |
| 394 EXPECT_EQ(2013 + 18 + file_paths_cost_persistent2, | 394 EXPECT_EQ(2013 + 18 + file_paths_cost_persistent2, |
| 395 GetOriginUsage(quota_client.get(), kDummyURL2, kPersistent)); | 395 GetOriginUsage(quota_client.get(), kDummyURL2, kPersistent)); |
| 396 } | 396 } |
| 397 } | 397 } |
| 398 | 398 |
| 399 TEST_F(FileSystemQuotaClientTest, GetUsage_MultipleTasks) { | 399 TEST_F(FileSystemQuotaClientTest, GetUsage_MultipleTasks) { |
| 400 scoped_ptr<FileSystemQuotaClient> quota_client(NewQuotaClient(false)); | 400 scoped_ptr<FileSystemQuotaClient> quota_client(NewQuotaClient(false)); |
| 401 const TestFile kFiles[] = { | 401 const TestFile kFiles[] = { |
| 402 {true, NULL, 0, kDummyURL1, kTemporary}, | 402 {true, NULL, 0, kDummyURL1, kTemporary}, |
| 403 {false, "foo", 11, kDummyURL1, kTemporary}, | 403 {false, "foo", 11, kDummyURL1, kTemporary}, |
| 404 {false, "bar", 22, kDummyURL1, kTemporary}, | 404 {false, "bar", 22, kDummyURL1, kTemporary}, |
| 405 }; | 405 }; |
| 406 InitializeOriginFiles(quota_client.get(), kFiles, ARRAYSIZE_UNSAFE(kFiles)); | 406 InitializeOriginFiles(quota_client.get(), kFiles, arraysize(kFiles)); |
| 407 const int64 file_paths_cost = ComputeFilePathsCostForOriginAndType( | 407 const int64 file_paths_cost = ComputeFilePathsCostForOriginAndType( |
| 408 kFiles, ARRAYSIZE_UNSAFE(kFiles), kDummyURL1, kTemporary); | 408 kFiles, arraysize(kFiles), kDummyURL1, kTemporary); |
| 409 | 409 |
| 410 // Dispatching three GetUsage tasks. | 410 // Dispatching three GetUsage tasks. |
| 411 set_additional_callback_count(0); | 411 set_additional_callback_count(0); |
| 412 GetOriginUsageAsync(quota_client.get(), kDummyURL1, kTemporary); | 412 GetOriginUsageAsync(quota_client.get(), kDummyURL1, kTemporary); |
| 413 RunAdditionalOriginUsageTask(quota_client.get(), kDummyURL1, kTemporary); | 413 RunAdditionalOriginUsageTask(quota_client.get(), kDummyURL1, kTemporary); |
| 414 RunAdditionalOriginUsageTask(quota_client.get(), kDummyURL1, kTemporary); | 414 RunAdditionalOriginUsageTask(quota_client.get(), kDummyURL1, kTemporary); |
| 415 base::RunLoop().RunUntilIdle(); | 415 base::RunLoop().RunUntilIdle(); |
| 416 EXPECT_EQ(11 + 22 + file_paths_cost, usage()); | 416 EXPECT_EQ(11 + 22 + file_paths_cost, usage()); |
| 417 EXPECT_EQ(2, additional_callback_count()); | 417 EXPECT_EQ(2, additional_callback_count()); |
| 418 | 418 |
| 419 // Once more, in a different order. | 419 // Once more, in a different order. |
| 420 set_additional_callback_count(0); | 420 set_additional_callback_count(0); |
| 421 RunAdditionalOriginUsageTask(quota_client.get(), kDummyURL1, kTemporary); | 421 RunAdditionalOriginUsageTask(quota_client.get(), kDummyURL1, kTemporary); |
| 422 GetOriginUsageAsync(quota_client.get(), kDummyURL1, kTemporary); | 422 GetOriginUsageAsync(quota_client.get(), kDummyURL1, kTemporary); |
| 423 RunAdditionalOriginUsageTask(quota_client.get(), kDummyURL1, kTemporary); | 423 RunAdditionalOriginUsageTask(quota_client.get(), kDummyURL1, kTemporary); |
| 424 base::RunLoop().RunUntilIdle(); | 424 base::RunLoop().RunUntilIdle(); |
| 425 EXPECT_EQ(11 + 22 + file_paths_cost, usage()); | 425 EXPECT_EQ(11 + 22 + file_paths_cost, usage()); |
| 426 EXPECT_EQ(2, additional_callback_count()); | 426 EXPECT_EQ(2, additional_callback_count()); |
| 427 } | 427 } |
| 428 | 428 |
| 429 TEST_F(FileSystemQuotaClientTest, GetOriginsForType) { | 429 TEST_F(FileSystemQuotaClientTest, GetOriginsForType) { |
| 430 scoped_ptr<FileSystemQuotaClient> quota_client(NewQuotaClient(false)); | 430 scoped_ptr<FileSystemQuotaClient> quota_client(NewQuotaClient(false)); |
| 431 const TestFile kFiles[] = { | 431 const TestFile kFiles[] = { |
| 432 {true, NULL, 0, kDummyURL1, kTemporary}, | 432 {true, NULL, 0, kDummyURL1, kTemporary}, |
| 433 {true, NULL, 0, kDummyURL2, kTemporary}, | 433 {true, NULL, 0, kDummyURL2, kTemporary}, |
| 434 {true, NULL, 0, kDummyURL3, kPersistent}, | 434 {true, NULL, 0, kDummyURL3, kPersistent}, |
| 435 }; | 435 }; |
| 436 InitializeOriginFiles(quota_client.get(), kFiles, ARRAYSIZE_UNSAFE(kFiles)); | 436 InitializeOriginFiles(quota_client.get(), kFiles, arraysize(kFiles)); |
| 437 | 437 |
| 438 std::set<GURL> origins = GetOriginsForType(quota_client.get(), kTemporary); | 438 std::set<GURL> origins = GetOriginsForType(quota_client.get(), kTemporary); |
| 439 EXPECT_EQ(2U, origins.size()); | 439 EXPECT_EQ(2U, origins.size()); |
| 440 EXPECT_TRUE(origins.find(GURL(kDummyURL1)) != origins.end()); | 440 EXPECT_TRUE(origins.find(GURL(kDummyURL1)) != origins.end()); |
| 441 EXPECT_TRUE(origins.find(GURL(kDummyURL2)) != origins.end()); | 441 EXPECT_TRUE(origins.find(GURL(kDummyURL2)) != origins.end()); |
| 442 EXPECT_TRUE(origins.find(GURL(kDummyURL3)) == origins.end()); | 442 EXPECT_TRUE(origins.find(GURL(kDummyURL3)) == origins.end()); |
| 443 } | 443 } |
| 444 | 444 |
| 445 TEST_F(FileSystemQuotaClientTest, GetOriginsForHost) { | 445 TEST_F(FileSystemQuotaClientTest, GetOriginsForHost) { |
| 446 scoped_ptr<FileSystemQuotaClient> quota_client(NewQuotaClient(false)); | 446 scoped_ptr<FileSystemQuotaClient> quota_client(NewQuotaClient(false)); |
| 447 const char* kURL1 = "http://foo.com/"; | 447 const char* kURL1 = "http://foo.com/"; |
| 448 const char* kURL2 = "https://foo.com/"; | 448 const char* kURL2 = "https://foo.com/"; |
| 449 const char* kURL3 = "http://foo.com:1/"; | 449 const char* kURL3 = "http://foo.com:1/"; |
| 450 const char* kURL4 = "http://foo2.com/"; | 450 const char* kURL4 = "http://foo2.com/"; |
| 451 const char* kURL5 = "http://foo.com:2/"; | 451 const char* kURL5 = "http://foo.com:2/"; |
| 452 const TestFile kFiles[] = { | 452 const TestFile kFiles[] = { |
| 453 {true, NULL, 0, kURL1, kTemporary}, | 453 {true, NULL, 0, kURL1, kTemporary}, |
| 454 {true, NULL, 0, kURL2, kTemporary}, | 454 {true, NULL, 0, kURL2, kTemporary}, |
| 455 {true, NULL, 0, kURL3, kTemporary}, | 455 {true, NULL, 0, kURL3, kTemporary}, |
| 456 {true, NULL, 0, kURL4, kTemporary}, | 456 {true, NULL, 0, kURL4, kTemporary}, |
| 457 {true, NULL, 0, kURL5, kPersistent}, | 457 {true, NULL, 0, kURL5, kPersistent}, |
| 458 }; | 458 }; |
| 459 InitializeOriginFiles(quota_client.get(), kFiles, ARRAYSIZE_UNSAFE(kFiles)); | 459 InitializeOriginFiles(quota_client.get(), kFiles, arraysize(kFiles)); |
| 460 | 460 |
| 461 std::set<GURL> origins = GetOriginsForHost( | 461 std::set<GURL> origins = GetOriginsForHost( |
| 462 quota_client.get(), kTemporary, "foo.com"); | 462 quota_client.get(), kTemporary, "foo.com"); |
| 463 EXPECT_EQ(3U, origins.size()); | 463 EXPECT_EQ(3U, origins.size()); |
| 464 EXPECT_TRUE(origins.find(GURL(kURL1)) != origins.end()); | 464 EXPECT_TRUE(origins.find(GURL(kURL1)) != origins.end()); |
| 465 EXPECT_TRUE(origins.find(GURL(kURL2)) != origins.end()); | 465 EXPECT_TRUE(origins.find(GURL(kURL2)) != origins.end()); |
| 466 EXPECT_TRUE(origins.find(GURL(kURL3)) != origins.end()); | 466 EXPECT_TRUE(origins.find(GURL(kURL3)) != origins.end()); |
| 467 EXPECT_TRUE(origins.find(GURL(kURL4)) == origins.end()); // Different host. | 467 EXPECT_TRUE(origins.find(GURL(kURL4)) == origins.end()); // Different host. |
| 468 EXPECT_TRUE(origins.find(GURL(kURL5)) == origins.end()); // Different type. | 468 EXPECT_TRUE(origins.find(GURL(kURL5)) == origins.end()); // Different type. |
| 469 } | 469 } |
| 470 | 470 |
| 471 TEST_F(FileSystemQuotaClientTest, IncognitoTest) { | 471 TEST_F(FileSystemQuotaClientTest, IncognitoTest) { |
| 472 scoped_ptr<FileSystemQuotaClient> quota_client(NewQuotaClient(true)); | 472 scoped_ptr<FileSystemQuotaClient> quota_client(NewQuotaClient(true)); |
| 473 const TestFile kFiles[] = { | 473 const TestFile kFiles[] = { |
| 474 {true, NULL, 0, kDummyURL1, kTemporary}, | 474 {true, NULL, 0, kDummyURL1, kTemporary}, |
| 475 {false, "foo", 10, kDummyURL1, kTemporary}, | 475 {false, "foo", 10, kDummyURL1, kTemporary}, |
| 476 }; | 476 }; |
| 477 InitializeOriginFiles(quota_client.get(), kFiles, ARRAYSIZE_UNSAFE(kFiles)); | 477 InitializeOriginFiles(quota_client.get(), kFiles, arraysize(kFiles)); |
| 478 | 478 |
| 479 // Having files in the usual directory wouldn't affect the result | 479 // Having files in the usual directory wouldn't affect the result |
| 480 // queried in incognito mode. | 480 // queried in incognito mode. |
| 481 EXPECT_EQ(0, GetOriginUsage(quota_client.get(), kDummyURL1, kTemporary)); | 481 EXPECT_EQ(0, GetOriginUsage(quota_client.get(), kDummyURL1, kTemporary)); |
| 482 EXPECT_EQ(0, GetOriginUsage(quota_client.get(), kDummyURL1, kPersistent)); | 482 EXPECT_EQ(0, GetOriginUsage(quota_client.get(), kDummyURL1, kPersistent)); |
| 483 | 483 |
| 484 std::set<GURL> origins = GetOriginsForType(quota_client.get(), kTemporary); | 484 std::set<GURL> origins = GetOriginsForType(quota_client.get(), kTemporary); |
| 485 EXPECT_EQ(0U, origins.size()); | 485 EXPECT_EQ(0U, origins.size()); |
| 486 origins = GetOriginsForHost(quota_client.get(), kTemporary, "www.dummy.org"); | 486 origins = GetOriginsForHost(quota_client.get(), kTemporary, "www.dummy.org"); |
| 487 EXPECT_EQ(0U, origins.size()); | 487 EXPECT_EQ(0U, origins.size()); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 498 {false, "c", 4, "http://foo.com/", kPersistent}, | 498 {false, "c", 4, "http://foo.com/", kPersistent}, |
| 499 {true, NULL, 0, "http://bar.com/", kTemporary}, | 499 {true, NULL, 0, "http://bar.com/", kTemporary}, |
| 500 {false, "d", 8, "http://bar.com/", kTemporary}, | 500 {false, "d", 8, "http://bar.com/", kTemporary}, |
| 501 {true, NULL, 0, "http://bar.com/", kPersistent}, | 501 {true, NULL, 0, "http://bar.com/", kPersistent}, |
| 502 {false, "e", 16, "http://bar.com/", kPersistent}, | 502 {false, "e", 16, "http://bar.com/", kPersistent}, |
| 503 {true, NULL, 0, "https://bar.com/", kPersistent}, | 503 {true, NULL, 0, "https://bar.com/", kPersistent}, |
| 504 {false, "f", 32, "https://bar.com/", kPersistent}, | 504 {false, "f", 32, "https://bar.com/", kPersistent}, |
| 505 {true, NULL, 0, "https://bar.com/", kTemporary}, | 505 {true, NULL, 0, "https://bar.com/", kTemporary}, |
| 506 {false, "g", 64, "https://bar.com/", kTemporary}, | 506 {false, "g", 64, "https://bar.com/", kTemporary}, |
| 507 }; | 507 }; |
| 508 InitializeOriginFiles(quota_client.get(), kFiles, ARRAYSIZE_UNSAFE(kFiles)); | 508 InitializeOriginFiles(quota_client.get(), kFiles, arraysize(kFiles)); |
| 509 const int64 file_paths_cost_temporary_foo_https = | 509 const int64 file_paths_cost_temporary_foo_https = |
| 510 ComputeFilePathsCostForOriginAndType(kFiles, ARRAYSIZE_UNSAFE(kFiles), | 510 ComputeFilePathsCostForOriginAndType(kFiles, arraysize(kFiles), |
| 511 "https://foo.com/", kTemporary); | 511 "https://foo.com/", kTemporary); |
| 512 const int64 file_paths_cost_persistent_foo = | 512 const int64 file_paths_cost_persistent_foo = |
| 513 ComputeFilePathsCostForOriginAndType(kFiles, ARRAYSIZE_UNSAFE(kFiles), | 513 ComputeFilePathsCostForOriginAndType(kFiles, arraysize(kFiles), |
| 514 "http://foo.com/", kPersistent); | 514 "http://foo.com/", kPersistent); |
| 515 const int64 file_paths_cost_temporary_bar = | 515 const int64 file_paths_cost_temporary_bar = |
| 516 ComputeFilePathsCostForOriginAndType(kFiles, ARRAYSIZE_UNSAFE(kFiles), | 516 ComputeFilePathsCostForOriginAndType(kFiles, arraysize(kFiles), |
| 517 "http://bar.com/", kTemporary); | 517 "http://bar.com/", kTemporary); |
| 518 const int64 file_paths_cost_temporary_bar_https = | 518 const int64 file_paths_cost_temporary_bar_https = |
| 519 ComputeFilePathsCostForOriginAndType(kFiles, ARRAYSIZE_UNSAFE(kFiles), | 519 ComputeFilePathsCostForOriginAndType(kFiles, arraysize(kFiles), |
| 520 "https://bar.com/", kTemporary); | 520 "https://bar.com/", kTemporary); |
| 521 const int64 file_paths_cost_persistent_bar_https = | 521 const int64 file_paths_cost_persistent_bar_https = |
| 522 ComputeFilePathsCostForOriginAndType(kFiles, ARRAYSIZE_UNSAFE(kFiles), | 522 ComputeFilePathsCostForOriginAndType(kFiles, arraysize(kFiles), |
| 523 "https://bar.com/", kPersistent); | 523 "https://bar.com/", kPersistent); |
| 524 | 524 |
| 525 DeleteOriginData(quota_client.get(), "http://foo.com/", kTemporary); | 525 DeleteOriginData(quota_client.get(), "http://foo.com/", kTemporary); |
| 526 base::RunLoop().RunUntilIdle(); | 526 base::RunLoop().RunUntilIdle(); |
| 527 EXPECT_EQ(storage::kQuotaStatusOk, status()); | 527 EXPECT_EQ(storage::kQuotaStatusOk, status()); |
| 528 | 528 |
| 529 DeleteOriginData(quota_client.get(), "http://bar.com/", kPersistent); | 529 DeleteOriginData(quota_client.get(), "http://bar.com/", kPersistent); |
| 530 base::RunLoop().RunUntilIdle(); | 530 base::RunLoop().RunUntilIdle(); |
| 531 EXPECT_EQ(storage::kQuotaStatusOk, status()); | 531 EXPECT_EQ(storage::kQuotaStatusOk, status()); |
| 532 | 532 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 557 GetOriginUsage(quota_client.get(), | 557 GetOriginUsage(quota_client.get(), |
| 558 "https://bar.com/", | 558 "https://bar.com/", |
| 559 kPersistent)); | 559 kPersistent)); |
| 560 EXPECT_EQ(64 + file_paths_cost_temporary_bar_https, | 560 EXPECT_EQ(64 + file_paths_cost_temporary_bar_https, |
| 561 GetOriginUsage(quota_client.get(), | 561 GetOriginUsage(quota_client.get(), |
| 562 "https://bar.com/", | 562 "https://bar.com/", |
| 563 kTemporary)); | 563 kTemporary)); |
| 564 } | 564 } |
| 565 | 565 |
| 566 } // namespace content | 566 } // namespace content |
| OLD | NEW |