Skip to content

Commit 48110bb

Browse files
content: add tests for code blocks
1 parent 9eaa9d7 commit 48110bb

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed

test/model/content_test.dart

+18
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,24 @@ void main() {
293293
QuotationNode([ParagraphNode(links: null, nodes: [TextNode('words')])]),
294294
]);
295295

296+
testParse('parse code blocks, unknown span type',
297+
'<div class="codehilite" data-code-language="Dart"><pre>'
298+
'<span></span><code><span class="unknown">class</span>'
299+
'\n</code></pre></div>', [
300+
blockUnimplemented('<div class="codehilite" data-code-language="Dart"><pre>'
301+
'<span></span><code><span class="unknown">class</span>'
302+
'\n</code></pre></div>'),
303+
]);
304+
305+
testParse('parse code blocks, unsupported multiple span classes',
306+
'<div class="codehilite" data-code-language="Dart"><pre>'
307+
'<span></span><code><span class="class1 class2">class</span>'
308+
'\n</code></pre></div>', [
309+
blockUnimplemented('<div class="codehilite" data-code-language="Dart"><pre>'
310+
'<span></span><code><span class="class1 class2">class</span>'
311+
'\n</code></pre></div>'),
312+
]);
313+
296314
testParse('parse code blocks, no language',
297315
// "```\nverb\natim\n```"
298316
'<div class="codehilite"><pre><span></span><code>verb\natim\n</code></pre></div>', const [

test/widgets/content_test.dart

+29
Original file line numberDiff line numberDiff line change
@@ -161,4 +161,33 @@ void main() {
161161
check(tester.takeException()).isA<AssertionError>();
162162
});
163163
});
164+
165+
group("CodeBlock", () {
166+
Future<void> prepareContent(WidgetTester tester, String html) async {
167+
await tester.pumpWidget(MaterialApp(home: BlockContentList(nodes: parseContent(html).nodes)));
168+
await tester.pump();
169+
await tester.pump();
170+
}
171+
172+
testWidgets('with syntax highlighting', (WidgetTester tester) async {
173+
// "```dart\nclass A {}\n```"
174+
await prepareContent(tester,
175+
'<div class="codehilite" data-code-language="Dart"><pre>'
176+
'<span></span><code><span class="kd">class</span><span class="w"> </span>'
177+
'<span class="nc">A</span><span class="w"> </span><span class="p">{}</span>'
178+
'\n</code></pre></div>'
179+
);
180+
181+
expect(find.text('class A {}'), findsOneWidget);
182+
});
183+
184+
testWidgets('without syntax highlighting', (WidgetTester tester) async {
185+
// "```\nverb\natim\n```"
186+
await prepareContent(tester,
187+
'<div class="codehilite"><pre><span></span><code>verb\natim\n</code></pre></div>'
188+
);
189+
190+
expect(find.text('verb\natim'), findsOneWidget);
191+
});
192+
});
164193
}

0 commit comments

Comments
 (0)