summaryrefslogtreecommitdiffstats
path: root/chrome/browser/gtk/gtk_theme_provider_unittest.cc
diff options
context:
space:
mode:
authorerg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-11 20:55:30 +0000
committererg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-11 20:55:30 +0000
commit5973945e4c3d2baf2b92d11be55c1692a09b12e3 (patch)
treee2abfada45cf20c85186c10e27c966c2cbc6bf55 /chrome/browser/gtk/gtk_theme_provider_unittest.cc
parent45c019ca34f3c9576ad1c3d24a885f97f1b80ba2 (diff)
downloadchromium_src-5973945e4c3d2baf2b92d11be55c1692a09b12e3.zip
chromium_src-5973945e4c3d2baf2b92d11be55c1692a09b12e3.tar.gz
chromium_src-5973945e4c3d2baf2b92d11be55c1692a09b12e3.tar.bz2
Completely redo how themes are stored on disk and processed at install time.
Rewrites most of BrowserThemeProvider and adds a new class BrowserThemePack. BrowserThemePack takes all the logic of generating resources out of the BrowserThemeProvider, does all of them at theme install time (previously, we lazily generated all the button images and a good number of colors, which muddled logic quite a bit), and then writes all the data out into an mmap()able file to speed startup when a theme is installed. In addition, this changes how the GtkThemeProvider works. The GtkThemeProvider now generates all of its images lazily and doesn't reach into the implementation details of BrowserThemeProvider as it used to. BUG=24493,21121 TEST=All the new unit tests pass. All the complex theme startup tests go faster. Review URL: http://codereview.chromium.org/460050 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34379 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/gtk/gtk_theme_provider_unittest.cc')
-rw-r--r--chrome/browser/gtk/gtk_theme_provider_unittest.cc75
1 files changed, 5 insertions, 70 deletions
diff --git a/chrome/browser/gtk/gtk_theme_provider_unittest.cc b/chrome/browser/gtk/gtk_theme_provider_unittest.cc
index c3b85cb..93012ba 100644
--- a/chrome/browser/gtk/gtk_theme_provider_unittest.cc
+++ b/chrome/browser/gtk/gtk_theme_provider_unittest.cc
@@ -35,11 +35,6 @@ class GtkThemeProviderTest : public testing::Test {
provider_ = GtkThemeProvider::GetFrom(&profile_);
}
- void UseThemeProvider(GtkThemeProvider* provider) {
- profile_.UseThemeProvider(provider);
- provider_ = GtkThemeProvider::GetFrom(&profile_);
- }
-
protected:
TestingProfile profile_;
@@ -51,42 +46,11 @@ TEST_F(GtkThemeProviderTest, DefaultValues) {
BuildProvider();
// Test that we get the default theme colors back when in normal mode.
- EXPECT_EQ(provider_->GetColor(BrowserThemeProvider::COLOR_FRAME),
- BrowserThemeProvider::kDefaultColorFrame);
- EXPECT_EQ(provider_->GetColor(BrowserThemeProvider::COLOR_FRAME_INACTIVE),
- BrowserThemeProvider::kDefaultColorFrameInactive);
- EXPECT_EQ(provider_->GetColor(BrowserThemeProvider::COLOR_FRAME_INCOGNITO),
- BrowserThemeProvider::kDefaultColorFrameIncognito);
- EXPECT_EQ(provider_->GetColor(
- BrowserThemeProvider::COLOR_FRAME_INCOGNITO_INACTIVE),
- BrowserThemeProvider::kDefaultColorFrameIncognitoInactive);
- EXPECT_EQ(provider_->GetColor(BrowserThemeProvider::COLOR_TOOLBAR),
- BrowserThemeProvider::kDefaultColorToolbar);
- EXPECT_EQ(provider_->GetColor(BrowserThemeProvider::COLOR_TAB_TEXT),
- BrowserThemeProvider::kDefaultColorTabText);
- EXPECT_EQ(provider_->GetColor(
- BrowserThemeProvider::COLOR_BACKGROUND_TAB_TEXT),
- BrowserThemeProvider::kDefaultColorBackgroundTabText);
- EXPECT_EQ(provider_->GetColor(BrowserThemeProvider::COLOR_BOOKMARK_TEXT),
- BrowserThemeProvider::kDefaultColorBookmarkText);
- EXPECT_EQ(provider_->GetColor(BrowserThemeProvider::COLOR_NTP_BACKGROUND),
- BrowserThemeProvider::kDefaultColorNTPBackground);
- EXPECT_EQ(provider_->GetColor(BrowserThemeProvider::COLOR_NTP_TEXT),
- BrowserThemeProvider::kDefaultColorNTPText);
- EXPECT_EQ(provider_->GetColor(BrowserThemeProvider::COLOR_NTP_LINK),
- BrowserThemeProvider::kDefaultColorNTPLink);
- EXPECT_EQ(provider_->GetColor(BrowserThemeProvider::COLOR_NTP_HEADER),
- BrowserThemeProvider::kDefaultColorNTPHeader);
- EXPECT_EQ(provider_->GetColor(BrowserThemeProvider::COLOR_NTP_SECTION),
- BrowserThemeProvider::kDefaultColorNTPSection);
- EXPECT_EQ(provider_->GetColor(BrowserThemeProvider::COLOR_NTP_SECTION_TEXT),
- BrowserThemeProvider::kDefaultColorNTPSectionText);
- EXPECT_EQ(provider_->GetColor(BrowserThemeProvider::COLOR_NTP_SECTION_LINK),
- BrowserThemeProvider::kDefaultColorNTPSectionLink);
- EXPECT_EQ(provider_->GetColor(BrowserThemeProvider::COLOR_CONTROL_BACKGROUND),
- BrowserThemeProvider::kDefaultColorControlBackground);
- EXPECT_EQ(provider_->GetColor(BrowserThemeProvider::COLOR_BUTTON_BACKGROUND),
- BrowserThemeProvider::kDefaultColorButtonBackground);
+ for (int i = BrowserThemeProvider::COLOR_FRAME;
+ i <= BrowserThemeProvider::COLOR_BUTTON_BACKGROUND; ++i) {
+ EXPECT_EQ(provider_->GetColor(i), BrowserThemeProvider::GetDefaultColor(i))
+ << "Wrong default color for " << i;
+ }
}
TEST_F(GtkThemeProviderTest, UsingGtkValues) {
@@ -104,32 +68,3 @@ TEST_F(GtkThemeProviderTest, UsingGtkValues) {
EXPECT_EQ(provider_->GetColor(BrowserThemeProvider::COLOR_TAB_TEXT),
GdkToSkColor(&label_color));
}
-
-// Helper class to GtkThemeProviderTest.UsingGtkFrame.
-class ImageVerifierGtkThemeProvider : public GtkThemeProvider {
- public:
- ImageVerifierGtkThemeProvider() : theme_toolbar_(NULL) { }
-
- virtual SkBitmap* LoadThemeBitmap(int id) const {
- if (id != IDR_THEME_TOOLBAR)
- return GtkThemeProvider::LoadThemeBitmap(id);
- theme_toolbar_ = GtkThemeProvider::LoadThemeBitmap(id);
- return theme_toolbar_;
- }
-
- mutable SkBitmap* theme_toolbar_;
-};
-
-TEST_F(GtkThemeProviderTest, InjectsToolbar) {
- SetUseGtkTheme(true);
- ImageVerifierGtkThemeProvider* verifier_provider =
- new ImageVerifierGtkThemeProvider;
- UseThemeProvider(verifier_provider);
-
- // Make sure the image we get from the public BrowserThemeProvider interface
- // is the one we injected through GtkThemeProvider.
- SkBitmap* image = provider_->GetBitmapNamed(IDR_THEME_TOOLBAR);
- EXPECT_TRUE(verifier_provider->theme_toolbar_);
- EXPECT_TRUE(image);
- EXPECT_EQ(verifier_provider->theme_toolbar_, image);
-}