@@ -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