Fix gfx unit-tests so they do not crash on Windows, prior to Windows 7
Also fix failing Font test.
TEST=unit tests
BUG=46733
Review URL: http://codereview.chromium.org/3615001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61725 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/gfx/font_unittest.cc b/gfx/font_unittest.cc
index d2eda1c..1cf1b11 100644
--- a/gfx/font_unittest.cc
+++ b/gfx/font_unittest.cc
@@ -4,6 +4,9 @@
#include "gfx/font.h"
+#if defined(OS_WIN)
+#include "gfx/platform_font_win.h"
+#endif // defined(OS_WIN)
#include "testing/gtest/include/gtest/gtest.h"
namespace {
@@ -13,6 +16,34 @@
class FontTest : public testing::Test {
};
+#if defined(OS_WIN)
+class ScopedMinimumFontSizeCallback {
+ public:
+ explicit ScopedMinimumFontSizeCallback(int minimum_size) {
+ minimum_size_ = minimum_size;
+ old_callback_ = gfx::PlatformFontWin::get_minimum_font_size_callback;
+ gfx::PlatformFontWin::get_minimum_font_size_callback = &GetMinimumFontSize;
+ }
+
+ ~ScopedMinimumFontSizeCallback() {
+ gfx::PlatformFontWin::get_minimum_font_size_callback = old_callback_;
+ }
+
+ private:
+ static int GetMinimumFontSize() {
+ return minimum_size_;
+ }
+
+ gfx::PlatformFontWin::GetMinimumFontSizeCallback old_callback_;
+ static int minimum_size_;
+
+ DISALLOW_COPY_AND_ASSIGN(ScopedMinimumFontSizeCallback);
+};
+
+int ScopedMinimumFontSizeCallback::minimum_size_ = 0;
+#endif // defined(OS_WIN)
+
+
TEST_F(FontTest, LoadArial) {
Font cf(L"Arial", 16);
ASSERT_TRUE(cf.GetNativeFont());
@@ -58,10 +89,12 @@
}
#if defined(OS_WIN)
-// http://crbug.com/46733
-TEST_F(FontTest, FAILS_DeriveFontResizesIfSizeTooSmall) {
+TEST_F(FontTest, DeriveFontResizesIfSizeTooSmall) {
// This creates font of height -8.
Font cf(L"Arial", 6);
+ // The minimum font size is set to 5 in browser_main.cc.
+ ScopedMinimumFontSizeCallback minimum_size(5);
+
Font derived_font = cf.DeriveFont(-4);
LOGFONT font_info;
GetObject(derived_font.GetNativeFont(), sizeof(LOGFONT), &font_info);
@@ -71,6 +104,9 @@
TEST_F(FontTest, DeriveFontKeepsOriginalSizeIfHeightOk) {
// This creates font of height -8.
Font cf(L"Arial", 6);
+ // The minimum font size is set to 5 in browser_main.cc.
+ ScopedMinimumFontSizeCallback minimum_size(5);
+
Font derived_font = cf.DeriveFont(-2);
LOGFONT font_info;
GetObject(derived_font.GetNativeFont(), sizeof(LOGFONT), &font_info);