Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
aa07d147
Commit
aa07d147
authored
Mar 04, 2017
by
Chris Bracken
Committed by
GitHub
Mar 04, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Declare locals final where not reassigned (flutter_markdown) (#8568)
parent
895f3e63
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
49 additions
and
49 deletions
+49
-49
markdown_raw.dart
packages/flutter_markdown/lib/src/markdown_raw.dart
+29
-29
flutter_markdown_test.dart
packages/flutter_markdown/test/flutter_markdown_test.dart
+20
-20
No files found.
packages/flutter_markdown/lib/src/markdown_raw.dart
View file @
aa07d147
...
@@ -157,17 +157,17 @@ class _MarkdownBodyRawState extends State<MarkdownBodyRaw> {
...
@@ -157,17 +157,17 @@ class _MarkdownBodyRawState extends State<MarkdownBodyRaw> {
}
}
void
_buildMarkdownCache
()
{
void
_buildMarkdownCache
()
{
MarkdownStyleRaw
markdownStyle
=
config
.
markdownStyle
??
config
.
createDefaultStyle
(
context
);
final
MarkdownStyleRaw
markdownStyle
=
config
.
markdownStyle
??
config
.
createDefaultStyle
(
context
);
SyntaxHighlighter
syntaxHighlighter
=
config
.
syntaxHighlighter
??
new
_DefaultSyntaxHighlighter
(
markdownStyle
.
code
);
final
SyntaxHighlighter
syntaxHighlighter
=
config
.
syntaxHighlighter
??
new
_DefaultSyntaxHighlighter
(
markdownStyle
.
code
);
_linkHandler
?.
dispose
();
_linkHandler
?.
dispose
();
_linkHandler
=
new
_LinkHandler
(
config
.
onTapLink
);
_linkHandler
=
new
_LinkHandler
(
config
.
onTapLink
);
// TODO: This can be optimized by doing the split and removing \r at the same time
// TODO: This can be optimized by doing the split and removing \r at the same time
List
<
String
>
lines
=
config
.
data
.
replaceAll
(
'
\r\n
'
,
'
\n
'
).
split
(
'
\n
'
);
final
List
<
String
>
lines
=
config
.
data
.
replaceAll
(
'
\r\n
'
,
'
\n
'
).
split
(
'
\n
'
);
md
.
Document
document
=
new
md
.
Document
();
final
md
.
Document
document
=
new
md
.
Document
();
_Renderer
renderer
=
new
_Renderer
();
final
_Renderer
renderer
=
new
_Renderer
();
_cachedBlocks
=
renderer
.
render
(
document
.
parseLines
(
lines
),
markdownStyle
,
syntaxHighlighter
,
_linkHandler
);
_cachedBlocks
=
renderer
.
render
(
document
.
parseLines
(
lines
),
markdownStyle
,
syntaxHighlighter
,
_linkHandler
);
}
}
...
@@ -176,7 +176,7 @@ class _MarkdownBodyRawState extends State<MarkdownBodyRaw> {
...
@@ -176,7 +176,7 @@ class _MarkdownBodyRawState extends State<MarkdownBodyRaw> {
@override
@override
Widget
build
(
BuildContext
context
)
{
Widget
build
(
BuildContext
context
)
{
List
<
Widget
>
blocks
=
<
Widget
>[];
final
List
<
Widget
>
blocks
=
<
Widget
>[];
for
(
_Block
block
in
_cachedBlocks
)
{
for
(
_Block
block
in
_cachedBlocks
)
{
blocks
.
add
(
block
.
build
(
context
));
blocks
.
add
(
block
.
build
(
context
));
}
}
...
@@ -220,8 +220,8 @@ class _Renderer implements md.NodeVisitor {
...
@@ -220,8 +220,8 @@ class _Renderer implements md.NodeVisitor {
@override
@override
void
visitText
(
md
.
Text
text
)
{
void
visitText
(
md
.
Text
text
)
{
if
(
_currentBlock
!=
null
)
{
// ignore if no corresponding block
if
(
_currentBlock
!=
null
)
{
// ignore if no corresponding block
_MarkdownNodeList
topList
=
_currentBlock
.
stack
.
last
;
final
_MarkdownNodeList
topList
=
_currentBlock
.
stack
.
last
;
List
<
_MarkdownNode
>
top
=
topList
.
list
;
final
List
<
_MarkdownNode
>
top
=
topList
.
list
;
if
(
_currentBlock
.
tag
==
'pre'
)
if
(
_currentBlock
.
tag
==
'pre'
)
top
.
add
(
top
.
add
(
...
@@ -243,7 +243,7 @@ class _Renderer implements md.NodeVisitor {
...
@@ -243,7 +243,7 @@ class _Renderer implements md.NodeVisitor {
else
else
blockList
=
_currentBlock
.
subBlocks
;
blockList
=
_currentBlock
.
subBlocks
;
_Block
newBlock
=
new
_Block
(
element
.
tag
,
element
.
attributes
,
_markdownStyle
,
new
List
<
String
>.
from
(
_listIndents
),
blockList
.
length
);
final
_Block
newBlock
=
new
_Block
(
element
.
tag
,
element
.
attributes
,
_markdownStyle
,
new
List
<
String
>.
from
(
_listIndents
),
blockList
.
length
);
blockList
.
add
(
newBlock
);
blockList
.
add
(
newBlock
);
}
else
{
}
else
{
_LinkInfo
linkInfo
;
_LinkInfo
linkInfo
;
...
@@ -251,8 +251,8 @@ class _Renderer implements md.NodeVisitor {
...
@@ -251,8 +251,8 @@ class _Renderer implements md.NodeVisitor {
linkInfo
=
_linkHandler
.
createLinkInfo
(
element
.
attributes
[
'href'
]);
linkInfo
=
_linkHandler
.
createLinkInfo
(
element
.
attributes
[
'href'
]);
}
}
TextStyle
style
=
_markdownStyle
.
styles
[
element
.
tag
]
??
const
TextStyle
();
final
TextStyle
style
=
_markdownStyle
.
styles
[
element
.
tag
]
??
const
TextStyle
();
List
<
_MarkdownNode
>
styleElement
=
<
_MarkdownNode
>[
new
_MarkdownNodeTextStyle
(
style
,
linkInfo
)];
final
List
<
_MarkdownNode
>
styleElement
=
<
_MarkdownNode
>[
new
_MarkdownNodeTextStyle
(
style
,
linkInfo
)];
_currentBlock
.
stack
.
add
(
new
_MarkdownNodeList
(
styleElement
));
_currentBlock
.
stack
.
add
(
new
_MarkdownNodeList
(
styleElement
));
}
}
return
true
;
return
true
;
...
@@ -265,7 +265,7 @@ class _Renderer implements md.NodeVisitor {
...
@@ -265,7 +265,7 @@ class _Renderer implements md.NodeVisitor {
if
(
_isBlockTag
(
element
.
tag
))
{
if
(
_isBlockTag
(
element
.
tag
))
{
if
(
_currentBlock
.
stack
.
isNotEmpty
)
{
if
(
_currentBlock
.
stack
.
isNotEmpty
)
{
_MarkdownNodeList
stackList
=
_currentBlock
.
stack
.
first
;
final
_MarkdownNodeList
stackList
=
_currentBlock
.
stack
.
first
;
_currentBlock
.
stack
=
stackList
.
list
;
_currentBlock
.
stack
=
stackList
.
list
;
_currentBlock
.
open
=
false
;
_currentBlock
.
open
=
false
;
}
else
{
}
else
{
...
@@ -273,12 +273,12 @@ class _Renderer implements md.NodeVisitor {
...
@@ -273,12 +273,12 @@ class _Renderer implements md.NodeVisitor {
}
}
}
else
{
}
else
{
if
(
_currentBlock
.
stack
.
length
>
1
)
{
if
(
_currentBlock
.
stack
.
length
>
1
)
{
_MarkdownNodeList
poppedList
=
_currentBlock
.
stack
.
last
;
final
_MarkdownNodeList
poppedList
=
_currentBlock
.
stack
.
last
;
List
<
_MarkdownNode
>
popped
=
poppedList
.
list
;
final
List
<
_MarkdownNode
>
popped
=
poppedList
.
list
;
_currentBlock
.
stack
.
removeLast
();
_currentBlock
.
stack
.
removeLast
();
_MarkdownNodeList
topList
=
_currentBlock
.
stack
.
last
;
final
_MarkdownNodeList
topList
=
_currentBlock
.
stack
.
last
;
List
<
_MarkdownNode
>
top
=
topList
.
list
;
final
List
<
_MarkdownNode
>
top
=
topList
.
list
;
top
.
add
(
new
_MarkdownNodeList
(
popped
));
top
.
add
(
new
_MarkdownNodeList
(
popped
));
}
}
}
}
...
@@ -304,7 +304,7 @@ class _Renderer implements md.NodeVisitor {
...
@@ -304,7 +304,7 @@ class _Renderer implements md.NodeVisitor {
if
(!
blocks
.
last
.
open
)
if
(!
blocks
.
last
.
open
)
return
null
;
return
null
;
_Block
childBlock
=
_currentBlockInList
(
blocks
.
last
.
subBlocks
);
final
_Block
childBlock
=
_currentBlockInList
(
blocks
.
last
.
subBlocks
);
if
(
childBlock
!=
null
)
if
(
childBlock
!=
null
)
return
childBlock
;
return
childBlock
;
...
@@ -377,7 +377,7 @@ class _Block {
...
@@ -377,7 +377,7 @@ class _Block {
Widget
contents
;
Widget
contents
;
if
(
subBlocks
.
isNotEmpty
)
{
if
(
subBlocks
.
isNotEmpty
)
{
List
<
Widget
>
subWidgets
=
<
Widget
>[];
final
List
<
Widget
>
subWidgets
=
<
Widget
>[];
for
(
_Block
subBlock
in
subBlocks
)
{
for
(
_Block
subBlock
in
subBlocks
)
{
subWidgets
.
add
(
subBlock
.
build
(
context
));
subWidgets
.
add
(
subBlock
.
build
(
context
));
}
}
...
@@ -387,7 +387,7 @@ class _Block {
...
@@ -387,7 +387,7 @@ class _Block {
children:
subWidgets
children:
subWidgets
);
);
}
else
{
}
else
{
TextSpan
span
=
_stackToTextSpan
(
new
_MarkdownNodeList
(
stack
));
final
TextSpan
span
=
_stackToTextSpan
(
new
_MarkdownNodeList
(
stack
));
contents
=
new
RichText
(
text:
span
);
contents
=
new
RichText
(
text:
span
);
if
(
listIndents
.
isNotEmpty
)
{
if
(
listIndents
.
isNotEmpty
)
{
...
@@ -445,10 +445,10 @@ class _Block {
...
@@ -445,10 +445,10 @@ class _Block {
return
stack
.
textSpan
;
return
stack
.
textSpan
;
if
(
stack
is
_MarkdownNodeList
)
{
if
(
stack
is
_MarkdownNodeList
)
{
List
<
_MarkdownNode
>
list
=
stack
.
list
;
final
List
<
_MarkdownNode
>
list
=
stack
.
list
;
_MarkdownNodeTextStyle
styleNode
=
list
[
0
];
final
_MarkdownNodeTextStyle
styleNode
=
list
[
0
];
_LinkInfo
linkInfo
=
styleNode
.
linkInfo
;
final
_LinkInfo
linkInfo
=
styleNode
.
linkInfo
;
TextStyle
style
=
styleNode
.
style
;
final
TextStyle
style
=
styleNode
.
style
;
List
<
TextSpan
>
children
=
<
TextSpan
>[];
List
<
TextSpan
>
children
=
<
TextSpan
>[];
for
(
int
i
=
1
;
i
<
list
.
length
;
i
++)
{
for
(
int
i
=
1
;
i
<
list
.
length
;
i
++)
{
...
@@ -461,7 +461,7 @@ class _Block {
...
@@ -461,7 +461,7 @@ class _Block {
children
=
null
;
children
=
null
;
}
}
TapGestureRecognizer
recognizer
=
linkInfo
?.
recognizer
;
final
TapGestureRecognizer
recognizer
=
linkInfo
?.
recognizer
;
return
new
TextSpan
(
style:
style
,
children:
children
,
recognizer:
recognizer
,
text:
text
);
return
new
TextSpan
(
style:
style
,
children:
children
,
recognizer:
recognizer
,
text:
text
);
}
}
...
@@ -478,14 +478,14 @@ class _Block {
...
@@ -478,14 +478,14 @@ class _Block {
}
}
Widget
_buildImage
(
BuildContext
context
,
String
src
)
{
Widget
_buildImage
(
BuildContext
context
,
String
src
)
{
List
<
String
>
parts
=
src
.
split
(
'#'
);
final
List
<
String
>
parts
=
src
.
split
(
'#'
);
if
(
parts
.
isEmpty
)
return
new
Container
();
if
(
parts
.
isEmpty
)
return
new
Container
();
String
path
=
parts
.
first
;
final
String
path
=
parts
.
first
;
double
width
;
double
width
;
double
height
;
double
height
;
if
(
parts
.
length
==
2
)
{
if
(
parts
.
length
==
2
)
{
List
<
String
>
dimensions
=
parts
.
last
.
split
(
'x'
);
final
List
<
String
>
dimensions
=
parts
.
last
.
split
(
'x'
);
if
(
dimensions
.
length
==
2
)
{
if
(
dimensions
.
length
==
2
)
{
width
=
double
.
parse
(
dimensions
[
0
]);
width
=
double
.
parse
(
dimensions
[
0
]);
height
=
double
.
parse
(
dimensions
[
1
]);
height
=
double
.
parse
(
dimensions
[
1
]);
...
@@ -510,13 +510,13 @@ class _LinkHandler {
...
@@ -510,13 +510,13 @@ class _LinkHandler {
MarkdownLinkCallback
onTapLink
;
MarkdownLinkCallback
onTapLink
;
_LinkInfo
createLinkInfo
(
String
href
)
{
_LinkInfo
createLinkInfo
(
String
href
)
{
TapGestureRecognizer
recognizer
=
new
TapGestureRecognizer
();
final
TapGestureRecognizer
recognizer
=
new
TapGestureRecognizer
();
recognizer
.
onTap
=
()
{
recognizer
.
onTap
=
()
{
if
(
onTapLink
!=
null
)
if
(
onTapLink
!=
null
)
onTapLink
(
href
);
onTapLink
(
href
);
};
};
_LinkInfo
linkInfo
=
new
_LinkInfo
(
href
,
recognizer
);
final
_LinkInfo
linkInfo
=
new
_LinkInfo
(
href
,
recognizer
);
links
.
add
(
linkInfo
);
links
.
add
(
linkInfo
);
return
linkInfo
;
return
linkInfo
;
...
...
packages/flutter_markdown/test/flutter_markdown_test.dart
View file @
aa07d147
...
@@ -12,7 +12,7 @@ void main() {
...
@@ -12,7 +12,7 @@ void main() {
testWidgets
(
'Simple string'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Simple string'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
new
MarkdownBody
(
data:
'Hello'
));
await
tester
.
pumpWidget
(
new
MarkdownBody
(
data:
'Hello'
));
Iterable
<
Widget
>
widgets
=
tester
.
allWidgets
;
final
Iterable
<
Widget
>
widgets
=
tester
.
allWidgets
;
_expectWidgetTypes
(
widgets
,
<
Type
>[
MarkdownBody
,
Column
,
Container
,
Padding
,
RichText
]);
_expectWidgetTypes
(
widgets
,
<
Type
>[
MarkdownBody
,
Column
,
Container
,
Padding
,
RichText
]);
_expectTextStrings
(
widgets
,
<
String
>[
'Hello'
]);
_expectTextStrings
(
widgets
,
<
String
>[
'Hello'
]);
});
});
...
@@ -20,7 +20,7 @@ void main() {
...
@@ -20,7 +20,7 @@ void main() {
testWidgets
(
'Header'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Header'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
new
MarkdownBody
(
data:
'# Header'
));
await
tester
.
pumpWidget
(
new
MarkdownBody
(
data:
'# Header'
));
Iterable
<
Widget
>
widgets
=
tester
.
allWidgets
;
final
Iterable
<
Widget
>
widgets
=
tester
.
allWidgets
;
_expectWidgetTypes
(
widgets
,
<
Type
>[
MarkdownBody
,
Column
,
Container
,
Padding
,
RichText
]);
_expectWidgetTypes
(
widgets
,
<
Type
>[
MarkdownBody
,
Column
,
Container
,
Padding
,
RichText
]);
_expectTextStrings
(
widgets
,
<
String
>[
'Header'
]);
_expectTextStrings
(
widgets
,
<
String
>[
'Header'
]);
});
});
...
@@ -28,14 +28,14 @@ void main() {
...
@@ -28,14 +28,14 @@ void main() {
testWidgets
(
'Empty string'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Empty string'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
new
MarkdownBody
(
data:
''
));
await
tester
.
pumpWidget
(
new
MarkdownBody
(
data:
''
));
Iterable
<
Widget
>
widgets
=
tester
.
allWidgets
;
final
Iterable
<
Widget
>
widgets
=
tester
.
allWidgets
;
_expectWidgetTypes
(
widgets
,
<
Type
>[
MarkdownBody
,
Column
]);
_expectWidgetTypes
(
widgets
,
<
Type
>[
MarkdownBody
,
Column
]);
});
});
testWidgets
(
'Ordered list'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Ordered list'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
new
MarkdownBody
(
data:
'1. Item 1
\n
1. Item 2
\n
2. Item 3'
));
await
tester
.
pumpWidget
(
new
MarkdownBody
(
data:
'1. Item 1
\n
1. Item 2
\n
2. Item 3'
));
Iterable
<
Widget
>
widgets
=
tester
.
allWidgets
;
final
Iterable
<
Widget
>
widgets
=
tester
.
allWidgets
;
_expectTextStrings
(
widgets
,
<
String
>[
_expectTextStrings
(
widgets
,
<
String
>[
'1.'
,
'1.'
,
'Item 1'
,
'Item 1'
,
...
@@ -49,7 +49,7 @@ void main() {
...
@@ -49,7 +49,7 @@ void main() {
testWidgets
(
'Unordered list'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Unordered list'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
new
MarkdownBody
(
data:
'- Item 1
\n
- Item 2
\n
- Item 3'
));
await
tester
.
pumpWidget
(
new
MarkdownBody
(
data:
'- Item 1
\n
- Item 2
\n
- Item 3'
));
Iterable
<
Widget
>
widgets
=
tester
.
allWidgets
;
final
Iterable
<
Widget
>
widgets
=
tester
.
allWidgets
;
_expectTextStrings
(
widgets
,
<
String
>[
_expectTextStrings
(
widgets
,
<
String
>[
'•'
,
'•'
,
'Item 1'
,
'Item 1'
,
...
@@ -63,7 +63,7 @@ void main() {
...
@@ -63,7 +63,7 @@ void main() {
testWidgets
(
'Scrollable wrapping'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Scrollable wrapping'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
new
Markdown
(
data:
''
));
await
tester
.
pumpWidget
(
new
Markdown
(
data:
''
));
List
<
Widget
>
widgets
=
tester
.
allWidgets
.
toList
();
final
List
<
Widget
>
widgets
=
tester
.
allWidgets
.
toList
();
_expectWidgetTypes
(
widgets
.
take
(
2
),
<
Type
>[
_expectWidgetTypes
(
widgets
.
take
(
2
),
<
Type
>[
Markdown
,
Markdown
,
SingleChildScrollView
,
SingleChildScrollView
,
...
@@ -78,8 +78,8 @@ void main() {
...
@@ -78,8 +78,8 @@ void main() {
testWidgets
(
'Links'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Links'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
new
Markdown
(
data:
'[Link Text](href)'
));
await
tester
.
pumpWidget
(
new
Markdown
(
data:
'[Link Text](href)'
));
RichText
textWidget
=
tester
.
allWidgets
.
firstWhere
((
Widget
widget
)
=>
widget
is
RichText
);
final
RichText
textWidget
=
tester
.
allWidgets
.
firstWhere
((
Widget
widget
)
=>
widget
is
RichText
);
TextSpan
span
=
textWidget
.
text
;
final
TextSpan
span
=
textWidget
.
text
;
expect
(
span
.
children
[
0
].
recognizer
.
runtimeType
,
equals
(
TapGestureRecognizer
));
expect
(
span
.
children
[
0
].
recognizer
.
runtimeType
,
equals
(
TapGestureRecognizer
));
});
});
...
@@ -93,7 +93,7 @@ void main() {
...
@@ -93,7 +93,7 @@ void main() {
for
(
String
mdLine
in
mdData
)
{
for
(
String
mdLine
in
mdData
)
{
await
tester
.
pumpWidget
(
new
MarkdownBody
(
data:
mdLine
));
await
tester
.
pumpWidget
(
new
MarkdownBody
(
data:
mdLine
));
Iterable
<
Widget
>
widgets
=
tester
.
allWidgets
;
final
Iterable
<
Widget
>
widgets
=
tester
.
allWidgets
;
_expectTextStrings
(
widgets
,
<
String
>[
'Line 1'
,
'Line 2'
]);
_expectTextStrings
(
widgets
,
<
String
>[
'Line 1'
,
'Line 2'
]);
}
}
});
});
...
@@ -102,7 +102,7 @@ void main() {
...
@@ -102,7 +102,7 @@ void main() {
final
String
mdLine
=
'Line 1 <
\n\n
c < c c
\n\n
< Line 2'
;
final
String
mdLine
=
'Line 1 <
\n\n
c < c c
\n\n
< Line 2'
;
await
tester
.
pumpWidget
(
new
MarkdownBody
(
data:
mdLine
));
await
tester
.
pumpWidget
(
new
MarkdownBody
(
data:
mdLine
));
Iterable
<
Widget
>
widgets
=
tester
.
allWidgets
;
final
Iterable
<
Widget
>
widgets
=
tester
.
allWidgets
;
_expectTextStrings
(
widgets
,
<
String
>[
'Line 1 <'
,
'c < c c'
,
'< Line 2'
]);
_expectTextStrings
(
widgets
,
<
String
>[
'Line 1 <'
,
'c < c c'
,
'< Line 2'
]);
});
});
...
@@ -110,9 +110,9 @@ void main() {
...
@@ -110,9 +110,9 @@ void main() {
await
tester
.
pumpWidget
(
new
Markdown
(
data:
'Data1'
));
await
tester
.
pumpWidget
(
new
Markdown
(
data:
'Data1'
));
_expectTextStrings
(
tester
.
allWidgets
,
<
String
>[
'Data1'
]);
_expectTextStrings
(
tester
.
allWidgets
,
<
String
>[
'Data1'
]);
String
stateBefore
=
WidgetsBinding
.
instance
.
renderViewElement
.
toStringDeep
();
final
String
stateBefore
=
WidgetsBinding
.
instance
.
renderViewElement
.
toStringDeep
();
await
tester
.
pumpWidget
(
new
Markdown
(
data:
'Data1'
));
await
tester
.
pumpWidget
(
new
Markdown
(
data:
'Data1'
));
String
stateAfter
=
WidgetsBinding
.
instance
.
renderViewElement
.
toStringDeep
();
final
String
stateAfter
=
WidgetsBinding
.
instance
.
renderViewElement
.
toStringDeep
();
expect
(
stateBefore
,
equals
(
stateAfter
));
expect
(
stateBefore
,
equals
(
stateAfter
));
await
tester
.
pumpWidget
(
new
Markdown
(
data:
'Data2'
));
await
tester
.
pumpWidget
(
new
Markdown
(
data:
'Data2'
));
...
@@ -120,22 +120,22 @@ void main() {
...
@@ -120,22 +120,22 @@ void main() {
});
});
testWidgets
(
'Changing config - style'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Changing config - style'
,
(
WidgetTester
tester
)
async
{
ThemeData
theme
=
new
ThemeData
.
light
();
final
ThemeData
theme
=
new
ThemeData
.
light
();
MarkdownStyle
style1
=
new
MarkdownStyle
.
defaultFromTheme
(
theme
);
final
MarkdownStyle
style1
=
new
MarkdownStyle
.
defaultFromTheme
(
theme
);
MarkdownStyle
style2
=
new
MarkdownStyle
.
largeFromTheme
(
theme
);
final
MarkdownStyle
style2
=
new
MarkdownStyle
.
largeFromTheme
(
theme
);
await
tester
.
pumpWidget
(
new
Markdown
(
data:
'Test'
,
markdownStyle:
style1
));
await
tester
.
pumpWidget
(
new
Markdown
(
data:
'Test'
,
markdownStyle:
style1
));
String
stateBefore
=
WidgetsBinding
.
instance
.
renderViewElement
.
toStringDeep
();
final
String
stateBefore
=
WidgetsBinding
.
instance
.
renderViewElement
.
toStringDeep
();
await
tester
.
pumpWidget
(
new
Markdown
(
data:
'Test'
,
markdownStyle:
style2
));
await
tester
.
pumpWidget
(
new
Markdown
(
data:
'Test'
,
markdownStyle:
style2
));
String
stateAfter
=
WidgetsBinding
.
instance
.
renderViewElement
.
toStringDeep
();
final
String
stateAfter
=
WidgetsBinding
.
instance
.
renderViewElement
.
toStringDeep
();
expect
(
stateBefore
,
isNot
(
stateAfter
));
expect
(
stateBefore
,
isNot
(
stateAfter
));
});
});
}
}
void
_expectWidgetTypes
(
Iterable
<
Widget
>
widgets
,
List
<
Type
>
expected
)
{
void
_expectWidgetTypes
(
Iterable
<
Widget
>
widgets
,
List
<
Type
>
expected
)
{
List
<
Type
>
actual
=
widgets
.
map
((
Widget
w
)
=>
w
.
runtimeType
).
toList
();
final
List
<
Type
>
actual
=
widgets
.
map
((
Widget
w
)
=>
w
.
runtimeType
).
toList
();
expect
(
actual
,
expected
);
expect
(
actual
,
expected
);
}
}
...
@@ -143,8 +143,8 @@ void _expectTextStrings(Iterable<Widget> widgets, List<String> strings) {
...
@@ -143,8 +143,8 @@ void _expectTextStrings(Iterable<Widget> widgets, List<String> strings) {
int
currentString
=
0
;
int
currentString
=
0
;
for
(
Widget
widget
in
widgets
)
{
for
(
Widget
widget
in
widgets
)
{
if
(
widget
is
RichText
)
{
if
(
widget
is
RichText
)
{
TextSpan
span
=
widget
.
text
;
final
TextSpan
span
=
widget
.
text
;
String
text
=
_extractTextFromTextSpan
(
span
);
final
String
text
=
_extractTextFromTextSpan
(
span
);
expect
(
text
,
equals
(
strings
[
currentString
]));
expect
(
text
,
equals
(
strings
[
currentString
]));
currentString
+=
1
;
currentString
+=
1
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment