| 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/themes/theme_syncable_service.h" | 5 #include "chrome/browser/themes/theme_syncable_service.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
| 9 #include "base/file_path.h" | 9 #include "base/file_path.h" |
| 10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| 11 #include "chrome/browser/extensions/extension_service.h" | 11 #include "chrome/browser/extensions/extension_service.h" |
| 12 #include "chrome/browser/extensions/test_extension_system.h" | 12 #include "chrome/browser/extensions/test_extension_system.h" |
| 13 #include "chrome/browser/profiles/profile.h" | 13 #include "chrome/browser/profiles/profile.h" |
| 14 #include "chrome/browser/themes/theme_service.h" | 14 #include "chrome/browser/themes/theme_service.h" |
| 15 #include "chrome/browser/themes/theme_service_factory.h" | 15 #include "chrome/browser/themes/theme_service_factory.h" |
| 16 #include "chrome/common/extensions/api/extension_urls/extension_urls_handler.h" |
| 16 #include "chrome/common/extensions/extension_manifest_constants.h" | 17 #include "chrome/common/extensions/extension_manifest_constants.h" |
| 17 #include "chrome/common/extensions/extension.h" | 18 #include "chrome/common/extensions/extension.h" |
| 18 #include "chrome/test/base/testing_profile.h" | 19 #include "chrome/test/base/testing_profile.h" |
| 19 #include "content/public/test/test_browser_thread.h" | 20 #include "content/public/test/test_browser_thread.h" |
| 20 #include "sync/api/sync_error_factory_mock.h" | 21 #include "sync/api/sync_error_factory_mock.h" |
| 21 #include "sync/api/sync_error.h" | 22 #include "sync/api/sync_error.h" |
| 22 #include "sync/protocol/sync.pb.h" | 23 #include "sync/protocol/sync.pb.h" |
| 23 #include "sync/protocol/theme_specifics.pb.h" | 24 #include "sync/protocol/theme_specifics.pb.h" |
| 24 #include "testing/gtest/include/gtest/gtest.h" | 25 #include "testing/gtest/include/gtest/gtest.h" |
| 25 | 26 |
| (...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 346 ASSERT_EQ(1u, change_list.size()); | 347 ASSERT_EQ(1u, change_list.size()); |
| 347 EXPECT_TRUE(change_list[0].IsValid()); | 348 EXPECT_TRUE(change_list[0].IsValid()); |
| 348 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change_list[0].change_type()); | 349 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change_list[0].change_type()); |
| 349 EXPECT_EQ(syncer::THEMES, change_list[0].sync_data().GetDataType()); | 350 EXPECT_EQ(syncer::THEMES, change_list[0].sync_data().GetDataType()); |
| 350 | 351 |
| 351 const sync_pb::ThemeSpecifics& theme_specifics = | 352 const sync_pb::ThemeSpecifics& theme_specifics = |
| 352 change_list[0].sync_data().GetSpecifics().theme(); | 353 change_list[0].sync_data().GetSpecifics().theme(); |
| 353 EXPECT_TRUE(theme_specifics.use_custom_theme()); | 354 EXPECT_TRUE(theme_specifics.use_custom_theme()); |
| 354 EXPECT_EQ(theme_extension_->id(), theme_specifics.custom_theme_id()); | 355 EXPECT_EQ(theme_extension_->id(), theme_specifics.custom_theme_id()); |
| 355 EXPECT_EQ(theme_extension_->name(), theme_specifics.custom_theme_name()); | 356 EXPECT_EQ(theme_extension_->name(), theme_specifics.custom_theme_name()); |
| 356 EXPECT_EQ(theme_extension_->update_url().spec(), | 357 EXPECT_EQ(extensions::ExtensionURL::GetUpdateURL(theme_extension_).spec(), |
| 357 theme_specifics.custom_theme_update_url()); | 358 theme_specifics.custom_theme_update_url()); |
| 358 } | 359 } |
| 359 | 360 |
| 360 TEST_F(ThemeSyncableServiceTest, GetAllSyncData) { | 361 TEST_F(ThemeSyncableServiceTest, GetAllSyncData) { |
| 361 // Set up theme service to use custom theme. | 362 // Set up theme service to use custom theme. |
| 362 fake_theme_service_->SetTheme(theme_extension_.get()); | 363 fake_theme_service_->SetTheme(theme_extension_.get()); |
| 363 | 364 |
| 364 syncer::SyncDataList data_list = | 365 syncer::SyncDataList data_list = |
| 365 theme_sync_service_->GetAllSyncData(syncer::THEMES); | 366 theme_sync_service_->GetAllSyncData(syncer::THEMES); |
| 366 | 367 |
| 367 ASSERT_EQ(1u, data_list.size()); | 368 ASSERT_EQ(1u, data_list.size()); |
| 368 const sync_pb::ThemeSpecifics& theme_specifics = | 369 const sync_pb::ThemeSpecifics& theme_specifics = |
| 369 data_list[0].GetSpecifics().theme(); | 370 data_list[0].GetSpecifics().theme(); |
| 370 EXPECT_TRUE(theme_specifics.use_custom_theme()); | 371 EXPECT_TRUE(theme_specifics.use_custom_theme()); |
| 371 EXPECT_EQ(theme_extension_->id(), theme_specifics.custom_theme_id()); | 372 EXPECT_EQ(theme_extension_->id(), theme_specifics.custom_theme_id()); |
| 372 EXPECT_EQ(theme_extension_->name(), theme_specifics.custom_theme_name()); | 373 EXPECT_EQ(theme_extension_->name(), theme_specifics.custom_theme_name()); |
| 373 EXPECT_EQ(theme_extension_->update_url().spec(), | 374 EXPECT_EQ(extensions::ExtensionURL::GetUpdateURL(theme_extension_).spec(), |
| 374 theme_specifics.custom_theme_update_url()); | 375 theme_specifics.custom_theme_update_url()); |
| 375 } | 376 } |
| 376 | 377 |
| 377 TEST_F(ThemeSyncableServiceTest, ProcessSyncThemeChange) { | 378 TEST_F(ThemeSyncableServiceTest, ProcessSyncThemeChange) { |
| 378 // Set up theme service to use default theme. | 379 // Set up theme service to use default theme. |
| 379 fake_theme_service_->UseDefaultTheme(); | 380 fake_theme_service_->UseDefaultTheme(); |
| 380 fake_theme_service_->MarkClean(); | 381 fake_theme_service_->MarkClean(); |
| 381 | 382 |
| 382 // Start syncing. | 383 // Start syncing. |
| 383 syncer::SyncError error = theme_sync_service_->MergeDataAndStartSyncing( | 384 syncer::SyncError error = theme_sync_service_->MergeDataAndStartSyncing( |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 426 | 427 |
| 427 // Change current theme to custom theme and notify theme_sync_service_. | 428 // Change current theme to custom theme and notify theme_sync_service_. |
| 428 fake_theme_service_->SetTheme(theme_extension_.get()); | 429 fake_theme_service_->SetTheme(theme_extension_.get()); |
| 429 theme_sync_service_->OnThemeChange(); | 430 theme_sync_service_->OnThemeChange(); |
| 430 EXPECT_EQ(1u, change_list.size()); | 431 EXPECT_EQ(1u, change_list.size()); |
| 431 const sync_pb::ThemeSpecifics& change_specifics = | 432 const sync_pb::ThemeSpecifics& change_specifics = |
| 432 change_list[0].sync_data().GetSpecifics().theme(); | 433 change_list[0].sync_data().GetSpecifics().theme(); |
| 433 EXPECT_TRUE(change_specifics.use_custom_theme()); | 434 EXPECT_TRUE(change_specifics.use_custom_theme()); |
| 434 EXPECT_EQ(theme_extension_->id(), change_specifics.custom_theme_id()); | 435 EXPECT_EQ(theme_extension_->id(), change_specifics.custom_theme_id()); |
| 435 EXPECT_EQ(theme_extension_->name(), change_specifics.custom_theme_name()); | 436 EXPECT_EQ(theme_extension_->name(), change_specifics.custom_theme_name()); |
| 436 EXPECT_EQ(theme_extension_->update_url().spec(), | 437 EXPECT_EQ(extensions::ExtensionURL::GetUpdateURL(theme_extension_).spec(), |
| 437 change_specifics.custom_theme_update_url()); | 438 change_specifics.custom_theme_update_url()); |
| 438 } | 439 } |
| 439 | 440 |
| 440 TEST_F(ThemeSyncableServiceTest, StopSync) { | 441 TEST_F(ThemeSyncableServiceTest, StopSync) { |
| 441 syncer::SyncChangeList change_list; | 442 syncer::SyncChangeList change_list; |
| 442 static_cast<FakeSyncChangeProcessor*>(fake_change_processor_.get())-> | 443 static_cast<FakeSyncChangeProcessor*>(fake_change_processor_.get())-> |
| 443 SetChangeOutput(&change_list); | 444 SetChangeOutput(&change_list); |
| 444 | 445 |
| 445 // Set up theme service to use default theme. | 446 // Set up theme service to use default theme. |
| 446 fake_theme_service_->UseDefaultTheme(); | 447 fake_theme_service_->UseDefaultTheme(); |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 562 // use_system_theme_by_default bit should be preserved. | 563 // use_system_theme_by_default bit should be preserved. |
| 563 fake_theme_service_->UseDefaultTheme(); | 564 fake_theme_service_->UseDefaultTheme(); |
| 564 theme_sync_service_->OnThemeChange(); | 565 theme_sync_service_->OnThemeChange(); |
| 565 EXPECT_EQ(1u, change_list.size()); | 566 EXPECT_EQ(1u, change_list.size()); |
| 566 const sync_pb::ThemeSpecifics& change_specifics = | 567 const sync_pb::ThemeSpecifics& change_specifics = |
| 567 change_list[0].sync_data().GetSpecifics().theme(); | 568 change_list[0].sync_data().GetSpecifics().theme(); |
| 568 EXPECT_FALSE(change_specifics.use_custom_theme()); | 569 EXPECT_FALSE(change_specifics.use_custom_theme()); |
| 569 EXPECT_TRUE(change_specifics.use_system_theme_by_default()); | 570 EXPECT_TRUE(change_specifics.use_system_theme_by_default()); |
| 570 } | 571 } |
| 571 #endif | 572 #endif |
| OLD | NEW |