OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 <stdint.h> |
| 6 |
5 #include <vector> | 7 #include <vector> |
6 | 8 |
7 #include "base/files/scoped_temp_dir.h" | 9 #include "base/files/scoped_temp_dir.h" |
8 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
9 #include "base/thread_task_runner_handle.h" | 11 #include "base/thread_task_runner_handle.h" |
10 #include "content/public/test/mock_special_storage_policy.h" | 12 #include "content/public/test/mock_special_storage_policy.h" |
11 #include "content/public/test/mock_storage_client.h" | 13 #include "content/public/test/mock_storage_client.h" |
12 #include "net/base/net_util.h" | 14 #include "net/base/net_util.h" |
13 #include "storage/browser/quota/quota_manager.h" | 15 #include "storage/browser/quota/quota_manager.h" |
14 #include "storage/browser/quota/quota_manager_proxy.h" | 16 #include "storage/browser/quota/quota_manager_proxy.h" |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 : QuotaManager(false, | 67 : QuotaManager(false, |
66 base::FilePath(), | 68 base::FilePath(), |
67 base::ThreadTaskRunnerHandle::Get().get(), | 69 base::ThreadTaskRunnerHandle::Get().get(), |
68 base::ThreadTaskRunnerHandle::Get().get(), | 70 base::ThreadTaskRunnerHandle::Get().get(), |
69 special_storage_policy), | 71 special_storage_policy), |
70 callback_usage_(0), | 72 callback_usage_(0), |
71 callback_quota_(0), | 73 callback_quota_(0), |
72 callback_status_(kQuotaStatusOk), | 74 callback_status_(kQuotaStatusOk), |
73 initialized_(false) {} | 75 initialized_(false) {} |
74 | 76 |
75 void SetCallbackParams(int64 usage, int64 quota, QuotaStatusCode status) { | 77 void SetCallbackParams(int64_t usage, int64_t quota, QuotaStatusCode status) { |
76 initialized_ = true; | 78 initialized_ = true; |
77 callback_quota_ = quota; | 79 callback_quota_ = quota; |
78 callback_usage_ = usage; | 80 callback_usage_ = usage; |
79 callback_status_ = status; | 81 callback_status_ = status; |
80 } | 82 } |
81 | 83 |
82 void InvokeCallback() { | 84 void InvokeCallback() { |
83 delayed_callback_.Run(callback_status_, callback_usage_, callback_quota_); | 85 delayed_callback_.Run(callback_status_, callback_usage_, callback_quota_); |
84 } | 86 } |
85 | 87 |
86 void GetUsageAndQuotaForWebApps( | 88 void GetUsageAndQuotaForWebApps( |
87 const GURL& origin, | 89 const GURL& origin, |
88 StorageType type, | 90 StorageType type, |
89 const GetUsageAndQuotaCallback& callback) override { | 91 const GetUsageAndQuotaCallback& callback) override { |
90 if (initialized_) | 92 if (initialized_) |
91 callback.Run(callback_status_, callback_usage_, callback_quota_); | 93 callback.Run(callback_status_, callback_usage_, callback_quota_); |
92 else | 94 else |
93 delayed_callback_ = callback; | 95 delayed_callback_ = callback; |
94 } | 96 } |
95 | 97 |
96 protected: | 98 protected: |
97 ~UsageMockQuotaManager() override {} | 99 ~UsageMockQuotaManager() override {} |
98 | 100 |
99 private: | 101 private: |
100 int64 callback_usage_; | 102 int64_t callback_usage_; |
101 int64 callback_quota_; | 103 int64_t callback_quota_; |
102 QuotaStatusCode callback_status_; | 104 QuotaStatusCode callback_status_; |
103 bool initialized_; | 105 bool initialized_; |
104 GetUsageAndQuotaCallback delayed_callback_; | 106 GetUsageAndQuotaCallback delayed_callback_; |
105 }; | 107 }; |
106 | 108 |
107 } // namespace | 109 } // namespace |
108 | 110 |
109 class StorageMonitorTestBase : public testing::Test { | 111 class StorageMonitorTestBase : public testing::Test { |
110 protected: | 112 protected: |
111 void DispatchPendingEvents(StorageObserverList& observer_list) { | 113 void DispatchPendingEvents(StorageObserverList& observer_list) { |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
314 // Tests for HostStorageObservers: | 316 // Tests for HostStorageObservers: |
315 | 317 |
316 typedef StorageTestWithManagerBase HostStorageObserversTest; | 318 typedef StorageTestWithManagerBase HostStorageObserversTest; |
317 | 319 |
318 // Verify that HostStorageObservers is initialized after the first usage change. | 320 // Verify that HostStorageObservers is initialized after the first usage change. |
319 TEST_F(HostStorageObserversTest, InitializeOnUsageChange) { | 321 TEST_F(HostStorageObserversTest, InitializeOnUsageChange) { |
320 StorageObserver::MonitorParams params(kStorageTypePersistent, | 322 StorageObserver::MonitorParams params(kStorageTypePersistent, |
321 GURL(kDefaultOrigin), | 323 GURL(kDefaultOrigin), |
322 base::TimeDelta::FromHours(1), | 324 base::TimeDelta::FromHours(1), |
323 false); | 325 false); |
324 const int64 kUsage = 324554; | 326 const int64_t kUsage = 324554; |
325 const int64 kQuota = 234354354; | 327 const int64_t kQuota = 234354354; |
326 quota_manager_->SetCallbackParams(kUsage, kQuota, kQuotaStatusOk); | 328 quota_manager_->SetCallbackParams(kUsage, kQuota, kQuotaStatusOk); |
327 | 329 |
328 MockObserver mock_observer; | 330 MockObserver mock_observer; |
329 HostStorageObservers host_observers(quota_manager_.get()); | 331 HostStorageObservers host_observers(quota_manager_.get()); |
330 host_observers.AddObserver(&mock_observer, params); | 332 host_observers.AddObserver(&mock_observer, params); |
331 | 333 |
332 // Verify that HostStorageObservers dispatches the first event correctly. | 334 // Verify that HostStorageObservers dispatches the first event correctly. |
333 StorageObserver::Event expected_event(params.filter, kUsage, kQuota); | 335 StorageObserver::Event expected_event(params.filter, kUsage, kQuota); |
334 host_observers.NotifyUsageChange(params.filter, 87324); | 336 host_observers.NotifyUsageChange(params.filter, 87324); |
335 EXPECT_EQ(1, mock_observer.EventCount()); | 337 EXPECT_EQ(1, mock_observer.EventCount()); |
336 EXPECT_EQ(expected_event, mock_observer.LastEvent()); | 338 EXPECT_EQ(expected_event, mock_observer.LastEvent()); |
337 EXPECT_TRUE(host_observers.is_initialized()); | 339 EXPECT_TRUE(host_observers.is_initialized()); |
338 | 340 |
339 // Verify that HostStorageObservers handles subsequent usage changes | 341 // Verify that HostStorageObservers handles subsequent usage changes |
340 // correctly. | 342 // correctly. |
341 const int64 kDelta = 2345; | 343 const int64_t kDelta = 2345; |
342 expected_event.usage += kDelta; | 344 expected_event.usage += kDelta; |
343 SetLastNotificationTime(host_observers, &mock_observer); | 345 SetLastNotificationTime(host_observers, &mock_observer); |
344 host_observers.NotifyUsageChange(params.filter, kDelta); | 346 host_observers.NotifyUsageChange(params.filter, kDelta); |
345 EXPECT_EQ(2, mock_observer.EventCount()); | 347 EXPECT_EQ(2, mock_observer.EventCount()); |
346 EXPECT_EQ(expected_event, mock_observer.LastEvent()); | 348 EXPECT_EQ(expected_event, mock_observer.LastEvent()); |
347 } | 349 } |
348 | 350 |
349 // Verify that HostStorageObservers is initialized after the adding the first | 351 // Verify that HostStorageObservers is initialized after the adding the first |
350 // observer that elected to receive the initial state. | 352 // observer that elected to receive the initial state. |
351 TEST_F(HostStorageObserversTest, InitializeOnObserver) { | 353 TEST_F(HostStorageObserversTest, InitializeOnObserver) { |
352 const int64 kUsage = 74387; | 354 const int64_t kUsage = 74387; |
353 const int64 kQuota = 92834743; | 355 const int64_t kQuota = 92834743; |
354 quota_manager_->SetCallbackParams(kUsage, kQuota, kQuotaStatusOk); | 356 quota_manager_->SetCallbackParams(kUsage, kQuota, kQuotaStatusOk); |
355 HostStorageObservers host_observers(quota_manager_.get()); | 357 HostStorageObservers host_observers(quota_manager_.get()); |
356 | 358 |
357 // |host_observers| should not be initialized after the first observer is | 359 // |host_observers| should not be initialized after the first observer is |
358 // added because it did not elect to receive the initial state. | 360 // added because it did not elect to receive the initial state. |
359 StorageObserver::MonitorParams params(kStorageTypePersistent, | 361 StorageObserver::MonitorParams params(kStorageTypePersistent, |
360 GURL(kDefaultOrigin), | 362 GURL(kDefaultOrigin), |
361 base::TimeDelta::FromHours(1), | 363 base::TimeDelta::FromHours(1), |
362 false); | 364 false); |
363 MockObserver mock_observer1; | 365 MockObserver mock_observer1; |
364 host_observers.AddObserver(&mock_observer1, params); | 366 host_observers.AddObserver(&mock_observer1, params); |
365 EXPECT_FALSE(host_observers.is_initialized()); | 367 EXPECT_FALSE(host_observers.is_initialized()); |
366 EXPECT_EQ(0, mock_observer1.EventCount()); | 368 EXPECT_EQ(0, mock_observer1.EventCount()); |
367 | 369 |
368 // |host_observers| should be initialized after the second observer is | 370 // |host_observers| should be initialized after the second observer is |
369 // added. | 371 // added. |
370 MockObserver mock_observer2; | 372 MockObserver mock_observer2; |
371 params.dispatch_initial_state = true; | 373 params.dispatch_initial_state = true; |
372 host_observers.AddObserver(&mock_observer2, params); | 374 host_observers.AddObserver(&mock_observer2, params); |
373 StorageObserver::Event expected_event(params.filter, kUsage, kQuota); | 375 StorageObserver::Event expected_event(params.filter, kUsage, kQuota); |
374 EXPECT_EQ(0, mock_observer1.EventCount()); | 376 EXPECT_EQ(0, mock_observer1.EventCount()); |
375 EXPECT_EQ(1, mock_observer2.EventCount()); | 377 EXPECT_EQ(1, mock_observer2.EventCount()); |
376 EXPECT_EQ(expected_event, mock_observer2.LastEvent()); | 378 EXPECT_EQ(expected_event, mock_observer2.LastEvent()); |
377 EXPECT_TRUE(host_observers.is_initialized()); | 379 EXPECT_TRUE(host_observers.is_initialized()); |
378 EXPECT_EQ(NULL, GetPendingEvent(host_observers)); | 380 EXPECT_EQ(NULL, GetPendingEvent(host_observers)); |
379 EXPECT_EQ(0, GetRequiredUpdatesCount(host_observers)); | 381 EXPECT_EQ(0, GetRequiredUpdatesCount(host_observers)); |
380 | 382 |
381 // Verify that both observers will receive events after a usage change. | 383 // Verify that both observers will receive events after a usage change. |
382 const int64 kDelta = 2345; | 384 const int64_t kDelta = 2345; |
383 expected_event.usage += kDelta; | 385 expected_event.usage += kDelta; |
384 SetLastNotificationTime(host_observers, &mock_observer2); | 386 SetLastNotificationTime(host_observers, &mock_observer2); |
385 host_observers.NotifyUsageChange(params.filter, kDelta); | 387 host_observers.NotifyUsageChange(params.filter, kDelta); |
386 EXPECT_EQ(1, mock_observer1.EventCount()); | 388 EXPECT_EQ(1, mock_observer1.EventCount()); |
387 EXPECT_EQ(2, mock_observer2.EventCount()); | 389 EXPECT_EQ(2, mock_observer2.EventCount()); |
388 EXPECT_EQ(expected_event, mock_observer1.LastEvent()); | 390 EXPECT_EQ(expected_event, mock_observer1.LastEvent()); |
389 EXPECT_EQ(expected_event, mock_observer2.LastEvent()); | 391 EXPECT_EQ(expected_event, mock_observer2.LastEvent()); |
390 EXPECT_EQ(NULL, GetPendingEvent(host_observers)); | 392 EXPECT_EQ(NULL, GetPendingEvent(host_observers)); |
391 EXPECT_EQ(0, GetRequiredUpdatesCount(host_observers)); | 393 EXPECT_EQ(0, GetRequiredUpdatesCount(host_observers)); |
392 | 394 |
393 // Verify that the addition of a third observer only causes an event to be | 395 // Verify that the addition of a third observer only causes an event to be |
394 // dispatched to the new observer. | 396 // dispatched to the new observer. |
395 MockObserver mock_observer3; | 397 MockObserver mock_observer3; |
396 params.dispatch_initial_state = true; | 398 params.dispatch_initial_state = true; |
397 host_observers.AddObserver(&mock_observer3, params); | 399 host_observers.AddObserver(&mock_observer3, params); |
398 EXPECT_EQ(1, mock_observer1.EventCount()); | 400 EXPECT_EQ(1, mock_observer1.EventCount()); |
399 EXPECT_EQ(2, mock_observer2.EventCount()); | 401 EXPECT_EQ(2, mock_observer2.EventCount()); |
400 EXPECT_EQ(1, mock_observer3.EventCount()); | 402 EXPECT_EQ(1, mock_observer3.EventCount()); |
401 EXPECT_EQ(expected_event, mock_observer3.LastEvent()); | 403 EXPECT_EQ(expected_event, mock_observer3.LastEvent()); |
402 } | 404 } |
403 | 405 |
404 // Verify that negative usage and quota is changed to zero. | 406 // Verify that negative usage and quota is changed to zero. |
405 TEST_F(HostStorageObserversTest, NegativeUsageAndQuota) { | 407 TEST_F(HostStorageObserversTest, NegativeUsageAndQuota) { |
406 StorageObserver::MonitorParams params(kStorageTypePersistent, | 408 StorageObserver::MonitorParams params(kStorageTypePersistent, |
407 GURL(kDefaultOrigin), | 409 GURL(kDefaultOrigin), |
408 base::TimeDelta::FromHours(1), | 410 base::TimeDelta::FromHours(1), |
409 false); | 411 false); |
410 const int64 kUsage = -324554; | 412 const int64_t kUsage = -324554; |
411 const int64 kQuota = -234354354; | 413 const int64_t kQuota = -234354354; |
412 quota_manager_->SetCallbackParams(kUsage, kQuota, kQuotaStatusOk); | 414 quota_manager_->SetCallbackParams(kUsage, kQuota, kQuotaStatusOk); |
413 | 415 |
414 MockObserver mock_observer; | 416 MockObserver mock_observer; |
415 HostStorageObservers host_observers(quota_manager_.get()); | 417 HostStorageObservers host_observers(quota_manager_.get()); |
416 host_observers.AddObserver(&mock_observer, params); | 418 host_observers.AddObserver(&mock_observer, params); |
417 | 419 |
418 StorageObserver::Event expected_event(params.filter, 0, 0); | 420 StorageObserver::Event expected_event(params.filter, 0, 0); |
419 host_observers.NotifyUsageChange(params.filter, -87324); | 421 host_observers.NotifyUsageChange(params.filter, -87324); |
420 EXPECT_EQ(expected_event, mock_observer.LastEvent()); | 422 EXPECT_EQ(expected_event, mock_observer.LastEvent()); |
421 } | 423 } |
422 | 424 |
423 // Verify that HostStorageObservers can recover from a bad initialization. | 425 // Verify that HostStorageObservers can recover from a bad initialization. |
424 TEST_F(HostStorageObserversTest, RecoverFromBadUsageInit) { | 426 TEST_F(HostStorageObserversTest, RecoverFromBadUsageInit) { |
425 StorageObserver::MonitorParams params(kStorageTypePersistent, | 427 StorageObserver::MonitorParams params(kStorageTypePersistent, |
426 GURL(kDefaultOrigin), | 428 GURL(kDefaultOrigin), |
427 base::TimeDelta::FromHours(1), | 429 base::TimeDelta::FromHours(1), |
428 false); | 430 false); |
429 MockObserver mock_observer; | 431 MockObserver mock_observer; |
430 HostStorageObservers host_observers(quota_manager_.get()); | 432 HostStorageObservers host_observers(quota_manager_.get()); |
431 host_observers.AddObserver(&mock_observer, params); | 433 host_observers.AddObserver(&mock_observer, params); |
432 | 434 |
433 // Set up the quota manager to return an error status. | 435 // Set up the quota manager to return an error status. |
434 const int64 kUsage = 6656; | 436 const int64_t kUsage = 6656; |
435 const int64 kQuota = 99585556; | 437 const int64_t kQuota = 99585556; |
436 quota_manager_->SetCallbackParams(kUsage, kQuota, kQuotaErrorNotSupported); | 438 quota_manager_->SetCallbackParams(kUsage, kQuota, kQuotaErrorNotSupported); |
437 | 439 |
438 // Verify that |host_observers| is not initialized and an event has not been | 440 // Verify that |host_observers| is not initialized and an event has not been |
439 // dispatched. | 441 // dispatched. |
440 host_observers.NotifyUsageChange(params.filter, 9438); | 442 host_observers.NotifyUsageChange(params.filter, 9438); |
441 EXPECT_EQ(0, mock_observer.EventCount()); | 443 EXPECT_EQ(0, mock_observer.EventCount()); |
442 EXPECT_FALSE(host_observers.is_initialized()); | 444 EXPECT_FALSE(host_observers.is_initialized()); |
443 EXPECT_EQ(NULL, GetPendingEvent(host_observers)); | 445 EXPECT_EQ(NULL, GetPendingEvent(host_observers)); |
444 EXPECT_EQ(0, GetRequiredUpdatesCount(host_observers)); | 446 EXPECT_EQ(0, GetRequiredUpdatesCount(host_observers)); |
445 | 447 |
(...skipping 20 matching lines...) Expand all Loading... |
466 // Trigger initialization. Leave the mock quota manager uninitialized so that | 468 // Trigger initialization. Leave the mock quota manager uninitialized so that |
467 // the callback is not invoked. | 469 // the callback is not invoked. |
468 host_observers.NotifyUsageChange(params.filter, 7645); | 470 host_observers.NotifyUsageChange(params.filter, 7645); |
469 EXPECT_EQ(0, mock_observer.EventCount()); | 471 EXPECT_EQ(0, mock_observer.EventCount()); |
470 EXPECT_FALSE(host_observers.is_initialized()); | 472 EXPECT_FALSE(host_observers.is_initialized()); |
471 EXPECT_EQ(NULL, GetPendingEvent(host_observers)); | 473 EXPECT_EQ(NULL, GetPendingEvent(host_observers)); |
472 EXPECT_EQ(0, GetRequiredUpdatesCount(host_observers)); | 474 EXPECT_EQ(0, GetRequiredUpdatesCount(host_observers)); |
473 | 475 |
474 // Simulate notifying |host_observers| of a usage change before initialization | 476 // Simulate notifying |host_observers| of a usage change before initialization |
475 // is complete. | 477 // is complete. |
476 const int64 kUsage = 6656; | 478 const int64_t kUsage = 6656; |
477 const int64 kQuota = 99585556; | 479 const int64_t kQuota = 99585556; |
478 const int64 kDelta = 327643; | 480 const int64_t kDelta = 327643; |
479 host_observers.NotifyUsageChange(params.filter, kDelta); | 481 host_observers.NotifyUsageChange(params.filter, kDelta); |
480 EXPECT_EQ(0, mock_observer.EventCount()); | 482 EXPECT_EQ(0, mock_observer.EventCount()); |
481 EXPECT_FALSE(host_observers.is_initialized()); | 483 EXPECT_FALSE(host_observers.is_initialized()); |
482 EXPECT_EQ(NULL, GetPendingEvent(host_observers)); | 484 EXPECT_EQ(NULL, GetPendingEvent(host_observers)); |
483 EXPECT_EQ(0, GetRequiredUpdatesCount(host_observers)); | 485 EXPECT_EQ(0, GetRequiredUpdatesCount(host_observers)); |
484 | 486 |
485 // Simulate an asynchronous callback from QuotaManager. | 487 // Simulate an asynchronous callback from QuotaManager. |
486 quota_manager_->SetCallbackParams(kUsage, kQuota, kQuotaStatusOk); | 488 quota_manager_->SetCallbackParams(kUsage, kQuota, kQuotaStatusOk); |
487 quota_manager_->InvokeCallback(); | 489 quota_manager_->InvokeCallback(); |
488 StorageObserver::Event expected_event(params.filter, kUsage + kDelta, kQuota); | 490 StorageObserver::Event expected_event(params.filter, kUsage + kDelta, kQuota); |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
606 | 608 |
607 // Test adding storage observers. | 609 // Test adding storage observers. |
608 TEST_F(StorageMonitorTest, AddObservers) { | 610 TEST_F(StorageMonitorTest, AddObservers) { |
609 // Verify that the observers are added correctly. | 611 // Verify that the observers are added correctly. |
610 CheckObserverCount(2, 3); | 612 CheckObserverCount(2, 3); |
611 } | 613 } |
612 | 614 |
613 // Test dispatching events to storage observers. | 615 // Test dispatching events to storage observers. |
614 TEST_F(StorageMonitorTest, EventDispatch) { | 616 TEST_F(StorageMonitorTest, EventDispatch) { |
615 // Verify dispatch of events. | 617 // Verify dispatch of events. |
616 const int64 kUsage = 5325; | 618 const int64_t kUsage = 5325; |
617 const int64 kQuota = 903845; | 619 const int64_t kQuota = 903845; |
618 quota_manager_->SetCallbackParams(kUsage, kQuota, kQuotaStatusOk); | 620 quota_manager_->SetCallbackParams(kUsage, kQuota, kQuotaStatusOk); |
619 storage_monitor_->NotifyUsageChange(params1_.filter, 9048543); | 621 storage_monitor_->NotifyUsageChange(params1_.filter, 9048543); |
620 | 622 |
621 StorageObserver::Event expected_event(params1_.filter, kUsage, kQuota); | 623 StorageObserver::Event expected_event(params1_.filter, kUsage, kQuota); |
622 EXPECT_EQ(1, mock_observer1_.EventCount()); | 624 EXPECT_EQ(1, mock_observer1_.EventCount()); |
623 EXPECT_EQ(1, mock_observer2_.EventCount()); | 625 EXPECT_EQ(1, mock_observer2_.EventCount()); |
624 EXPECT_EQ(0, mock_observer3_.EventCount()); | 626 EXPECT_EQ(0, mock_observer3_.EventCount()); |
625 EXPECT_EQ(expected_event, mock_observer1_.LastEvent()); | 627 EXPECT_EQ(expected_event, mock_observer1_.LastEvent()); |
626 EXPECT_EQ(expected_event, mock_observer2_.LastEvent()); | 628 EXPECT_EQ(expected_event, mock_observer2_.LastEvent()); |
627 } | 629 } |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
668 base::ScopedTempDir data_dir_; | 670 base::ScopedTempDir data_dir_; |
669 scoped_refptr<MockSpecialStoragePolicy> storage_policy_; | 671 scoped_refptr<MockSpecialStoragePolicy> storage_policy_; |
670 scoped_refptr<QuotaManager> quota_manager_; | 672 scoped_refptr<QuotaManager> quota_manager_; |
671 MockStorageClient* client_; | 673 MockStorageClient* client_; |
672 }; | 674 }; |
673 | 675 |
674 // This test simulates a usage change in a quota client and verifies that a | 676 // This test simulates a usage change in a quota client and verifies that a |
675 // storage observer will receive a storage event. | 677 // storage observer will receive a storage event. |
676 TEST_F(StorageMonitorIntegrationTest, NotifyUsageEvent) { | 678 TEST_F(StorageMonitorIntegrationTest, NotifyUsageEvent) { |
677 const StorageType kTestStorageType = kStorageTypePersistent; | 679 const StorageType kTestStorageType = kStorageTypePersistent; |
678 const int64 kTestUsage = 234743; | 680 const int64_t kTestUsage = 234743; |
679 | 681 |
680 // Register the observer. | 682 // Register the observer. |
681 StorageObserver::MonitorParams params(kTestStorageType, | 683 StorageObserver::MonitorParams params(kTestStorageType, |
682 GURL(kDefaultOrigin), | 684 GURL(kDefaultOrigin), |
683 base::TimeDelta::FromHours(1), | 685 base::TimeDelta::FromHours(1), |
684 false); | 686 false); |
685 MockObserver mock_observer; | 687 MockObserver mock_observer; |
686 quota_manager_->AddStorageObserver(&mock_observer, params); | 688 quota_manager_->AddStorageObserver(&mock_observer, params); |
687 | 689 |
688 // Fire a usage change. | 690 // Fire a usage change. |
689 client_->AddOriginAndNotify(GURL(kDefaultOrigin), | 691 client_->AddOriginAndNotify(GURL(kDefaultOrigin), |
690 kTestStorageType, | 692 kTestStorageType, |
691 kTestUsage); | 693 kTestUsage); |
692 base::RunLoop().RunUntilIdle(); | 694 base::RunLoop().RunUntilIdle(); |
693 | 695 |
694 // Verify that the observer receives it. | 696 // Verify that the observer receives it. |
695 ASSERT_EQ(1, mock_observer.EventCount()); | 697 ASSERT_EQ(1, mock_observer.EventCount()); |
696 const StorageObserver::Event& event = mock_observer.LastEvent(); | 698 const StorageObserver::Event& event = mock_observer.LastEvent(); |
697 EXPECT_EQ(params.filter, event.filter); | 699 EXPECT_EQ(params.filter, event.filter); |
698 EXPECT_EQ(kTestUsage, event.usage); | 700 EXPECT_EQ(kTestUsage, event.usage); |
699 } | 701 } |
700 | 702 |
701 } // namespace content | 703 } // namespace content |
OLD | NEW |