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/glue/chrome_extensions_activity_monitor.h" | 5 #include "chrome/browser/sync/glue/chrome_extensions_activity_monitor.h" |
6 | 6 |
7 #include "base/file_path.h" | 7 #include "base/file_path.h" |
8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
9 #include "base/path_service.h" | 9 #include "base/path_service.h" |
10 #include "base/values.h" | 10 #include "base/values.h" |
11 #include "chrome/browser/extensions/api/bookmarks/bookmark_api.h" | 11 #include "chrome/browser/extensions/api/bookmarks/bookmarks_api.h" |
12 #include "chrome/common/chrome_notification_types.h" | 12 #include "chrome/common/chrome_notification_types.h" |
13 #include "chrome/common/chrome_paths.h" | 13 #include "chrome/common/chrome_paths.h" |
14 #include "chrome/common/extensions/extension.h" | 14 #include "chrome/common/extensions/extension.h" |
15 #include "chrome/common/extensions/extension_manifest_constants.h" | 15 #include "chrome/common/extensions/extension_manifest_constants.h" |
16 #include "content/public/browser/notification_service.h" | 16 #include "content/public/browser/notification_service.h" |
17 #include "content/public/test/test_browser_thread.h" | 17 #include "content/public/test/test_browser_thread.h" |
18 #include "testing/gtest/include/gtest/gtest.h" | 18 #include "testing/gtest/include/gtest/gtest.h" |
19 | 19 |
20 using extensions::Extension; | 20 using extensions::Extension; |
21 | 21 |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 // IDs of |extension{1,2}_|. | 79 // IDs of |extension{1,2}_|. |
80 const std::string& id1_; | 80 const std::string& id1_; |
81 const std::string& id2_; | 81 const std::string& id2_; |
82 }; | 82 }; |
83 | 83 |
84 // Fire some mutating bookmark API events with extension 1, then fire | 84 // Fire some mutating bookmark API events with extension 1, then fire |
85 // some mutating and non-mutating bookmark API events with extension | 85 // some mutating and non-mutating bookmark API events with extension |
86 // 2. Only the mutating events should be recorded by the | 86 // 2. Only the mutating events should be recorded by the |
87 // syncer::ExtensionsActivityMonitor. | 87 // syncer::ExtensionsActivityMonitor. |
88 TEST_F(SyncChromeExtensionsActivityMonitorTest, Basic) { | 88 TEST_F(SyncChromeExtensionsActivityMonitorTest, Basic) { |
89 FireBookmarksApiEvent<extensions::RemoveBookmarkFunction>(extension1_, 1); | 89 FireBookmarksApiEvent<extensions::BookmarksRemoveFunction>(extension1_, 1); |
90 FireBookmarksApiEvent<extensions::MoveBookmarkFunction>(extension1_, 1); | 90 FireBookmarksApiEvent<extensions::BookmarksMoveFunction>(extension1_, 1); |
91 FireBookmarksApiEvent<extensions::UpdateBookmarkFunction>(extension1_, 2); | 91 FireBookmarksApiEvent<extensions::BookmarksUpdateFunction>(extension1_, 2); |
92 FireBookmarksApiEvent<extensions::CreateBookmarkFunction>(extension1_, 3); | 92 FireBookmarksApiEvent<extensions::BookmarksCreateFunction>(extension1_, 3); |
93 FireBookmarksApiEvent<extensions::SearchBookmarksFunction>(extension1_, 5); | 93 FireBookmarksApiEvent<extensions::BookmarksSearchFunction>(extension1_, 5); |
94 const uint32 writes_by_extension1 = 1 + 1 + 2 + 3; | 94 const uint32 writes_by_extension1 = 1 + 1 + 2 + 3; |
95 | 95 |
96 FireBookmarksApiEvent<extensions::RemoveTreeBookmarkFunction>(extension2_, 8); | 96 FireBookmarksApiEvent<extensions::BookmarksRemoveTreeFunction>( |
97 FireBookmarksApiEvent<extensions::GetBookmarkTreeFunction>(extension2_, 13); | 97 extension2_, 8); |
98 FireBookmarksApiEvent<extensions::GetBookmarkChildrenFunction>( | 98 FireBookmarksApiEvent<extensions::BookmarksGetSubTreeFunction>( |
| 99 extension2_, 13); |
| 100 FireBookmarksApiEvent<extensions::BookmarksGetChildrenFunction>( |
99 extension2_, 21); | 101 extension2_, 21); |
100 FireBookmarksApiEvent<extensions::GetBookmarksFunction>(extension2_, 33); | 102 FireBookmarksApiEvent<extensions::BookmarksGetTreeFunction>(extension2_, 33); |
101 const uint32 writes_by_extension2 = 8; | 103 const uint32 writes_by_extension2 = 8; |
102 | 104 |
103 syncer::ExtensionsActivityMonitor::Records results; | 105 syncer::ExtensionsActivityMonitor::Records results; |
104 monitor_.GetAndClearRecords(&results); | 106 monitor_.GetAndClearRecords(&results); |
105 | 107 |
106 EXPECT_EQ(2U, results.size()); | 108 EXPECT_EQ(2U, results.size()); |
107 EXPECT_TRUE(results.find(id1_) != results.end()); | 109 EXPECT_TRUE(results.find(id1_) != results.end()); |
108 EXPECT_TRUE(results.find(id2_) != results.end()); | 110 EXPECT_TRUE(results.find(id2_) != results.end()); |
109 EXPECT_EQ(writes_by_extension1, results[id1_].bookmark_write_count); | 111 EXPECT_EQ(writes_by_extension1, results[id1_].bookmark_write_count); |
110 EXPECT_EQ(writes_by_extension2, results[id2_].bookmark_write_count); | 112 EXPECT_EQ(writes_by_extension2, results[id2_].bookmark_write_count); |
111 } | 113 } |
112 | 114 |
113 // Fire some mutating bookmark API events with both extensions. Then | 115 // Fire some mutating bookmark API events with both extensions. Then |
114 // get the records, fire some more mutating and non-mutating events, | 116 // get the records, fire some more mutating and non-mutating events, |
115 // and put the old records back. Those should be merged with the new | 117 // and put the old records back. Those should be merged with the new |
116 // records correctly. | 118 // records correctly. |
117 TEST_F(SyncChromeExtensionsActivityMonitorTest, Put) { | 119 TEST_F(SyncChromeExtensionsActivityMonitorTest, Put) { |
118 FireBookmarksApiEvent<extensions::CreateBookmarkFunction>(extension1_, 5); | 120 FireBookmarksApiEvent<extensions::BookmarksCreateFunction>(extension1_, 5); |
119 FireBookmarksApiEvent<extensions::MoveBookmarkFunction>(extension2_, 8); | 121 FireBookmarksApiEvent<extensions::BookmarksMoveFunction>(extension2_, 8); |
120 | 122 |
121 syncer::ExtensionsActivityMonitor::Records results; | 123 syncer::ExtensionsActivityMonitor::Records results; |
122 monitor_.GetAndClearRecords(&results); | 124 monitor_.GetAndClearRecords(&results); |
123 | 125 |
124 EXPECT_EQ(2U, results.size()); | 126 EXPECT_EQ(2U, results.size()); |
125 EXPECT_EQ(5U, results[id1_].bookmark_write_count); | 127 EXPECT_EQ(5U, results[id1_].bookmark_write_count); |
126 EXPECT_EQ(8U, results[id2_].bookmark_write_count); | 128 EXPECT_EQ(8U, results[id2_].bookmark_write_count); |
127 | 129 |
128 FireBookmarksApiEvent<extensions::GetBookmarksFunction>(extension2_, 3); | 130 FireBookmarksApiEvent<extensions::BookmarksGetTreeFunction>(extension2_, 3); |
129 FireBookmarksApiEvent<extensions::UpdateBookmarkFunction>(extension2_, 2); | 131 FireBookmarksApiEvent<extensions::BookmarksUpdateFunction>(extension2_, 2); |
130 | 132 |
131 // Simulate a commit failure, which augments the active record set with the | 133 // Simulate a commit failure, which augments the active record set with the |
132 // refugee records. | 134 // refugee records. |
133 monitor_.PutRecords(results); | 135 monitor_.PutRecords(results); |
134 syncer::ExtensionsActivityMonitor::Records new_records; | 136 syncer::ExtensionsActivityMonitor::Records new_records; |
135 monitor_.GetAndClearRecords(&new_records); | 137 monitor_.GetAndClearRecords(&new_records); |
136 | 138 |
137 EXPECT_EQ(2U, results.size()); | 139 EXPECT_EQ(2U, results.size()); |
138 EXPECT_EQ(id1_, new_records[id1_].extension_id); | 140 EXPECT_EQ(id1_, new_records[id1_].extension_id); |
139 EXPECT_EQ(id2_, new_records[id2_].extension_id); | 141 EXPECT_EQ(id2_, new_records[id2_].extension_id); |
140 EXPECT_EQ(5U, new_records[id1_].bookmark_write_count); | 142 EXPECT_EQ(5U, new_records[id1_].bookmark_write_count); |
141 EXPECT_EQ(8U + 2U, new_records[id2_].bookmark_write_count); | 143 EXPECT_EQ(8U + 2U, new_records[id2_].bookmark_write_count); |
142 } | 144 } |
143 | 145 |
144 // Fire some mutating bookmark API events and get the records multiple | 146 // Fire some mutating bookmark API events and get the records multiple |
145 // times. The mintor should correctly clear its records every time | 147 // times. The mintor should correctly clear its records every time |
146 // they're returned. | 148 // they're returned. |
147 TEST_F(SyncChromeExtensionsActivityMonitorTest, MultiGet) { | 149 TEST_F(SyncChromeExtensionsActivityMonitorTest, MultiGet) { |
148 FireBookmarksApiEvent<extensions::CreateBookmarkFunction>(extension1_, 5); | 150 FireBookmarksApiEvent<extensions::BookmarksCreateFunction>(extension1_, 5); |
149 | 151 |
150 syncer::ExtensionsActivityMonitor::Records results; | 152 syncer::ExtensionsActivityMonitor::Records results; |
151 monitor_.GetAndClearRecords(&results); | 153 monitor_.GetAndClearRecords(&results); |
152 | 154 |
153 EXPECT_EQ(1U, results.size()); | 155 EXPECT_EQ(1U, results.size()); |
154 EXPECT_EQ(5U, results[id1_].bookmark_write_count); | 156 EXPECT_EQ(5U, results[id1_].bookmark_write_count); |
155 | 157 |
156 monitor_.GetAndClearRecords(&results); | 158 monitor_.GetAndClearRecords(&results); |
157 EXPECT_TRUE(results.empty()); | 159 EXPECT_TRUE(results.empty()); |
158 | 160 |
159 FireBookmarksApiEvent<extensions::CreateBookmarkFunction>(extension1_, 3); | 161 FireBookmarksApiEvent<extensions::BookmarksCreateFunction>(extension1_, 3); |
160 monitor_.GetAndClearRecords(&results); | 162 monitor_.GetAndClearRecords(&results); |
161 | 163 |
162 EXPECT_EQ(1U, results.size()); | 164 EXPECT_EQ(1U, results.size()); |
163 EXPECT_EQ(3U, results[id1_].bookmark_write_count); | 165 EXPECT_EQ(3U, results[id1_].bookmark_write_count); |
164 } | 166 } |
165 | 167 |
166 } // namespace | 168 } // namespace |
167 | 169 |
168 } // namespace browser_sync | 170 } // namespace browser_sync |
OLD | NEW |