| Index: content/browser/download/download_item_impl_unittest.cc
|
| diff --git a/content/browser/download/download_item_impl_unittest.cc b/content/browser/download/download_item_impl_unittest.cc
|
| index f2070b399d54d52696a50d51292abb53535949d4..abbd52e75247763268a7d78a4a3db39a2d690b1b 100644
|
| --- a/content/browser/download/download_item_impl_unittest.cc
|
| +++ b/content/browser/download/download_item_impl_unittest.cc
|
| @@ -131,16 +131,42 @@ class DownloadItemTest : public testing::Test {
|
| public:
|
| class MockObserver : public DownloadItem::Observer {
|
| public:
|
| - explicit MockObserver(DownloadItem* item) : item_(item), updated_(false) {
|
| + explicit MockObserver(DownloadItem* item)
|
| + : item_(item),
|
| + removed_(false),
|
| + destroyed_(false),
|
| + updated_(false) {
|
| item_->AddObserver(this);
|
| }
|
| - ~MockObserver() { item_->RemoveObserver(this); }
|
| +
|
| + virtual ~MockObserver() {
|
| + if (item_) item_->RemoveObserver(this);
|
| + }
|
| +
|
| + virtual void OnDownloadRemoved(DownloadItem* download) {
|
| + removed_ = true;
|
| + }
|
|
|
| virtual void OnDownloadUpdated(DownloadItem* download) {
|
| updated_ = true;
|
| }
|
|
|
| - virtual void OnDownloadOpened(DownloadItem* download) { }
|
| + virtual void OnDownloadOpened(DownloadItem* download) {
|
| + }
|
| +
|
| + virtual void OnDownloadDestroyed(DownloadItem* download) {
|
| + destroyed_ = true;
|
| + item_->RemoveObserver(this);
|
| + item_ = NULL;
|
| + }
|
| +
|
| + bool CheckRemoved() {
|
| + return removed_;
|
| + }
|
| +
|
| + bool CheckDestroyed() {
|
| + return destroyed_;
|
| + }
|
|
|
| bool CheckUpdated() {
|
| bool was_updated = updated_;
|
| @@ -150,6 +176,8 @@ class DownloadItemTest : public testing::Test {
|
|
|
| private:
|
| DownloadItem* item_;
|
| + bool removed_;
|
| + bool destroyed_;
|
| bool updated_;
|
| };
|
|
|
| @@ -302,12 +330,21 @@ TEST_F(DownloadItemTest, NotificationAfterDelete) {
|
| ASSERT_TRUE(observer.CheckUpdated());
|
| }
|
|
|
| +TEST_F(DownloadItemTest, NotificationAfterDestroyed) {
|
| + DownloadItemImpl* item = CreateDownloadItem(DownloadItem::IN_PROGRESS);
|
| + MockObserver observer(item);
|
| +
|
| + DestroyDownloadItem(item);
|
| + ASSERT_TRUE(observer.CheckDestroyed());
|
| +}
|
| +
|
| TEST_F(DownloadItemTest, NotificationAfterRemove) {
|
| DownloadItemImpl* item = CreateDownloadItem(DownloadItem::IN_PROGRESS);
|
| MockObserver observer(item);
|
|
|
| item->Remove();
|
| ASSERT_TRUE(observer.CheckUpdated());
|
| + ASSERT_TRUE(observer.CheckRemoved());
|
| }
|
|
|
| TEST_F(DownloadItemTest, NotificationAfterOnContentCheckCompleted) {
|
|
|