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