diff options
author | Zeno Albisser <zeno.albisser@digia.com> | 2013-08-15 21:46:11 +0200 |
---|---|---|
committer | Zeno Albisser <zeno.albisser@digia.com> | 2013-08-15 21:46:11 +0200 |
commit | 679147eead574d186ebf3069647b4c23e8ccace6 (patch) | |
tree | fc247a0ac8ff119f7c8550879ebb6d3dd8d1ff69 /chromium/ui/gfx/canvas_unittest.cc |
Initial import.
Diffstat (limited to 'chromium/ui/gfx/canvas_unittest.cc')
-rw-r--r-- | chromium/ui/gfx/canvas_unittest.cc | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/chromium/ui/gfx/canvas_unittest.cc b/chromium/ui/gfx/canvas_unittest.cc new file mode 100644 index 00000000000..21b9f51e57e --- /dev/null +++ b/chromium/ui/gfx/canvas_unittest.cc @@ -0,0 +1,61 @@ +// Copyright (c) 2012 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 <limits> + +#include "base/strings/utf_string_conversions.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "ui/gfx/canvas.h" +#include "ui/gfx/font.h" + +namespace gfx { + +class CanvasTest : public testing::Test { + protected: + int GetStringWidth(const char *text) { + return Canvas::GetStringWidth(UTF8ToUTF16(text), font_); + } + + gfx::Size SizeStringInt(const char *text, int width, int line_height) { + base::string16 text16 = UTF8ToUTF16(text); + int height = 0; + int flags = + (text16.find('\n') != base::string16::npos) ? Canvas::MULTI_LINE : 0; + Canvas::SizeStringInt(text16, font_, &width, &height, line_height, flags); + return gfx::Size(width, height); + } + + private: + gfx::Font font_; +}; + +TEST_F(CanvasTest, StringWidth) { + EXPECT_GT(GetStringWidth("Test"), 0); +} + +TEST_F(CanvasTest, StringWidthEmptyString) { + EXPECT_EQ(0, GetStringWidth("")); +} + +TEST_F(CanvasTest, StringSizeEmptyString) { + gfx::Size size = SizeStringInt("", 0, 0); + EXPECT_EQ(0, size.width()); + EXPECT_GT(size.height(), 0); +} + +// Line height is only supported on Skia. +#if defined(OS_MACOSX) || defined(OS_ANDROID) +#define MAYBE_StringSizeWithLineHeight DISABLED_StringSizeWithLineHeight +#else +#define MAYBE_StringSizeWithLineHeight StringSizeWithLineHeight +#endif + +TEST_F(CanvasTest, MAYBE_StringSizeWithLineHeight) { + gfx::Size one_line_size = SizeStringInt("Q", 0, 0); + gfx::Size four_line_size = SizeStringInt("Q\nQ\nQ\nQ", 1000000, 1000); + EXPECT_EQ(one_line_size.width(), four_line_size.width()); + EXPECT_EQ(3 * 1000 + one_line_size.height(), four_line_size.height()); +} + +} // namespace gfx |