blob: a646c21aa95a86fe540a73d95c62a8e43149cc1b [file] [log] [blame]
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter/foundation.dart';
import '../flutter_test_alternative.dart';
void main() {
test('LicenseEntryWithLineBreaks - most cases', () {
// There's some trailing spaces in this string.
// To avoid IDEs stripping them, I've escaped them as \u0020.
final List<LicenseParagraph> paragraphs = const LicenseEntryWithLineBreaks(null, '''
A
A
A
B
B
B
C
C
C
D
D
D
E
E
F
G
G
G
[H
H
H]
\u0020\u0020
I\u000cJ
\u000cK
K
\u000c
L
L L
L L
L L
L L
L L
M
M\u0020\u0020\u0020
M\u0020\u0020\u0020\u0020
N
O
O
P
QQQ
RR RRR RRRR RRRRR
R
S
T
U
V
W
X
\u0020\u0020\u0020\u0020\u0020\u0020
Y''').paragraphs.toList();
int index = 0;
expect(paragraphs[index].text, 'A A A');
expect(paragraphs[index].indent, 0);
index += 1;
expect(paragraphs[index].text, 'B B B');
expect(paragraphs[index].indent, 0);
index += 1;
expect(paragraphs[index].text, 'C C C');
expect(paragraphs[index].indent, 1);
index += 1;
expect(paragraphs[index].text, 'D D D');
expect(paragraphs[index].indent, LicenseParagraph.centeredIndent);
index += 1;
expect(paragraphs[index].text, 'E E');
expect(paragraphs[index].indent, 0);
index += 1;
expect(paragraphs[index].text, 'F');
expect(paragraphs[index].indent, 0);
index += 1;
expect(paragraphs[index].text, 'G G G');
expect(paragraphs[index].indent, 0);
index += 1;
expect(paragraphs[index].text, '[H H H]');
expect(paragraphs[index].indent, 0);
index += 1;
expect(paragraphs[index].text, 'I');
expect(paragraphs[index].indent, 0);
index += 1;
expect(paragraphs[index].text, 'J');
expect(paragraphs[index].indent, 0);
index += 1;
expect(paragraphs[index].text, 'K K');
expect(paragraphs[index].indent, 0);
index += 1;
expect(paragraphs[index].text, 'L L L L L L L L L L L');
expect(paragraphs[index].indent, 0);
index += 1;
expect(paragraphs[index].text, 'M M M ');
expect(paragraphs[index].indent, 1);
index += 1;
expect(paragraphs[index].text, 'N');
expect(paragraphs[index].indent, 0);
index += 1;
expect(paragraphs[index].text, 'O O');
expect(paragraphs[index].indent, 0);
index += 1;
expect(paragraphs[index].text, 'P');
expect(paragraphs[index].indent, 0);
index += 1;
expect(paragraphs[index].text, 'QQQ');
expect(paragraphs[index].indent, 0);
index += 1;
expect(paragraphs[index].text, 'RR RRR RRRR RRRRR R');
expect(paragraphs[index].indent, 0);
index += 1;
expect(paragraphs[index].text, 'S');
expect(paragraphs[index].indent, 0);
index += 1;
expect(paragraphs[index].text, 'T');
expect(paragraphs[index].indent, 1);
index += 1;
expect(paragraphs[index].text, 'U');
expect(paragraphs[index].indent, 2);
index += 1;
expect(paragraphs[index].text, 'V');
expect(paragraphs[index].indent, 3);
index += 1;
expect(paragraphs[index].text, 'W');
expect(paragraphs[index].indent, 2);
index += 1;
expect(paragraphs[index].text, 'X');
expect(paragraphs[index].indent, 2);
index += 1;
expect(paragraphs[index].text, 'Y');
expect(paragraphs[index].indent, 2);
index += 1;
expect(paragraphs, hasLength(index));
});
test('LicenseEntryWithLineBreaks - leading and trailing whitespace', () {
expect(const LicenseEntryWithLineBreaks(null, ' \n\n ').paragraphs.toList(), isEmpty);
expect(const LicenseEntryWithLineBreaks(null, ' \r\n\r\n ').paragraphs.toList(), isEmpty);
List<LicenseParagraph> paragraphs;
paragraphs = const LicenseEntryWithLineBreaks(null, ' \nA\n ').paragraphs.toList();
expect(paragraphs[0].text, 'A');
expect(paragraphs[0].indent, 0);
expect(paragraphs, hasLength(1));
paragraphs = const LicenseEntryWithLineBreaks(null, '\n\n\nA\n\n\n').paragraphs.toList();
expect(paragraphs[0].text, 'A');
expect(paragraphs[0].indent, 0);
expect(paragraphs, hasLength(1));
});
test('LicenseRegistry', () async {
expect(await LicenseRegistry.licenses.toList(), isEmpty);
LicenseRegistry.addLicense(() async* {
yield const LicenseEntryWithLineBreaks(null, 'A');
yield const LicenseEntryWithLineBreaks(null, 'B');
});
LicenseRegistry.addLicense(() async* {
yield const LicenseEntryWithLineBreaks(null, 'C');
yield const LicenseEntryWithLineBreaks(null, 'D');
});
expect(await LicenseRegistry.licenses.toList(), hasLength(4));
final List<LicenseEntry> licenses = await LicenseRegistry.licenses.toList();
expect(licenses, hasLength(4));
expect(licenses[0].paragraphs.single.text, 'A');
expect(licenses[1].paragraphs.single.text, 'B');
expect(licenses[2].paragraphs.single.text, 'C');
expect(licenses[3].paragraphs.single.text, 'D');
});
}