summaryrefslogtreecommitdiff
path: root/chromium/ui/views/metadata/type_conversion_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ui/views/metadata/type_conversion_unittest.cc')
-rw-r--r--chromium/ui/views/metadata/type_conversion_unittest.cc259
1 files changed, 10 insertions, 249 deletions
diff --git a/chromium/ui/views/metadata/type_conversion_unittest.cc b/chromium/ui/views/metadata/type_conversion_unittest.cc
index 43630a0c7d4..b4017140ae0 100644
--- a/chromium/ui/views/metadata/type_conversion_unittest.cc
+++ b/chromium/ui/views/metadata/type_conversion_unittest.cc
@@ -1,263 +1,24 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
+// Copyright 2021 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/metadata/type_conversion.h"
-#include "base/ranges/ranges.h"
-#include "base/strings/string_tokenizer.h"
-#include "base/strings/utf_string_conversions.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "testing/platform_test.h"
-#include "ui/gfx/geometry/insets.h"
-#include "ui/gfx/geometry/rect.h"
#include "ui/views/controls/button/button.h"
+#include "ui/views/controls/focus_ring.h"
-using TypeConversionTest = PlatformTest;
-
-namespace views {
-
-// Used in CheckIsSerializable test case.
-enum TestResult {
- TEST_TRUE,
- TEST_FALSE,
-};
-DEFINE_ENUM_CONVERTERS(TestResult, {TEST_TRUE, u"TRUE"}, {TEST_FALSE, u"FALSE"})
-
-TEST_F(TypeConversionTest, TestConversion_IntToString) {
- int from_int = 5;
- std::u16string to_string = metadata::TypeConverter<int>::ToString(from_int);
-
- EXPECT_EQ(to_string, u"5");
-}
-
-TEST_F(TypeConversionTest, TestConversion_StringToInt) {
- std::u16string from_string = u"10";
- EXPECT_EQ(metadata::TypeConverter<int>::FromString(from_string), 10);
-}
-
-// This tests whether the converter handles a bogus input string, in which case
-// the return value should be nullopt.
-TEST_F(TypeConversionTest, TestConversion_BogusStringToInt) {
- std::u16string from_string = u"Foo";
- EXPECT_EQ(metadata::TypeConverter<int>::FromString(from_string),
- base::nullopt);
-}
-
-TEST_F(TypeConversionTest, TestConversion_BogusStringToFloat) {
- std::u16string from_string = u"1.2";
- EXPECT_EQ(metadata::TypeConverter<float>::FromString(from_string), 1.2f);
-}
-
-TEST_F(TypeConversionTest, TestConversion_OptionalIntToString) {
- base::Optional<int> src;
- std::u16string to_string =
- metadata::TypeConverter<base::Optional<int>>::ToString(src);
- EXPECT_EQ(to_string, metadata::GetNullOptStr());
-
- src = 5;
- to_string = metadata::TypeConverter<base::Optional<int>>::ToString(src);
- EXPECT_EQ(to_string, u"5");
-}
-
-TEST_F(TypeConversionTest, TestConversion_StringToOptionalInt) {
- base::Optional<int> ret;
- EXPECT_EQ(metadata::TypeConverter<base::Optional<int>>::FromString(
- metadata::GetNullOptStr()),
- base::make_optional(ret));
-
- EXPECT_EQ(metadata::TypeConverter<base::Optional<int>>::FromString(u"10"),
- 10);
-
- EXPECT_EQ(metadata::TypeConverter<base::Optional<int>>::FromString(u"ab0"),
- base::nullopt);
-}
-
-TEST_F(TypeConversionTest, TestConversion_ShadowValuesToString) {
- gfx::ShadowValues shadow_values;
- shadow_values.emplace_back(gfx::Vector2d(1, 2), .3,
- SkColorSetARGB(128, 255, 0, 0));
-
- EXPECT_EQ(metadata::TypeConverter<gfx::ShadowValues>::ToString(shadow_values),
- u"[ (1,2),0.30,rgba(255,0,0,128) ]");
-
- shadow_values.emplace_back(gfx::Vector2d(9, 8), .76,
- SkColorSetARGB(20, 0, 64, 255));
-
- EXPECT_EQ(
- metadata::TypeConverter<gfx::ShadowValues>::ToString(shadow_values),
- base::ASCIIToUTF16(
- "[ (1,2),0.30,rgba(255,0,0,128); (9,8),0.76,rgba(0,64,255,20) ]"));
-}
-
-TEST_F(TypeConversionTest, TestConversion_StringToShadowValues) {
- base::Optional<gfx::ShadowValues> opt_result =
- metadata::TypeConverter<gfx::ShadowValues>::FromString(base::ASCIIToUTF16(
- "[ (6,4),0.53,rgba(23,44,0,1); (93,83),4.33,rgba(10,20,0,0.059) ]"));
-
- EXPECT_EQ(opt_result.has_value(), true);
- gfx::ShadowValues result = opt_result.value();
- EXPECT_EQ(result.size(), 2U);
-
- EXPECT_EQ(result[0].color(), SkColorSetARGB(255, 23, 44, 0));
- EXPECT_EQ(result[1].color(), SkColorSetARGB(15, 10, 20, 0));
-
- EXPECT_EQ(result[0].x(), 6);
- EXPECT_EQ(result[1].x(), 93);
-
- EXPECT_EQ(result[0].y(), 4);
- EXPECT_EQ(result[1].y(), 83);
-
- EXPECT_EQ(result[0].blur(), 0.53);
- EXPECT_EQ(result[1].blur(), 4.33);
-}
-
-TEST_F(TypeConversionTest, TestConversion_SkColorConversions) {
- // Check conversion from rgb hex string
- base::Optional<SkColor> result =
- metadata::SkColorConverter::FromString(u"0x112233");
- EXPECT_TRUE(result);
- EXPECT_EQ(result.value(), SkColorSetRGB(0x11, 0x22, 0x33));
-
- // Check conversion from argb hex string
- result = metadata::SkColorConverter::FromString(u"0x7F112233");
- EXPECT_TRUE(result);
- EXPECT_EQ(result.value(), SkColorSetARGB(0x7F, 0x11, 0x22, 0x33));
-
- // Check conversion from rgb(r,g,b) string
- result = metadata::SkColorConverter::FromString(u"rgb(0, 128, 192)");
- EXPECT_TRUE(result);
- EXPECT_EQ(result.value(), SkColorSetRGB(0, 128, 192));
-
- // Check conversion from rgba(r,g,b,a) string
- result = metadata::SkColorConverter::FromString(u"rgba(0, 128, 192, 0.5)");
- EXPECT_TRUE(result);
- EXPECT_EQ(result.value(), SkColorSetARGB(128, 0, 128, 192));
-
- // Check conversion from hsl(h,s,l) string
- result = metadata::SkColorConverter::FromString(u"hsl(195, 100%, 50%)");
- EXPECT_TRUE(result);
- const SkScalar hsv[3] = {195.0, 1.0, 0.5};
- EXPECT_EQ(result.value(), SkHSVToColor(hsv));
-
- // Check conversion from hsla(h,s,l,a) string
- result = metadata::SkColorConverter::FromString(u"hsl(195, 100%, 50%, 0.5)");
- EXPECT_TRUE(result);
- EXPECT_EQ(result.value(), SkHSVToColor(128, hsv));
-
- // Check conversion from a decimal integer value
- result = metadata::SkColorConverter::FromString(u"4278239231");
- EXPECT_TRUE(result);
- EXPECT_EQ(result.value(), SkColorSetARGB(255, 0, 191, 255));
-
- // Check without commas.
- result = metadata::SkColorConverter::FromString(u"rgba(92 92 92 1)");
- EXPECT_TRUE(result);
- EXPECT_EQ(result.value(), SkColorSetARGB(255, 92, 92, 92));
-
- // Don't support the CSS hash color style
- result = metadata::SkColorConverter::FromString(u"#03254");
- EXPECT_FALSE(result);
-
- // Don't support some common invalid values
- result = metadata::SkColorConverter::FromString(u"rgba(1,2,3,4)");
- EXPECT_FALSE(result);
-
- result = metadata::SkColorConverter::FromString(u"rgba(1,2,3,4");
- EXPECT_FALSE(result);
-
- result = metadata::SkColorConverter::FromString(u"hsla(1,2,3,4)");
- EXPECT_FALSE(result);
-}
-
-TEST_F(TypeConversionTest, TestConversion_ColorParserTest) {
- using converter = metadata::SkColorConverter;
- std::u16string color;
- const std::u16string source = base::ASCIIToUTF16(
- "rgb(0, 128, 192), hsl(90, 100%, 30%), rgba(128, 128, 128, 0.5), "
- "hsla(240, 100%, 50%, 0.5)");
- auto start_pos = source.cbegin();
- EXPECT_TRUE(
- converter::GetNextColor(start_pos, source.cend(), color, start_pos));
- EXPECT_EQ(color, u"rgb(0, 128, 192)");
- EXPECT_TRUE(
- converter::GetNextColor(start_pos, source.cend(), color, start_pos));
- EXPECT_EQ(color, u"hsl(90, 100%, 30%)");
- EXPECT_TRUE(
- converter::GetNextColor(start_pos, source.cend(), color, start_pos));
- EXPECT_EQ(color, u"rgba(128, 128, 128, 0.5)");
- EXPECT_TRUE(converter::GetNextColor(start_pos, source.cend(), color));
- EXPECT_EQ(color, u"hsla(240, 100%, 50%, 0.5)");
-}
-
-TEST_F(TypeConversionTest, TestConversion_InsetsToString) {
- constexpr gfx::Insets kInsets(3, 5, 7, 9);
-
- std::u16string to_string =
- metadata::TypeConverter<gfx::Insets>::ToString(kInsets);
-
- EXPECT_EQ(to_string, base::ASCIIToUTF16(kInsets.ToString()));
-}
-
-TEST_F(TypeConversionTest, TestConversion_StringToInsets) {
- std::u16string from_string = u"2,3,4,5";
- EXPECT_EQ(metadata::TypeConverter<gfx::Insets>::FromString(from_string),
- gfx::Insets(2, 3, 4, 5));
-}
-
-TEST_F(TypeConversionTest, TestConversion_VectorToString) {
- const std::vector<int> kVector{3, 5, 7, 9};
-
- std::u16string to_string =
- metadata::TypeConverter<std::vector<int>>::ToString(kVector);
-
- EXPECT_EQ(to_string, u"{3,5,7,9}");
-}
-
-TEST_F(TypeConversionTest, TestConversion_StringToVector) {
- std::u16string from_string = u"{2,3,4,5}";
- EXPECT_EQ(metadata::TypeConverter<std::vector<int>>::FromString(from_string),
- std::vector<int>({2, 3, 4, 5}));
-}
-
-TEST_F(TypeConversionTest, CheckIsSerializable) {
- // Test types with explicitly added converters.
- EXPECT_TRUE(metadata::TypeConverter<int8_t>::IsSerializable());
- EXPECT_TRUE(metadata::TypeConverter<int16_t>::IsSerializable());
- EXPECT_TRUE(metadata::TypeConverter<int32_t>::IsSerializable());
- EXPECT_TRUE(metadata::TypeConverter<int64_t>::IsSerializable());
- EXPECT_TRUE(metadata::TypeConverter<uint8_t>::IsSerializable());
- EXPECT_TRUE(metadata::TypeConverter<uint16_t>::IsSerializable());
- EXPECT_TRUE(metadata::TypeConverter<uint32_t>::IsSerializable());
- EXPECT_TRUE(metadata::TypeConverter<uint64_t>::IsSerializable());
- EXPECT_TRUE(metadata::TypeConverter<float>::IsSerializable());
- EXPECT_TRUE(metadata::TypeConverter<double>::IsSerializable());
- EXPECT_TRUE(metadata::TypeConverter<bool>::IsSerializable());
- EXPECT_TRUE(metadata::TypeConverter<const char*>::IsSerializable());
- EXPECT_TRUE(metadata::TypeConverter<std::u16string>::IsSerializable());
- EXPECT_TRUE(metadata::TypeConverter<gfx::ShadowValues>::IsSerializable());
- EXPECT_TRUE(metadata::TypeConverter<gfx::Size>::IsSerializable());
- EXPECT_TRUE(metadata::TypeConverter<gfx::Range>::IsSerializable());
- EXPECT_TRUE(metadata::TypeConverter<gfx::Insets>::IsSerializable());
-
- // Test enum type.
- EXPECT_TRUE(metadata::TypeConverter<TestResult>::IsSerializable());
-
- // Test aliased types.
- EXPECT_TRUE(metadata::TypeConverter<int>::IsSerializable());
- EXPECT_TRUE(metadata::TypeConverter<SkColor>::IsSerializable());
+using ViewsTypeConversionTest = PlatformTest;
+TEST_F(ViewsTypeConversionTest, CheckIsSerializable) {
// Test types with no explicit or aliased converters.
- EXPECT_FALSE(metadata::TypeConverter<
+ EXPECT_FALSE(ui::metadata::TypeConverter<
views::Button::PressedCallback>::IsSerializable());
- EXPECT_FALSE(metadata::TypeConverter<views::FocusRing*>::IsSerializable());
+ EXPECT_FALSE(
+ ui::metadata::TypeConverter<views::FocusRing*>::IsSerializable());
- // Test base::Optional type.
- EXPECT_TRUE(
- metadata::TypeConverter<base::Optional<const char*>>::IsSerializable());
- EXPECT_TRUE(metadata::TypeConverter<base::Optional<int>>::IsSerializable());
- EXPECT_FALSE(metadata::TypeConverter<
- base::Optional<views::FocusRing*>>::IsSerializable());
+ // Test absl::optional type.
+ EXPECT_FALSE(ui::metadata::TypeConverter<
+ absl::optional<views::FocusRing*>>::IsSerializable());
}
-
-} // namespace views