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_csssyntaxparser_unittest.cpp
Go to the documentation of this file.
1// Copyright 2020 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_csssyntaxparser.h"
6
7#include "testing/gtest/include/gtest/gtest.h"
8
9// These tests cover the "declaration only" mode of the CSS Syntax Parser
10// (i.e. inline style="" attribute). The cfx_cssstylesheet_unitttest.cpp
11// file covers the full-up selector { ... } parsing.
12
14 const wchar_t* input = L"";
15 CFX_CSSSyntaxParser parser(input);
19}
20
22 const wchar_t* input = L" \n\r\t";
23 CFX_CSSSyntaxParser parser(input);
27}
28
36
38 const wchar_t* input = L"foo: ";
39 CFX_CSSSyntaxParser parser(input);
42 EXPECT_EQ(L"foo", parser.GetCurrentString());
44}
45
47 const wchar_t* input = L"foo:bar";
48 CFX_CSSSyntaxParser parser(input);
51 EXPECT_EQ(L"foo", parser.GetCurrentString());
53 parser.DoSyntaxParse());
54 EXPECT_EQ(L"bar", parser.GetCurrentString());
56}
57
59 const wchar_t* input = L"foo:bar;";
60 CFX_CSSSyntaxParser parser(input);
63 EXPECT_EQ(L"foo", parser.GetCurrentString());
65 parser.DoSyntaxParse());
66 EXPECT_EQ(L"bar", parser.GetCurrentString());
68}
69
71 const wchar_t* input = L"foo:bar; baz";
72 CFX_CSSSyntaxParser parser(input);
75 EXPECT_EQ(L"foo", parser.GetCurrentString());
77 parser.DoSyntaxParse());
78 EXPECT_EQ(L"bar", parser.GetCurrentString());
80}
81
83 const wchar_t* input = L"foo:bar; baz: ";
84 CFX_CSSSyntaxParser parser(input);
87 EXPECT_EQ(L"foo", parser.GetCurrentString());
89 parser.DoSyntaxParse());
90 EXPECT_EQ(L"bar", parser.GetCurrentString());
92 EXPECT_EQ(L"baz", parser.GetCurrentString());
94}
95
97 const wchar_t* input = L"foo : bar; baz : bam";
98 CFX_CSSSyntaxParser parser(input);
101 EXPECT_EQ(L"foo", parser.GetCurrentString());
103 parser.DoSyntaxParse());
104 EXPECT_EQ(L"bar", parser.GetCurrentString());
106 EXPECT_EQ(L"baz", parser.GetCurrentString());
108 parser.DoSyntaxParse());
109 EXPECT_EQ(L"bam", parser.GetCurrentString());
111}
112
114 const wchar_t* input = L"foo:bar;baz:bam;";
115 CFX_CSSSyntaxParser parser(input);
118 EXPECT_EQ(L"foo", parser.GetCurrentString());
120 parser.DoSyntaxParse());
121 EXPECT_EQ(L"bar", parser.GetCurrentString());
123 EXPECT_EQ(L"baz", parser.GetCurrentString());
125 parser.DoSyntaxParse());
126 EXPECT_EQ(L"bam", parser.GetCurrentString());
128}
129
131 const wchar_t* input = L"{a:3}";
132 CFX_CSSSyntaxParser parser(input);
134
135 // TODO(tsepez): these should fail on stray punctuation.
137 EXPECT_EQ(L"{a", parser.GetCurrentString());
139 parser.DoSyntaxParse());
140 EXPECT_EQ(L"3", parser.GetCurrentString());
142}
143
145 const wchar_t* input = L"foo {a:3}";
146 CFX_CSSSyntaxParser parser(input);
148
149 // TODO(tsepez): these should fail on stray punctuation.
151 EXPECT_EQ(L"foo {a", parser.GetCurrentString());
153 parser.DoSyntaxParse());
154 EXPECT_EQ(L"3", parser.GetCurrentString());
156}
157
159 const wchar_t* input = L"foo: bar {a:3}";
160 CFX_CSSSyntaxParser parser(input);
162
163 // TODO(tsepez): these should fail on stray punctuation.
165 EXPECT_EQ(L"foo", parser.GetCurrentString());
167 parser.DoSyntaxParse());
168 EXPECT_EQ(L"bar {a:3", parser.GetCurrentString());
170}
171
173 const wchar_t* input = L"foo: bar; {a:3}";
174 CFX_CSSSyntaxParser parser(input);
177 EXPECT_EQ(L"foo", parser.GetCurrentString());
179 parser.DoSyntaxParse());
180 EXPECT_EQ(L"bar", parser.GetCurrentString());
181
182 // TODO(tsepez): these should fail on stray punctuation.
184 EXPECT_EQ(L"{a", parser.GetCurrentString());
186 parser.DoSyntaxParse());
187 EXPECT_EQ(L"3", parser.GetCurrentString());
189}
190
192 const wchar_t* input = L"} foo:bar";
193 CFX_CSSSyntaxParser parser(input);
196}
197
199 const wchar_t* input = L"foo}:bar";
200 CFX_CSSSyntaxParser parser(input);
203}
204
206 const wchar_t* input = L"foo:bar}";
207 CFX_CSSSyntaxParser parser(input);
210 EXPECT_EQ(L"foo", parser.GetCurrentString());
212 parser.DoSyntaxParse());
213 EXPECT_EQ(L"bar", parser.GetCurrentString());
215}
216
218 const wchar_t* input = L"foo:bar;}";
219 CFX_CSSSyntaxParser parser(input);
222 EXPECT_EQ(L"foo", parser.GetCurrentString());
224 parser.DoSyntaxParse());
225 EXPECT_EQ(L"bar", parser.GetCurrentString());
227}
WideStringView GetCurrentString() const
TEST(FXCRYPT, MD5GenerateEmtpyData)