Skip to content

Commit d493b5b

Browse files
committed
tests: add test cases for default and custom table class names
1 parent 8b93fc4 commit d493b5b

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

tests/components/bbcode/TableBBCode.cpp

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,27 @@ TEST_CASE("TableBBCode")
152152
REQUIRE( text == "<table><tr><td style=\"border: 1px solid #000000; border-collapse: collapse;\">Content goes here.</td></tr></table>" );
153153
}
154154

155+
SECTION("cell with border using custom cell class")
156+
{
157+
const TableClasses classes(true, TableClasses::DefaultTableClass, TableClasses::DefaultRowClass, "my_cell_class_name");
158+
const TableBBCode code("table", classes);
159+
160+
std::string text = "[table][tr][td=\"class: grid\"]Content goes here.[/td][/tr][/table]";
161+
code.applyToText(text);
162+
REQUIRE( text == "<table><tr><td class=\"my_cell_class_name\">Content goes here.</td></tr></table>" );
163+
}
164+
165+
SECTION("cell with border using default cell class")
166+
{
167+
const TableClasses classes(true, TableClasses::DefaultTableClass, TableClasses::DefaultRowClass, TableClasses::DefaultCellClass);
168+
const TableBBCode code("table", classes);
169+
170+
std::string text = "[table][tr][td=\"class: grid\"]Content goes here.[/td][/tr][/table]";
171+
code.applyToText(text);
172+
const std::string expected = "<table><tr><td class=\"" + TableClasses::DefaultCellClass + "\">Content goes here.</td></tr></table>";
173+
REQUIRE( text == expected );
174+
}
175+
155176
SECTION("row with border - border style gets applied to child elements, too")
156177
{
157178
std::string text = "[table][tr=\"class: grid\"][td]Content goes here.[/td][/tr][/table]";
@@ -162,6 +183,32 @@ TEST_CASE("TableBBCode")
162183
REQUIRE( text == expected );
163184
}
164185

186+
SECTION("row with border using custom row and cell class")
187+
{
188+
const TableClasses classes(true, TableClasses::DefaultTableClass, "my_row_class_name", "my_cell_class_name");
189+
const TableBBCode code("table", classes);
190+
191+
std::string text = "[table][tr=\"class: grid\"][td]Content goes here.[/td][/tr][/table]";
192+
code.applyToText(text);
193+
const std::string expected = "<table>"
194+
+ std::string("<tr class=\"my_row_class_name\">")
195+
+ "<td class=\"my_cell_class_name\">Content goes here.</td></tr></table>";
196+
REQUIRE( text == expected );
197+
}
198+
199+
SECTION("row with border using default row and cell class")
200+
{
201+
const TableClasses classes(true, TableClasses::DefaultTableClass, TableClasses::DefaultRowClass, TableClasses::DefaultCellClass);
202+
const TableBBCode code("table", classes);
203+
204+
std::string text = "[table][tr=\"class: grid\"][td]Content goes here.[/td][/tr][/table]";
205+
code.applyToText(text);
206+
const std::string expected = "<table>"
207+
+ std::string("<tr class=\"") + TableClasses::DefaultRowClass + "\">"
208+
+ "<td class=\"" + TableClasses::DefaultCellClass + "\">Content goes here.</td></tr></table>";
209+
REQUIRE( text == expected );
210+
}
211+
165212
SECTION("table with border - border style gets applied to child elements, too")
166213
{
167214
std::string text = "[table=\"class: grid\"][tr][td]Content goes here.[/td][/tr][/table]";
@@ -172,6 +219,32 @@ TEST_CASE("TableBBCode")
172219
REQUIRE( text == expected );
173220
}
174221

222+
SECTION("table with border using custom table, row and cell class")
223+
{
224+
const TableClasses classes(true, "my_table_class_name", "my_row_class_name", "my_cell_class_name");
225+
const TableBBCode code("table", classes);
226+
227+
std::string text = "[table=\"class: grid\"][tr][td]Content goes here.[/td][/tr][/table]";
228+
code.applyToText(text);
229+
const std::string expected = "<table class=\"my_table_class_name\">"
230+
+ std::string("<tr class=\"my_row_class_name\">")
231+
+ "<td class=\"my_cell_class_name\">Content goes here.</td></tr></table>";
232+
REQUIRE( text == expected );
233+
}
234+
235+
SECTION("table with border using default table, row and cell class")
236+
{
237+
const TableClasses classes(true, TableClasses::DefaultTableClass, TableClasses::DefaultRowClass, TableClasses::DefaultCellClass);
238+
const TableBBCode code("table", classes);
239+
240+
std::string text = "[table=\"class: grid\"][tr][td]Content goes here.[/td][/tr][/table]";
241+
code.applyToText(text);
242+
const std::string expected = "<table class=\"" + TableClasses::DefaultTableClass + "\">"
243+
+ std::string("<tr class=\"") + TableClasses::DefaultRowClass + "\">"
244+
+ "<td class=\"" + TableClasses::DefaultCellClass + "\">Content goes here.</td></tr></table>";
245+
REQUIRE( text == expected );
246+
}
247+
175248
SECTION("nested tables, one cell only for each")
176249
{
177250
std::string text = "[table][tr][td]content[table][tr][td]inner text[/td][/tr][/table]more content[/td][/tr][/table]";

0 commit comments

Comments
 (0)