From 51c6920c9a9fa6fbe8f493afef24f65be91afd5a Mon Sep 17 00:00:00 2001 From: Dao Hoang Son Date: Wed, 28 Apr 2021 10:16:21 +0700 Subject: [PATCH 1/2] Fix empty TD being skipped -> incorrect table layout --- .../core/lib/src/internal/ops/tag_table.dart | 8 +++---- packages/core/test/tag_table_test.dart | 22 +++++++++++++++---- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/packages/core/lib/src/internal/ops/tag_table.dart b/packages/core/lib/src/internal/ops/tag_table.dart index 6b6c11697..d1179641d 100644 --- a/packages/core/lib/src/internal/ops/tag_table.dart +++ b/packages/core/lib/src/internal/ops/tag_table.dart @@ -274,18 +274,18 @@ class _TagTableRow { op = BuildOp(onChild: onChild); _cellOp = BuildOp( onWidgets: (cellMeta, widgets) { - final column = parent.wf.buildColumnPlaceholder(cellMeta, widgets); - if (column == null) return []; + final child = + parent.wf.buildColumnPlaceholder(cellMeta, widgets) ?? widget0; final attributes = cellMeta.element.attributes; row.cells.add(_TagTableDataCell( cellMeta, - child: column, + child: child, colspan: tryParseIntFromMap(attributes, kAttributeColspan) ?? 1, rowspan: tryParseIntFromMap(attributes, kAttributeRowspan) ?? 1, )); - return [column]; + return [child]; }, priority: BuildOp.kPriorityMax, ); diff --git a/packages/core/test/tag_table_test.dart b/packages/core/test/tag_table_test.dart index ee83f9ef2..e456f77f2 100644 --- a/packages/core/test/tag_table_test.dart +++ b/packages/core/test/tag_table_test.dart @@ -725,10 +725,24 @@ void main() async { expect(explained, equals('[HtmlTable:children=${_richtext('Bar')}]')); }); - testWidgets('#80: empty TD', (WidgetTester tester) async { - final html = '
'; - final explained = await explain(tester, html); - expect(explained, equals('[widget0]')); + testWidgets('empty TD (#497)', (WidgetTester tester) async { + final html = + '
Foo
'; + final explained = await explain(tester, html, useExplainer: false); + expect( + explained, + equals('TshWidget\n' + '└WidgetPlaceholder(BuildMetadata($html))\n' + ' └HtmlTable(borderSpacing: 2.0)\n' + ' ├HtmlTableCell(columnStart: 0, rowStart: 0)\n' + ' │└SizedBox.shrink()\n' + ' └HtmlTableCell(columnStart: 1, rowStart: 0)\n' + ' └WidgetPlaceholder(BuildTree#0 tsb#1(parent=#2):\n' + ' │ "Foo"\n' + ' │)\n' + ' └Align(alignment: centerLeft)\n' + ' └Padding(padding: all(1.0))\n' + ' └RichText(text: "Foo")\n\n')); }); testWidgets('TD display:none', (WidgetTester tester) async { From 7612954033290a3c7f498bc97c10366d4ccf3a47 Mon Sep 17 00:00:00 2001 From: Dao Hoang Son Date: Wed, 28 Apr 2021 10:17:23 +0700 Subject: [PATCH 2/2] Fix typo --- packages/core/test/tag_table_test.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/test/tag_table_test.dart b/packages/core/test/tag_table_test.dart index e456f77f2..7bd0f6191 100644 --- a/packages/core/test/tag_table_test.dart +++ b/packages/core/test/tag_table_test.dart @@ -725,7 +725,7 @@ void main() async { expect(explained, equals('[HtmlTable:children=${_richtext('Bar')}]')); }); - testWidgets('empty TD (#497)', (WidgetTester tester) async { + testWidgets('empty TD (#494)', (WidgetTester tester) async { final html = '
Foo
'; final explained = await explain(tester, html, useExplainer: false);