mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-08-23 17:13:54 +08:00
72 lines
1.4 KiB
Dart
72 lines
1.4 KiB
Dart
/*
|
|
* SPDX-FileCopyrightText: 2019-2021 Vishesh Handa <me@vhanda.in>
|
|
*
|
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
*/
|
|
|
|
import 'dart:convert';
|
|
|
|
import 'package:function_types/function_types.dart' as fn;
|
|
import 'package:markdown/markdown.dart' as md;
|
|
import 'package:test/test.dart';
|
|
|
|
import 'package:gitjournal/core/processors/text_visitor.dart';
|
|
import '../lib.dart';
|
|
|
|
void main() {
|
|
setUpAll(gjSetupAllTests);
|
|
|
|
void _visit(String body, fn.Func1<String, void> textCallback) {
|
|
final doc = md.Document(
|
|
encodeHtml: false,
|
|
extensionSet: md.ExtensionSet.gitHubFlavored,
|
|
);
|
|
|
|
var lines = LineSplitter.split(body).toList();
|
|
var nodes = doc.parseLines(lines);
|
|
|
|
TextVisitor(textCallback).visit(nodes);
|
|
}
|
|
|
|
test('Simple Test', () {
|
|
var body = "Hello *Hi* **How**";
|
|
|
|
var result = "";
|
|
void callback(String content) {
|
|
result += "$content-";
|
|
}
|
|
|
|
_visit(body, callback);
|
|
expect(result, "Hello -Hi- -How-");
|
|
});
|
|
|
|
test('Inline code block', () {
|
|
var body = "Hello`foo`";
|
|
|
|
var result = "";
|
|
void callback(String content) {
|
|
result += "$content-";
|
|
}
|
|
|
|
_visit(body, callback);
|
|
expect(result, "Hello-");
|
|
});
|
|
|
|
test('Big code block', () {
|
|
var body = """Hi
|
|
```
|
|
foo
|
|
```
|
|
Done
|
|
""";
|
|
|
|
var result = "";
|
|
void callback(String content) {
|
|
result += "$content-";
|
|
}
|
|
|
|
_visit(body, callback);
|
|
expect(result, "Hi-Done-");
|
|
});
|
|
}
|