summaryrefslogtreecommitdiffstats
path: root/chromium/ui/gfx/canvas_unittest.cc
diff options
context:
space:
mode:
authorZeno Albisser <zeno.albisser@digia.com>2013-08-15 21:46:11 +0200
committerZeno Albisser <zeno.albisser@digia.com>2013-08-15 21:46:11 +0200
commit679147eead574d186ebf3069647b4c23e8ccace6 (patch)
treefc247a0ac8ff119f7c8550879ebb6d3dd8d1ff69 /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.cc61
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