// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "ui/native_theme/native_theme_mac.h" #include "base/mac/mac_util.h" #include "testing/gtest/include/gtest/gtest.h" namespace ui { // Test to ensure any system colors that are looked up by name exist on all Mac // platforms Chrome supports, and that their colorspace and component count is // sane. TEST(NativeThemeMacTest, SystemColorsExist) { NativeTheme* native_theme = NativeTheme::instance(); ASSERT_TRUE(native_theme); for (int i = 0; i < NativeTheme::kColorId_NumColors; ++i) { // While 0 is a valid color, no system color should be fully transparent. // This is also to probe for CHECKs. EXPECT_NE( static_cast(0), native_theme->GetSystemColor(static_cast(i))) << "GetSystemColor() unexpectedly gave a fully transparent color."; } } // Spot-check some system colours that can't be changed through System // Preferences. TEST(NativeThemeMacTest, SystemColorSpotChecks) { NativeTheme* native_theme = NativeTheme::instance(); const SkColor kWindowColorCatsMavericks = SkColorSetARGB(255, 232, 232, 232); const SkColor kWindowColorYosemite = SkColorSetARGB(255, 236, 236, 236); SkColor dialogColor = native_theme->GetSystemColor(NativeTheme::kColorId_WindowBackground); if (base::mac::IsOSYosemiteOrLater()) EXPECT_EQ(dialogColor, kWindowColorYosemite); else EXPECT_EQ(dialogColor, kWindowColorCatsMavericks); } } // namespace ui