Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions packages/core/lib/src/internal/ops/style_vertical_align.dart
Original file line number Diff line number Diff line change
Expand Up @@ -133,11 +133,11 @@ AlignmentGeometry? _tryParseAlignmentGeometry(TextDirection dir, String value) {

PlaceholderAlignment? _tryParsePlaceholderAlignment(String value) {
switch (value) {
case kCssVerticalAlignTop:
case kCssVerticalAlignBottom:
case kCssVerticalAlignSub:
return PlaceholderAlignment.top;
case kCssVerticalAlignSuper:
case kCssVerticalAlignBottom:
case kCssVerticalAlignTop:
return PlaceholderAlignment.bottom;
case kCssVerticalAlignMiddle:
return PlaceholderAlignment.middle;
Expand Down
17 changes: 10 additions & 7 deletions packages/core/test/style_vertical_align_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,13 @@ void main() {
testWidgets('renders top text', (WidgetTester tester) async {
const html = '<span style="vertical-align: top">Foo</span> bar';
final explained = await explain(tester, html);
expect(explained, equals('[RichText:(:[RichText:(:Foo)]@top(: bar))]'));
expect(explained, equals('[RichText:(:[RichText:(:Foo)]@bottom(: bar))]'));
});

testWidgets('renders bottom text', (WidgetTester tester) async {
const html = '<span style="vertical-align: bottom">Foo</span> bar';
final explained = await explain(tester, html);
expect(explained, equals('[RichText:(:[RichText:(:Foo)]@bottom(: bar))]'));
expect(explained, equals('[RichText:(:[RichText:(:Foo)]@top(: bar))]'));
});

testWidgets('renders middle text', (WidgetTester tester) async {
Expand Down Expand Up @@ -91,13 +91,16 @@ void main() {
testWidgets('renders styling', (WidgetTester tester) async {
const html = '<span style="vertical-align: top">F<em>o</em>o</span> bar';
final e = await explain(tester, html);
expect(e, equals('[RichText:(:[RichText:(:F(+i:o)(:o))]@top(: bar))]'));
expect(e, equals('[RichText:(:[RichText:(:F(+i:o)(:o))]@bottom(: bar))]'));
});

testWidgets('renders styling from outside', (WidgetTester tester) async {
const html = '<em><span style="vertical-align: top">Foo</span></em> bar';
final explained = await explain(tester, html);
expect(explained, equals('[RichText:(:[RichText:(+i:Foo)]@top(: bar))]'));
expect(
explained,
equals('[RichText:(:[RichText:(+i:Foo)]@bottom(: bar))]'),
);
});

group('isBlockElement', () {
Expand Down Expand Up @@ -191,14 +194,14 @@ void main() {
const html = 'Foo <span style="display: inline; '
'vertical-align: top">bar</span>';
final explained = await explain(tester, html);
expect(explained, equals('[RichText:(:Foo [RichText:(:bar)]@top)]'));
expect(explained, equals('[RichText:(:Foo [RichText:(:bar)]@bottom)]'));
});

testWidgets('display: inline-block', (WidgetTester tester) async {
const html = 'Foo <span style="display: inline-block; '
'vertical-align: top">bar</span>';
final explained = await explain(tester, html);
expect(explained, equals('[RichText:(:Foo [RichText:(:bar)]@top)]'));
expect(explained, equals('[RichText:(:Foo [RichText:(:bar)]@bottom)]'));
});

testWidgets('display: block', (WidgetTester tester) async {
Expand Down Expand Up @@ -242,7 +245,7 @@ void main() {
testWidgets('renders top image', (WidgetTester tester) async {
const html = '<img src="$imgSrc" style="vertical-align: top" /> foo';
final explained = await imgExplain(tester, html);
expect(explained, equals('[RichText:(:$imgRendered@top(: foo))]'));
expect(explained, equals('[RichText:(:$imgRendered@bottom(: foo))]'));
});

testWidgets('renders after image', (WidgetTester tester) async {
Expand Down
Loading