Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
cfx_cssdeclaration_unittest.cpp
Go to the documentation of this file.
1// Copyright 2017 The PDFium Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "core/fxcrt/css/cfx_cssdeclaration.h"
6
7#include <optional>
8
9#include "testing/gtest/include/gtest/gtest.h"
10
12 std::optional<FX_ARGB> maybe_color;
13
14 // Length value invalid.
15 EXPECT_FALSE(CFX_CSSDeclaration::ParseCSSColor(L"#00"));
16 EXPECT_FALSE(CFX_CSSDeclaration::ParseCSSColor(L"#0000"));
17 EXPECT_FALSE(CFX_CSSDeclaration::ParseCSSColor(L"#0000000"));
18
19 // Invalid characters
20 maybe_color = CFX_CSSDeclaration::ParseCSSColor(L"#zxytlm");
21 ASSERT_TRUE(maybe_color.has_value());
22 EXPECT_EQ(0, FXARGB_R(maybe_color.value()));
23 EXPECT_EQ(0, FXARGB_G(maybe_color.value()));
24 EXPECT_EQ(0, FXARGB_B(maybe_color.value()));
25
26 maybe_color = CFX_CSSDeclaration::ParseCSSColor(L"#000");
27 ASSERT_TRUE(maybe_color.has_value());
28 EXPECT_EQ(0, FXARGB_R(maybe_color.value()));
29 EXPECT_EQ(0, FXARGB_G(maybe_color.value()));
30 EXPECT_EQ(0, FXARGB_B(maybe_color.value()));
31
32 maybe_color = CFX_CSSDeclaration::ParseCSSColor(L"#FFF");
33 ASSERT_TRUE(maybe_color.has_value());
34 EXPECT_EQ(255, FXARGB_R(maybe_color.value()));
35 EXPECT_EQ(255, FXARGB_G(maybe_color.value()));
36 EXPECT_EQ(255, FXARGB_B(maybe_color.value()));
37
38 maybe_color = CFX_CSSDeclaration::ParseCSSColor(L"#F0F0F0");
39 ASSERT_TRUE(maybe_color.has_value());
40 EXPECT_EQ(240, FXARGB_R(maybe_color.value()));
41 EXPECT_EQ(240, FXARGB_G(maybe_color.value()));
42 EXPECT_EQ(240, FXARGB_B(maybe_color.value()));
43
44 // Upper and lower case characters.
45 maybe_color = CFX_CSSDeclaration::ParseCSSColor(L"#1b2F3c");
46 ASSERT_TRUE(maybe_color.has_value());
47 EXPECT_EQ(27, FXARGB_R(maybe_color.value()));
48 EXPECT_EQ(47, FXARGB_G(maybe_color.value()));
49 EXPECT_EQ(60, FXARGB_B(maybe_color.value()));
50}
51
53 std::optional<FX_ARGB> maybe_color;
54
55 // Invalid input for rgb() syntax.
56 EXPECT_FALSE(CFX_CSSDeclaration::ParseCSSColor(L"blahblahblah"));
57
58 maybe_color = CFX_CSSDeclaration::ParseCSSColor(L"rgb(0, 0, 0)");
59 ASSERT_TRUE(maybe_color.has_value());
60 EXPECT_EQ(0, FXARGB_R(maybe_color.value()));
61 EXPECT_EQ(0, FXARGB_G(maybe_color.value()));
62 EXPECT_EQ(0, FXARGB_B(maybe_color.value()));
63
64 maybe_color = CFX_CSSDeclaration::ParseCSSColor(L"rgb(128,255,48)");
65 ASSERT_TRUE(maybe_color.has_value());
66 EXPECT_EQ(128, FXARGB_R(maybe_color.value()));
67 EXPECT_EQ(255, FXARGB_G(maybe_color.value()));
68 EXPECT_EQ(48, FXARGB_B(maybe_color.value()));
69}
static std::optional< FX_ARGB > ParseCSSColor(WideStringView value)
TEST(FXCRYPT, MD5GenerateEmtpyData)
uint32_t FX_ARGB
Definition fx_dib.h:36
#define FXARGB_B(argb)
Definition fx_dib.h:199
#define FXARGB_G(argb)
Definition fx_dib.h:198
#define FXARGB_R(argb)
Definition fx_dib.h:197