Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(620)

Side by Side Diff: chrome/browser/themes/theme_syncable_service_unittest.cc

Issue 1379133004: themes: Remove usage of TOOLKIT_GTK define. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: override IsSystemThemeDistinctFromDefaultTheme() Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 FILE_PATH_LITERAL("c:\\foo"); 52 FILE_PATH_LITERAL("c:\\foo");
53 #elif defined(OS_POSIX) 53 #elif defined(OS_POSIX)
54 const base::FilePath::CharType kExtensionFilePath[] = FILE_PATH_LITERAL("/oo"); 54 const base::FilePath::CharType kExtensionFilePath[] = FILE_PATH_LITERAL("/oo");
55 #endif 55 #endif
56 56
57 class FakeThemeService : public ThemeService { 57 class FakeThemeService : public ThemeService {
58 public: 58 public:
59 FakeThemeService() : 59 FakeThemeService() :
60 using_system_theme_(false), 60 using_system_theme_(false),
61 using_default_theme_(false), 61 using_default_theme_(false),
62 distinct_from_default_theme_(false),
62 theme_extension_(NULL), 63 theme_extension_(NULL),
63 is_dirty_(false) {} 64 is_dirty_(false) {}
64 65
65 // ThemeService implementation 66 // ThemeService implementation
66 void SetTheme(const extensions::Extension* extension) override { 67 void SetTheme(const extensions::Extension* extension) override {
67 is_dirty_ = true; 68 is_dirty_ = true;
68 theme_extension_ = extension; 69 theme_extension_ = extension;
69 using_system_theme_ = false; 70 using_system_theme_ = false;
70 using_default_theme_ = false; 71 using_default_theme_ = false;
71 } 72 }
72 73
73 void UseDefaultTheme() override { 74 void UseDefaultTheme() override {
74 is_dirty_ = true; 75 is_dirty_ = true;
75 using_default_theme_ = true; 76 using_default_theme_ = true;
76 using_system_theme_ = false; 77 using_system_theme_ = false;
77 theme_extension_ = NULL; 78 theme_extension_ = NULL;
78 } 79 }
79 80
80 void UseSystemTheme() override { 81 void UseSystemTheme() override {
81 is_dirty_ = true; 82 is_dirty_ = true;
82 using_system_theme_ = true; 83 using_system_theme_ = true;
83 using_default_theme_ = false; 84 using_default_theme_ = false;
84 theme_extension_ = NULL; 85 theme_extension_ = NULL;
85 } 86 }
86 87
88 bool IsSystemThemeDistinctFromDefaultTheme() const override {
89 return distinct_from_default_theme_;
90 }
pkotwicz 2015/10/28 15:02:11 Nit: New line
tfarina 2015/10/28 18:55:13 Done.
91 void set_distinct_from_default_theme(bool is_distinct) {
92 distinct_from_default_theme_ = is_distinct;
93 }
94
87 bool UsingDefaultTheme() const override { return using_default_theme_; } 95 bool UsingDefaultTheme() const override { return using_default_theme_; }
88 96
89 bool UsingSystemTheme() const override { return using_system_theme_; } 97 bool UsingSystemTheme() const override { return using_system_theme_; }
90 98
91 string GetThemeID() const override { 99 string GetThemeID() const override {
92 if (theme_extension_.get()) 100 if (theme_extension_.get())
93 return theme_extension_->id(); 101 return theme_extension_->id();
94 else 102 else
95 return std::string(); 103 return std::string();
96 } 104 }
97 105
98 const extensions::Extension* theme_extension() const { 106 const extensions::Extension* theme_extension() const {
99 return theme_extension_.get(); 107 return theme_extension_.get();
100 } 108 }
101 109
102 bool is_dirty() const { 110 bool is_dirty() const {
103 return is_dirty_; 111 return is_dirty_;
104 } 112 }
105 113
106 void MarkClean() { 114 void MarkClean() {
107 is_dirty_ = false; 115 is_dirty_ = false;
108 } 116 }
109 117
110 private: 118 private:
111 bool using_system_theme_; 119 bool using_system_theme_;
112 bool using_default_theme_; 120 bool using_default_theme_;
121 bool distinct_from_default_theme_;
113 scoped_refptr<const extensions::Extension> theme_extension_; 122 scoped_refptr<const extensions::Extension> theme_extension_;
114 bool is_dirty_; 123 bool is_dirty_;
115 }; 124 };
116 125
117 scoped_ptr<KeyedService> BuildMockThemeService( 126 scoped_ptr<KeyedService> BuildMockThemeService(
118 content::BrowserContext* profile) { 127 content::BrowserContext* profile) {
119 return make_scoped_ptr(new FakeThemeService); 128 return make_scoped_ptr(new FakeThemeService);
120 } 129 }
121 130
122 scoped_refptr<extensions::Extension> MakeThemeExtension( 131 scoped_refptr<extensions::Extension> MakeThemeExtension(
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after
561 // use_system_theme_by_default bit should be preserved. 570 // use_system_theme_by_default bit should be preserved.
562 fake_theme_service_->SetTheme(theme_extension_.get()); 571 fake_theme_service_->SetTheme(theme_extension_.get());
563 theme_sync_service_->OnThemeChange(); 572 theme_sync_service_->OnThemeChange();
564 const syncer::SyncChangeList& changes = fake_change_processor_->changes(); 573 const syncer::SyncChangeList& changes = fake_change_processor_->changes();
565 EXPECT_EQ(1u, changes.size()); 574 EXPECT_EQ(1u, changes.size());
566 const sync_pb::ThemeSpecifics& change_specifics = 575 const sync_pb::ThemeSpecifics& change_specifics =
567 changes[0].sync_data().GetSpecifics().theme(); 576 changes[0].sync_data().GetSpecifics().theme();
568 EXPECT_TRUE(change_specifics.use_system_theme_by_default()); 577 EXPECT_TRUE(change_specifics.use_system_theme_by_default());
569 } 578 }
570 579
571 #if defined(TOOLKIT_GTK) 580 TEST_F(ThemeSyncableServiceTest, DistinctSystemTheme) {
572 TEST_F(ThemeSyncableServiceTest, 581 fake_theme_service_->set_distinct_from_default_theme(true);
573 GtkUpdateSystemThemeBitWhenChangeBetweenSystemAndDefault) { 582
574 // Initialize to use native theme. 583 // Initialize to use native theme.
575 fake_theme_service_->UseSystemTheme(); 584 fake_theme_service_->UseSystemTheme();
576 fake_theme_service_->MarkClean(); 585 fake_theme_service_->MarkClean();
577 sync_pb::ThemeSpecifics theme_specifics; 586 sync_pb::ThemeSpecifics theme_specifics;
578 theme_specifics.set_use_system_theme_by_default(true); 587 theme_specifics.set_use_system_theme_by_default(true);
579 syncer::SyncError error = 588 syncer::SyncError error =
580 theme_sync_service_ 589 theme_sync_service_
581 ->MergeDataAndStartSyncing( 590 ->MergeDataAndStartSyncing(
582 syncer::THEMES, 591 syncer::THEMES,
583 MakeThemeDataList(theme_specifics), 592 MakeThemeDataList(theme_specifics),
(...skipping 22 matching lines...) Expand all
606 changes.clear(); 615 changes.clear();
607 fake_theme_service_->UseSystemTheme(); 616 fake_theme_service_->UseSystemTheme();
608 theme_sync_service_->OnThemeChange(); 617 theme_sync_service_->OnThemeChange();
609 EXPECT_EQ(1u, changes.size()); 618 EXPECT_EQ(1u, changes.size());
610 EXPECT_TRUE(changes[0] 619 EXPECT_TRUE(changes[0]
611 .sync_data() 620 .sync_data()
612 .GetSpecifics() 621 .GetSpecifics()
613 .theme() 622 .theme()
614 .use_system_theme_by_default()); 623 .use_system_theme_by_default());
615 } 624 }
616 #endif
617 625
618 #ifndef TOOLKIT_GTK 626 TEST_F(ThemeSyncableServiceTest, SystemThemeSameAsDefaultTheme) {
619 TEST_F(ThemeSyncableServiceTest, 627 fake_theme_service_->set_distinct_from_default_theme(false);
620 NonGtkPreserveSystemThemeBitWhenChangeToDefaultTheme) { 628
621 // Set up theme service to use default theme. 629 // Set up theme service to use default theme.
622 fake_theme_service_->UseDefaultTheme(); 630 fake_theme_service_->UseDefaultTheme();
623 631
624 // Initialize to use custom theme with use_system_theme_by_default set true. 632 // Initialize to use custom theme with use_system_theme_by_default set true.
625 sync_pb::ThemeSpecifics theme_specifics; 633 sync_pb::ThemeSpecifics theme_specifics;
626 theme_specifics.set_use_custom_theme(true); 634 theme_specifics.set_use_custom_theme(true);
627 theme_specifics.set_custom_theme_id(theme_extension_->id()); 635 theme_specifics.set_custom_theme_id(theme_extension_->id());
628 theme_specifics.set_custom_theme_name(kCustomThemeName); 636 theme_specifics.set_custom_theme_name(kCustomThemeName);
629 theme_specifics.set_custom_theme_name(kCustomThemeUrl); 637 theme_specifics.set_custom_theme_name(kCustomThemeUrl);
630 theme_specifics.set_use_system_theme_by_default(true); 638 theme_specifics.set_use_system_theme_by_default(true);
(...skipping 14 matching lines...) Expand all
645 // use_system_theme_by_default bit should be preserved. 653 // use_system_theme_by_default bit should be preserved.
646 fake_theme_service_->UseDefaultTheme(); 654 fake_theme_service_->UseDefaultTheme();
647 theme_sync_service_->OnThemeChange(); 655 theme_sync_service_->OnThemeChange();
648 const syncer::SyncChangeList& changes = fake_change_processor_->changes(); 656 const syncer::SyncChangeList& changes = fake_change_processor_->changes();
649 EXPECT_EQ(1u, changes.size()); 657 EXPECT_EQ(1u, changes.size());
650 const sync_pb::ThemeSpecifics& change_specifics = 658 const sync_pb::ThemeSpecifics& change_specifics =
651 changes[0].sync_data().GetSpecifics().theme(); 659 changes[0].sync_data().GetSpecifics().theme();
652 EXPECT_FALSE(change_specifics.use_custom_theme()); 660 EXPECT_FALSE(change_specifics.use_custom_theme());
653 EXPECT_TRUE(change_specifics.use_system_theme_by_default()); 661 EXPECT_TRUE(change_specifics.use_system_theme_by_default());
654 } 662 }
655 #endif
656 663
657 TEST_F(PolicyInstalledThemeTest, InstallThemeByPolicy) { 664 TEST_F(PolicyInstalledThemeTest, InstallThemeByPolicy) {
658 // Set up theme service to use custom theme that was installed by policy. 665 // Set up theme service to use custom theme that was installed by policy.
659 fake_theme_service_->SetTheme(theme_extension_.get()); 666 fake_theme_service_->SetTheme(theme_extension_.get());
660 667
661 syncer::SyncDataList data_list = 668 syncer::SyncDataList data_list =
662 theme_sync_service_->GetAllSyncData(syncer::THEMES); 669 theme_sync_service_->GetAllSyncData(syncer::THEMES);
663 670
664 ASSERT_EQ(0u, data_list.size()); 671 ASSERT_EQ(0u, data_list.size());
665 } 672 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698