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_cssvaluelistparser_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// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7#include "core/fxcrt/css/cfx_cssvaluelistparser.h"
8
9#include <memory>
10
11#include "core/fxcrt/widestring.h"
12#include "testing/gtest/include/gtest/gtest.h"
13
16 const wchar_t* start;
17 size_t len;
18
19 auto parser = std::make_unique<CFX_CSSValueListParser>(L"#abc", 4, L' ');
20 EXPECT_TRUE(parser->NextValue(&type, &start, &len));
21 EXPECT_EQ(CFX_CSSValue::PrimitiveType::kRGB, type);
22 EXPECT_EQ(L"#abc", WideString(start, len));
23 EXPECT_FALSE(parser->NextValue(&type, &start, &len));
24
25 parser = std::make_unique<CFX_CSSValueListParser>(L"#abcdef", 7, L' ');
26 EXPECT_TRUE(parser->NextValue(&type, &start, &len));
27 EXPECT_EQ(CFX_CSSValue::PrimitiveType::kRGB, type);
28 EXPECT_EQ(L"#abcdef", WideString(start, len));
29 EXPECT_FALSE(parser->NextValue(&type, &start, &len));
30
31 parser =
32 std::make_unique<CFX_CSSValueListParser>(L"rgb(1, 255, 4)", 14, L' ');
33 EXPECT_TRUE(parser->NextValue(&type, &start, &len));
34 EXPECT_EQ(CFX_CSSValue::PrimitiveType::kRGB, type);
35 EXPECT_EQ(L"rgb(1, 255, 4)", WideString(start, len));
36
37 parser = std::make_unique<CFX_CSSValueListParser>(L"#abcdefghij", 11, L' ');
38 EXPECT_TRUE(parser->NextValue(&type, &start, &len));
40 EXPECT_EQ(L"#abcdefghij", WideString(start, len));
41 EXPECT_FALSE(parser->NextValue(&type, &start, &len));
42}
43
46 const wchar_t* start;
47 size_t len;
48
49 auto parser = std::make_unique<CFX_CSSValueListParser>(L"1234", 4, L' ');
50 EXPECT_TRUE(parser->NextValue(&type, &start, &len));
52 EXPECT_EQ(L"1234", WideString(start, len));
53
54 parser = std::make_unique<CFX_CSSValueListParser>(L"-1234", 5, L' ');
55 EXPECT_TRUE(parser->NextValue(&type, &start, &len));
57 EXPECT_EQ(L"-1234", WideString(start, len));
58
59 parser = std::make_unique<CFX_CSSValueListParser>(L"+1234", 5, L' ');
60 EXPECT_TRUE(parser->NextValue(&type, &start, &len));
62 EXPECT_EQ(L"+1234", WideString(start, len));
63
64 parser = std::make_unique<CFX_CSSValueListParser>(L".1234", 5, L' ');
65 EXPECT_TRUE(parser->NextValue(&type, &start, &len));
67 EXPECT_EQ(L".1234", WideString(start, len));
68
69 parser = std::make_unique<CFX_CSSValueListParser>(L"4321.1234", 9, L' ');
70 EXPECT_TRUE(parser->NextValue(&type, &start, &len));
72 EXPECT_EQ(L"4321.1234", WideString(start, len));
73
74 // TODO(dsinclair): These should probably fail but currently don't.
75 parser = std::make_unique<CFX_CSSValueListParser>(L"4321.12.34", 10, L' ');
76 EXPECT_TRUE(parser->NextValue(&type, &start, &len));
78 EXPECT_EQ(L"4321.12.34", WideString(start, len));
79
80 parser = std::make_unique<CFX_CSSValueListParser>(L"43a1.12.34", 10, L' ');
81 EXPECT_TRUE(parser->NextValue(&type, &start, &len));
83 EXPECT_EQ(L"43a1.12.34", WideString(start, len));
84}
85
88 const wchar_t* start;
89 size_t len;
90
91 auto parser = std::make_unique<CFX_CSSValueListParser>(L"'string'", 8, L' ');
92 EXPECT_TRUE(parser->NextValue(&type, &start, &len));
94 EXPECT_EQ(L"string", WideString(start, len));
95
96 parser =
97 std::make_unique<CFX_CSSValueListParser>(L"\"another string\"", 16, L' ');
98 EXPECT_TRUE(parser->NextValue(&type, &start, &len));
100 EXPECT_EQ(L"another string", WideString(start, len));
101
102 parser = std::make_unique<CFX_CSSValueListParser>(L"standalone", 10, L' ');
103 EXPECT_TRUE(parser->NextValue(&type, &start, &len));
105 EXPECT_EQ(L"standalone", WideString(start, len));
106}
107
110 const wchar_t* start;
111 size_t len;
112
113 auto parser = std::make_unique<CFX_CSSValueListParser>(L"1, 2, 3", 7, L',');
114 EXPECT_TRUE(parser->NextValue(&type, &start, &len));
116 EXPECT_EQ(L"1", WideString(start, len));
117
118 EXPECT_TRUE(parser->NextValue(&type, &start, &len));
120 EXPECT_EQ(L"2", WideString(start, len));
121
122 EXPECT_TRUE(parser->NextValue(&type, &start, &len));
124 EXPECT_EQ(L"3", WideString(start, len));
125
126 EXPECT_FALSE(parser->NextValue(&type, &start, &len));
127
128 parser = std::make_unique<CFX_CSSValueListParser>(L"'str', rgb(1, 2, 3), 4",
129 22, L',');
130 EXPECT_TRUE(parser->NextValue(&type, &start, &len));
132 EXPECT_EQ(L"str", WideString(start, len));
133
134 EXPECT_TRUE(parser->NextValue(&type, &start, &len));
135 EXPECT_EQ(CFX_CSSValue::PrimitiveType::kRGB, type);
136 EXPECT_EQ(L"rgb(1, 2, 3)", WideString(start, len));
137
138 EXPECT_TRUE(parser->NextValue(&type, &start, &len));
140 EXPECT_EQ(L"4", WideString(start, len));
141}
TEST(FXCRYPT, MD5GenerateEmtpyData)