Chromium Code Reviews| Index: chrome/browser/ui/views/download/download_item_view_unittest.cc |
| diff --git a/chrome/browser/ui/views/download/download_item_view_unittest.cc b/chrome/browser/ui/views/download/download_item_view_unittest.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..f401cb10b87edeed5a1de6d03b31fac2e2e0d3e7 |
| --- /dev/null |
| +++ b/chrome/browser/ui/views/download/download_item_view_unittest.cc |
| @@ -0,0 +1,49 @@ |
| +// Copyright 2016 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 "chrome/browser/ui/views/download/download_item_view.h" |
| + |
| +#include "base/strings/utf_string_conversions.h" |
| +#include "testing/gtest/include/gtest/gtest.h" |
| +#include "ui/views/controls/label.h" |
| + |
| +typedef testing::Test DownloadItemViewDangerousDownloadLabelTest; |
|
Peter Kasting
2016/12/08 21:53:53
Nit: Prefer type alias ("using") to typedef.
Jialiu Lin
2016/12/08 22:44:03
Done.
|
| + |
| +// For very short label that can fit in a single line, no need to do any |
| +// adjustment, return it directly. |
| +TEST_F(DownloadItemViewDangerousDownloadLabelTest, |
| + AdjustTextAndGetSize_VeryShortText) { |
| + base::string16 label_text = base::ASCIIToUTF16("very short label"); |
|
Peter Kasting
2016/12/08 21:53:53
Nit: I suggest just "short", to minimize the chanc
Jialiu Lin
2016/12/08 22:44:03
Done.
|
| + views::Label label(label_text); |
| + label.SetMultiLine(true); |
| + DownloadItemView::AdjustTextAndGetSize(&label); |
| + EXPECT_EQ(label_text, label.text()); |
| +} |
| + |
| +// When we have multiple linebreaks that result in the same minimum width, we |
| +// should place as much text as possible on the first line. |
| +TEST_F(DownloadItemViewDangerousDownloadLabelTest, |
| + AdjustTextAndGetSize_MoreTextOnFirstLine) { |
| + base::string16 label_text = base::ASCIIToUTF16( |
| + "aaaa aaaa aaaa aaaa aaaa aaaa bb aaaa aaaa aaaa aaaa aaaa aaaa"); |
| + base::string16 expected_text = base::ASCIIToUTF16( |
| + "aaaa aaaa aaaa aaaa aaaa aaaa bb\n" |
| + "aaaa aaaa aaaa aaaa aaaa aaaa"); |
| + views::Label label(label_text); |
| + label.SetMultiLine(true); |
| + DownloadItemView::AdjustTextAndGetSize(&label); |
| + EXPECT_EQ(expected_text, label.text()); |
| +} |
| + |
| +// If the label is a single word and extremely long, we should not break it into |
| +// 2 lines. |
| +TEST_F(DownloadItemViewDangerousDownloadLabelTest, |
| + AdjustTextAndGetSize_VeryLongTextWithoutSpace) { |
| + base::string16 label_text = base::ASCIIToUTF16( |
| + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); |
| + views::Label label(label_text); |
| + label.SetMultiLine(true); |
| + DownloadItemView::AdjustTextAndGetSize(&label); |
| + EXPECT_EQ(label_text, label.text()); |
| +} |