Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(343)

Unified Diff: ui/views/corewm/tooltip_aura_unittest.cc

Issue 924433002: Use RenderText directly to draw tooltip (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/views/corewm/tooltip_aura_unittest.cc
diff --git a/ui/views/corewm/tooltip_aura_unittest.cc b/ui/views/corewm/tooltip_aura_unittest.cc
deleted file mode 100644
index a77db2f0b108a4c2eb1891ec3d4d02e2caf8e066..0000000000000000000000000000000000000000
--- a/ui/views/corewm/tooltip_aura_unittest.cc
+++ /dev/null
@@ -1,131 +0,0 @@
-// Copyright 2013 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/views/corewm/tooltip_aura.h"
-
-#include "base/strings/utf_string_conversions.h"
-#include "ui/aura/test/aura_test_base.h"
-#include "ui/gfx/font_list.h"
-#include "ui/gfx/text_elider.h"
-#include "ui/gfx/text_utils.h"
-
-using base::ASCIIToUTF16;
-using base::UTF8ToUTF16;
-
-namespace views {
-namespace corewm {
-
-typedef aura::test::AuraTestBase TooltipAuraTest;
-
-TEST_F(TooltipAuraTest, TrimTooltipToFitTests) {
- const gfx::FontList font_list;
- const int max_width = 4000;
- base::string16 tooltip;
- int width, line_count, expect_lines;
- int max_pixel_width = 400; // copied from constants in tooltip_controller.cc
- int max_lines = 10; // copied from constants in tooltip_controller.cc
- size_t tooltip_len;
-
- // Error in computed size vs. expected size should not be greater than the
- // size of the longest word.
- int error_in_pixel_width = gfx::GetStringWidth(ASCIIToUTF16("tooltip"),
- font_list);
-
- // Long tooltips should wrap to next line
- tooltip.clear();
- width = line_count = -1;
- expect_lines = 3;
- for (; gfx::GetStringWidth(tooltip, font_list) <=
- (expect_lines - 1) * max_pixel_width;)
- tooltip.append(ASCIIToUTF16("This is part of the tooltip"));
- tooltip_len = tooltip.length();
- TooltipAura::TrimTooltipToFit(font_list, max_width, &tooltip, &width,
- &line_count);
- EXPECT_NEAR(max_pixel_width, width, error_in_pixel_width);
- EXPECT_EQ(expect_lines, line_count);
- EXPECT_EQ(tooltip_len + expect_lines - 1, tooltip.length());
-
- // More than |max_lines| lines should get truncated at 10 lines.
- tooltip.clear();
- width = line_count = -1;
- expect_lines = 13;
- for (; gfx::GetStringWidth(tooltip, font_list) <=
- (expect_lines - 1) * max_pixel_width;)
- tooltip.append(ASCIIToUTF16("This is part of the tooltip"));
- TooltipAura::TrimTooltipToFit(font_list, max_width, &tooltip, &width,
- &line_count);
- EXPECT_NEAR(max_pixel_width, width, error_in_pixel_width);
- EXPECT_EQ(max_lines, line_count);
-
- // Long multi line tooltips should wrap individual lines.
- tooltip.clear();
- width = line_count = -1;
- expect_lines = 4;
- for (; gfx::GetStringWidth(tooltip, font_list) <=
- (expect_lines - 2) * max_pixel_width;)
- tooltip.append(ASCIIToUTF16("This is part of the tooltip"));
- tooltip.insert(tooltip.length() / 2, ASCIIToUTF16("\n"));
- tooltip_len = tooltip.length();
- TooltipAura::TrimTooltipToFit(font_list, max_width, &tooltip, &width,
- &line_count);
- EXPECT_NEAR(max_pixel_width, width, error_in_pixel_width);
- EXPECT_EQ(expect_lines, line_count);
- // We may have inserted the line break above near a space which will get
- // trimmed. Hence we may be off by 1 in the final tooltip length calculation.
- EXPECT_NEAR(tooltip_len + expect_lines - 2, tooltip.length(), 1);
-
-#if !defined(OS_WIN)
- // Tooltip with really long word gets elided.
- tooltip.clear();
- width = line_count = -1;
- tooltip = UTF8ToUTF16(std::string('a', max_pixel_width));
- TooltipAura::TrimTooltipToFit(font_list, max_width, &tooltip, &width,
- &line_count);
- EXPECT_NEAR(max_pixel_width, width, 5);
- EXPECT_EQ(1, line_count);
- EXPECT_EQ(gfx::ElideText(UTF8ToUTF16(std::string('a', max_pixel_width)),
- font_list, max_pixel_width, gfx::ELIDE_TAIL),
- tooltip);
-#endif
-
- // Normal small tooltip should stay as is.
- tooltip.clear();
- width = line_count = -1;
- tooltip = ASCIIToUTF16("Small Tooltip");
- TooltipAura::TrimTooltipToFit(font_list, max_width, &tooltip, &width,
- &line_count);
- EXPECT_EQ(gfx::GetStringWidth(ASCIIToUTF16("Small Tooltip"), font_list),
- width);
- EXPECT_EQ(1, line_count);
- EXPECT_EQ(ASCIIToUTF16("Small Tooltip"), tooltip);
-
- // Normal small multi-line tooltip should stay as is.
- tooltip.clear();
- width = line_count = -1;
- tooltip = ASCIIToUTF16("Multi line\nTooltip");
- TooltipAura::TrimTooltipToFit(font_list, max_width, &tooltip, &width,
- &line_count);
- int expected_width = gfx::GetStringWidth(ASCIIToUTF16("Multi line"),
- font_list);
- expected_width = std::max(expected_width,
- gfx::GetStringWidth(ASCIIToUTF16("Tooltip"),
- font_list));
- EXPECT_EQ(expected_width, width);
- EXPECT_EQ(2, line_count);
- EXPECT_EQ(ASCIIToUTF16("Multi line\nTooltip"), tooltip);
-
- // Whitespaces in tooltips are preserved.
- tooltip.clear();
- width = line_count = -1;
- tooltip = ASCIIToUTF16("Small Tool t\tip");
- TooltipAura::TrimTooltipToFit(font_list, max_width, &tooltip, &width,
- &line_count);
- EXPECT_EQ(gfx::GetStringWidth(ASCIIToUTF16("Small Tool t\tip"), font_list),
- width);
- EXPECT_EQ(1, line_count);
- EXPECT_EQ(ASCIIToUTF16("Small Tool t\tip"), tooltip);
-}
-
-} // namespace corewm
-} // namespace views

Powered by Google App Engine
This is Rietveld 408576698