| 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 <map> | 5 #include <map> |
| 6 #include <set> | 6 #include <set> |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 28 matching lines...) Expand all Loading... |
| 39 : public component_updater::SupervisedUserWhitelistInstaller { | 39 : public component_updater::SupervisedUserWhitelistInstaller { |
| 40 public: | 40 public: |
| 41 MockSupervisedUserWhitelistInstaller() {} | 41 MockSupervisedUserWhitelistInstaller() {} |
| 42 ~MockSupervisedUserWhitelistInstaller() override {} | 42 ~MockSupervisedUserWhitelistInstaller() override {} |
| 43 | 43 |
| 44 const std::set<std::string>& registered_whitelists() { | 44 const std::set<std::string>& registered_whitelists() { |
| 45 return registered_whitelists_; | 45 return registered_whitelists_; |
| 46 } | 46 } |
| 47 | 47 |
| 48 void NotifyWhitelistReady(const std::string& crx_id, | 48 void NotifyWhitelistReady(const std::string& crx_id, |
| 49 const base::string16& title, |
| 49 const base::FilePath& path) { | 50 const base::FilePath& path) { |
| 50 for (const auto& callback : ready_callbacks_) | 51 for (const auto& callback : ready_callbacks_) |
| 51 callback.Run(crx_id, path); | 52 callback.Run(crx_id, title, path); |
| 52 } | 53 } |
| 53 | 54 |
| 54 // SupervisedUserWhitelistInstaller implementation: | 55 // SupervisedUserWhitelistInstaller implementation: |
| 55 void RegisterComponents() override {} | 56 void RegisterComponents() override {} |
| 56 | 57 |
| 57 void Subscribe(const WhitelistReadyCallback& callback) override { | 58 void Subscribe(const WhitelistReadyCallback& callback) override { |
| 58 ready_callbacks_.push_back(callback); | 59 ready_callbacks_.push_back(callback); |
| 59 } | 60 } |
| 60 | 61 |
| 61 void RegisterWhitelist(const std::string& client_id, | 62 void RegisterWhitelist(const std::string& client_id, |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 service_->Init(); | 191 service_->Init(); |
| 191 EXPECT_EQ(0u, site_lists_.size()); | 192 EXPECT_EQ(0u, site_lists_.size()); |
| 192 | 193 |
| 193 // Notify that whitelist A is ready. | 194 // Notify that whitelist A is ready. |
| 194 base::RunLoop run_loop; | 195 base::RunLoop run_loop; |
| 195 site_lists_changed_callback_ = run_loop.QuitClosure(); | 196 site_lists_changed_callback_ = run_loop.QuitClosure(); |
| 196 base::FilePath test_data_dir; | 197 base::FilePath test_data_dir; |
| 197 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir)); | 198 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir)); |
| 198 base::FilePath whitelist_path = | 199 base::FilePath whitelist_path = |
| 199 test_data_dir.AppendASCII("whitelists/content_pack/site_list.json"); | 200 test_data_dir.AppendASCII("whitelists/content_pack/site_list.json"); |
| 200 installer_->NotifyWhitelistReady("aaaa", whitelist_path); | 201 installer_->NotifyWhitelistReady("aaaa", base::ASCIIToUTF16("Title"), |
| 202 whitelist_path); |
| 201 run_loop.Run(); | 203 run_loop.Run(); |
| 202 | 204 |
| 203 ASSERT_EQ(1u, site_lists_.size()); | 205 ASSERT_EQ(1u, site_lists_.size()); |
| 204 const std::vector<SupervisedUserSiteList::Site>& sites = | 206 EXPECT_EQ(base::ASCIIToUTF16("Title"), site_lists_[0]->title()); |
| 205 site_lists_[0]->sites(); | 207 EXPECT_EQ(4u, site_lists_[0]->patterns().size()); |
| 206 EXPECT_EQ(3u, sites.size()); | |
| 207 EXPECT_EQ("YouTube", base::UTF16ToUTF8(sites[0].name)); | |
| 208 | 208 |
| 209 // Do the initial merge. One item should be added (whitelist C), one should be | 209 // Do the initial merge. One item should be added (whitelist C), one should be |
| 210 // modified (whitelist B), and one item should be removed (whitelist A). | 210 // modified (whitelist B), and one item should be removed (whitelist A). |
| 211 syncer::SyncDataList initial_data; | 211 syncer::SyncDataList initial_data; |
| 212 initial_data.push_back( | 212 initial_data.push_back( |
| 213 SupervisedUserWhitelistService::CreateWhitelistSyncData( | 213 SupervisedUserWhitelistService::CreateWhitelistSyncData( |
| 214 "bbbb", "Whitelist B New")); | 214 "bbbb", "Whitelist B New")); |
| 215 initial_data.push_back( | 215 initial_data.push_back( |
| 216 SupervisedUserWhitelistService::CreateWhitelistSyncData( | 216 SupervisedUserWhitelistService::CreateWhitelistSyncData( |
| 217 "cccc", "Whitelist C")); | 217 "cccc", "Whitelist C")); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 252 FROM_HERE, syncer::SyncChange::ACTION_DELETE, | 252 FROM_HERE, syncer::SyncChange::ACTION_DELETE, |
| 253 SupervisedUserWhitelistService::CreateWhitelistSyncData( | 253 SupervisedUserWhitelistService::CreateWhitelistSyncData( |
| 254 "aaaa", "Ignored"))); | 254 "aaaa", "Ignored"))); |
| 255 syncer::SyncError error = service_->ProcessSyncChanges(FROM_HERE, changes); | 255 syncer::SyncError error = service_->ProcessSyncChanges(FROM_HERE, changes); |
| 256 EXPECT_FALSE(error.IsSet()); | 256 EXPECT_FALSE(error.IsSet()); |
| 257 | 257 |
| 258 EXPECT_EQ(0u, site_lists_.size()); | 258 EXPECT_EQ(0u, site_lists_.size()); |
| 259 | 259 |
| 260 // If whitelist A now becomes ready, it should be ignored. | 260 // If whitelist A now becomes ready, it should be ignored. |
| 261 installer_->NotifyWhitelistReady( | 261 installer_->NotifyWhitelistReady( |
| 262 "aaaa", base::FilePath(FILE_PATH_LITERAL("/path/to/aaaa"))); | 262 "aaaa", base::ASCIIToUTF16("Title"), |
| 263 base::FilePath(FILE_PATH_LITERAL("/path/to/aaaa"))); |
| 263 EXPECT_EQ(0u, site_lists_.size()); | 264 EXPECT_EQ(0u, site_lists_.size()); |
| 264 | 265 |
| 265 CheckFinalStateAndPreferences(); | 266 CheckFinalStateAndPreferences(); |
| 266 } | 267 } |
| 267 | 268 |
| 268 TEST_F(SupervisedUserWhitelistServiceTest, GetAllSyncData) { | 269 TEST_F(SupervisedUserWhitelistServiceTest, GetAllSyncData) { |
| 269 PrepareInitialStateAndPreferences(); | 270 PrepareInitialStateAndPreferences(); |
| 270 | 271 |
| 271 syncer::SyncDataList sync_data = | 272 syncer::SyncDataList sync_data = |
| 272 service_->GetAllSyncData(syncer::SUPERVISED_USER_WHITELISTS); | 273 service_->GetAllSyncData(syncer::SUPERVISED_USER_WHITELISTS); |
| 273 ASSERT_EQ(2u, sync_data.size()); | 274 ASSERT_EQ(2u, sync_data.size()); |
| 274 const sync_pb::ManagedUserWhitelistSpecifics* whitelist = | 275 const sync_pb::ManagedUserWhitelistSpecifics* whitelist = |
| 275 FindWhitelist(sync_data, "aaaa"); | 276 FindWhitelist(sync_data, "aaaa"); |
| 276 ASSERT_TRUE(whitelist); | 277 ASSERT_TRUE(whitelist); |
| 277 EXPECT_EQ("Whitelist A", whitelist->name()); | 278 EXPECT_EQ("Whitelist A", whitelist->name()); |
| 278 whitelist = FindWhitelist(sync_data, "bbbb"); | 279 whitelist = FindWhitelist(sync_data, "bbbb"); |
| 279 ASSERT_TRUE(whitelist); | 280 ASSERT_TRUE(whitelist); |
| 280 EXPECT_EQ("Whitelist B", whitelist->name()); | 281 EXPECT_EQ("Whitelist B", whitelist->name()); |
| 281 } | 282 } |
| OLD | NEW |