OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/sync/test/integration/bookmarks_helper.h" | 5 #include "chrome/browser/sync/test/integration/bookmarks_helper.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
9 #include "base/files/file_util.h" | 9 #include "base/files/file_util.h" |
10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 #include "ui/gfx/image/image_skia.h" | 42 #include "ui/gfx/image/image_skia.h" |
43 | 43 |
44 namespace { | 44 namespace { |
45 | 45 |
46 // History task which runs all pending tasks on the history thread and | 46 // History task which runs all pending tasks on the history thread and |
47 // signals when the tasks have completed. | 47 // signals when the tasks have completed. |
48 class HistoryEmptyTask : public history::HistoryDBTask { | 48 class HistoryEmptyTask : public history::HistoryDBTask { |
49 public: | 49 public: |
50 explicit HistoryEmptyTask(base::WaitableEvent* done) : done_(done) {} | 50 explicit HistoryEmptyTask(base::WaitableEvent* done) : done_(done) {} |
51 | 51 |
52 virtual bool RunOnDBThread(history::HistoryBackend* backend, | 52 bool RunOnDBThread(history::HistoryBackend* backend, |
53 history::HistoryDatabase* db) override { | 53 history::HistoryDatabase* db) override { |
54 content::RunAllPendingInMessageLoop(); | 54 content::RunAllPendingInMessageLoop(); |
55 done_->Signal(); | 55 done_->Signal(); |
56 return true; | 56 return true; |
57 } | 57 } |
58 | 58 |
59 virtual void DoneRunOnMainThread() override {} | 59 void DoneRunOnMainThread() override {} |
60 | 60 |
61 private: | 61 private: |
62 virtual ~HistoryEmptyTask() {} | 62 ~HistoryEmptyTask() override {} |
63 | 63 |
64 base::WaitableEvent* done_; | 64 base::WaitableEvent* done_; |
65 }; | 65 }; |
66 | 66 |
67 // Helper class used to wait for changes to take effect on the favicon of a | 67 // Helper class used to wait for changes to take effect on the favicon of a |
68 // particular bookmark node in a particular bookmark model. | 68 // particular bookmark node in a particular bookmark model. |
69 class FaviconChangeObserver : public BookmarkModelObserver { | 69 class FaviconChangeObserver : public BookmarkModelObserver { |
70 public: | 70 public: |
71 FaviconChangeObserver(BookmarkModel* model, const BookmarkNode* node) | 71 FaviconChangeObserver(BookmarkModel* model, const BookmarkNode* node) |
72 : model_(model), | 72 : model_(model), |
73 node_(node), | 73 node_(node), |
74 wait_for_load_(false) { | 74 wait_for_load_(false) { |
75 model->AddObserver(this); | 75 model->AddObserver(this); |
76 } | 76 } |
77 virtual ~FaviconChangeObserver() { | 77 ~FaviconChangeObserver() override { model_->RemoveObserver(this); } |
78 model_->RemoveObserver(this); | |
79 } | |
80 void WaitForGetFavicon() { | 78 void WaitForGetFavicon() { |
81 wait_for_load_ = true; | 79 wait_for_load_ = true; |
82 content::RunMessageLoop(); | 80 content::RunMessageLoop(); |
83 ASSERT_TRUE(node_->is_favicon_loaded()); | 81 ASSERT_TRUE(node_->is_favicon_loaded()); |
84 ASSERT_FALSE(model_->GetFavicon(node_).IsEmpty()); | 82 ASSERT_FALSE(model_->GetFavicon(node_).IsEmpty()); |
85 } | 83 } |
86 void WaitForSetFavicon() { | 84 void WaitForSetFavicon() { |
87 wait_for_load_ = false; | 85 wait_for_load_ = false; |
88 content::RunMessageLoop(); | 86 content::RunMessageLoop(); |
89 } | 87 } |
90 virtual void BookmarkModelLoaded(BookmarkModel* model, | 88 void BookmarkModelLoaded(BookmarkModel* model, bool ids_reassigned) override { |
91 bool ids_reassigned) override {} | 89 } |
92 virtual void BookmarkNodeMoved(BookmarkModel* model, | 90 void BookmarkNodeMoved(BookmarkModel* model, |
93 const BookmarkNode* old_parent, | 91 const BookmarkNode* old_parent, |
94 int old_index, | 92 int old_index, |
95 const BookmarkNode* new_parent, | 93 const BookmarkNode* new_parent, |
96 int new_index) override {} | 94 int new_index) override {} |
97 virtual void BookmarkNodeAdded(BookmarkModel* model, | 95 void BookmarkNodeAdded(BookmarkModel* model, |
98 const BookmarkNode* parent, | 96 const BookmarkNode* parent, |
99 int index) override {} | 97 int index) override {} |
100 virtual void BookmarkNodeRemoved( | 98 void BookmarkNodeRemoved(BookmarkModel* model, |
101 BookmarkModel* model, | 99 const BookmarkNode* parent, |
102 const BookmarkNode* parent, | 100 int old_index, |
103 int old_index, | 101 const BookmarkNode* node, |
104 const BookmarkNode* node, | 102 const std::set<GURL>& removed_urls) override {} |
105 const std::set<GURL>& removed_urls) override {} | 103 void BookmarkAllUserNodesRemoved( |
106 virtual void BookmarkAllUserNodesRemoved( | |
107 BookmarkModel* model, | 104 BookmarkModel* model, |
108 const std::set<GURL>& removed_urls) override {} | 105 const std::set<GURL>& removed_urls) override {} |
109 | 106 |
110 virtual void BookmarkNodeChanged(BookmarkModel* model, | 107 void BookmarkNodeChanged(BookmarkModel* model, |
111 const BookmarkNode* node) override { | 108 const BookmarkNode* node) override { |
112 if (model == model_ && node == node_) | 109 if (model == model_ && node == node_) |
113 model->GetFavicon(node); | 110 model->GetFavicon(node); |
114 } | 111 } |
115 virtual void BookmarkNodeChildrenReordered( | 112 void BookmarkNodeChildrenReordered(BookmarkModel* model, |
116 BookmarkModel* model, | 113 const BookmarkNode* node) override {} |
117 const BookmarkNode* node) override {} | 114 void BookmarkNodeFaviconChanged(BookmarkModel* model, |
118 virtual void BookmarkNodeFaviconChanged( | 115 const BookmarkNode* node) override { |
119 BookmarkModel* model, | |
120 const BookmarkNode* node) override { | |
121 if (model == model_ && node == node_) { | 116 if (model == model_ && node == node_) { |
122 if (!wait_for_load_ || (wait_for_load_ && node->is_favicon_loaded())) | 117 if (!wait_for_load_ || (wait_for_load_ && node->is_favicon_loaded())) |
123 base::MessageLoopForUI::current()->Quit(); | 118 base::MessageLoopForUI::current()->Quit(); |
124 } | 119 } |
125 } | 120 } |
126 | 121 |
127 private: | 122 private: |
128 BookmarkModel* model_; | 123 BookmarkModel* model_; |
129 const BookmarkNode* node_; | 124 const BookmarkNode* node_; |
130 bool wait_for_load_; | 125 bool wait_for_load_; |
(...skipping 571 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
702 } | 697 } |
703 return true; | 698 return true; |
704 } | 699 } |
705 | 700 |
706 namespace { | 701 namespace { |
707 | 702 |
708 // Helper class used in the implementation of AwaitAllModelsMatch. | 703 // Helper class used in the implementation of AwaitAllModelsMatch. |
709 class AllModelsMatchChecker : public MultiClientStatusChangeChecker { | 704 class AllModelsMatchChecker : public MultiClientStatusChangeChecker { |
710 public: | 705 public: |
711 AllModelsMatchChecker(); | 706 AllModelsMatchChecker(); |
712 virtual ~AllModelsMatchChecker(); | 707 ~AllModelsMatchChecker() override; |
713 | 708 |
714 virtual bool IsExitConditionSatisfied() override; | 709 bool IsExitConditionSatisfied() override; |
715 virtual std::string GetDebugMessage() const override; | 710 std::string GetDebugMessage() const override; |
716 }; | 711 }; |
717 | 712 |
718 AllModelsMatchChecker::AllModelsMatchChecker() | 713 AllModelsMatchChecker::AllModelsMatchChecker() |
719 : MultiClientStatusChangeChecker( | 714 : MultiClientStatusChangeChecker( |
720 sync_datatype_helper::test()->GetSyncServices()) {} | 715 sync_datatype_helper::test()->GetSyncServices()) {} |
721 | 716 |
722 AllModelsMatchChecker::~AllModelsMatchChecker() {} | 717 AllModelsMatchChecker::~AllModelsMatchChecker() {} |
723 | 718 |
724 bool AllModelsMatchChecker::IsExitConditionSatisfied() { | 719 bool AllModelsMatchChecker::IsExitConditionSatisfied() { |
725 return AllModelsMatch(); | 720 return AllModelsMatch(); |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
834 | 829 |
835 std::string IndexedSubfolderName(int i) { | 830 std::string IndexedSubfolderName(int i) { |
836 return base::StringPrintf("Subfolder Name %d", i); | 831 return base::StringPrintf("Subfolder Name %d", i); |
837 } | 832 } |
838 | 833 |
839 std::string IndexedSubsubfolderName(int i) { | 834 std::string IndexedSubsubfolderName(int i) { |
840 return base::StringPrintf("Subsubfolder Name %d", i); | 835 return base::StringPrintf("Subsubfolder Name %d", i); |
841 } | 836 } |
842 | 837 |
843 } // namespace bookmarks_helper | 838 } // namespace bookmarks_helper |
OLD | NEW |