Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_34031325
engine
提交
acad21c1
E
engine
项目概览
qq_34031325
/
engine
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
engine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
acad21c1
编写于
12月 16, 2020
作者:
M
Mouad Debbar
提交者:
GitHub
12月 16, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[web] Tests for rich paragraph DOM (#23097)
上级
88545208
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
50 addition
and
3 deletion
+50
-3
lib/web_ui/lib/src/engine/text/canvas_paragraph.dart
lib/web_ui/lib/src/engine/text/canvas_paragraph.dart
+1
-0
lib/web_ui/lib/src/engine/text/paragraph.dart
lib/web_ui/lib/src/engine/text/paragraph.dart
+3
-0
lib/web_ui/test/text/canvas_paragraph_builder_test.dart
lib/web_ui/test/text/canvas_paragraph_builder_test.dart
+46
-3
未找到文件。
lib/web_ui/lib/src/engine/text/canvas_paragraph.dart
浏览文件 @
acad21c1
...
...
@@ -154,6 +154,7 @@ class CanvasParagraph implements EngineParagraph {
style:
span
.
style
,
isSpan:
true
,
);
domRenderer
.
appendText
(
spanElement
,
span
.
textOf
(
this
));
domRenderer
.
append
(
element
,
spanElement
);
}
else
if
(
span
is
PlaceholderSpan
)
{
domRenderer
.
append
(
...
...
lib/web_ui/lib/src/engine/text/paragraph.dart
浏览文件 @
acad21c1
...
...
@@ -1751,6 +1751,9 @@ void _applyTextStyleToElement({
if
(
color
!=
null
)
{
cssStyle
.
color
=
colorToCssString
(
color
);
}
if
(
style
.
_height
!=
null
)
{
cssStyle
.
lineHeight
=
'
${style._height}
'
;
}
if
(
style
.
_fontSize
!=
null
)
{
cssStyle
.
fontSize
=
'
${style._fontSize!.floor()}
px'
;
}
...
...
lib/web_ui/test/text/canvas_paragraph_builder_test.dart
浏览文件 @
acad21c1
...
...
@@ -8,6 +8,11 @@ import 'package:test/test.dart';
import
'package:ui/src/engine.dart'
;
import
'package:ui/ui.dart'
;
const
String
paragraphStyle
=
'style="position: absolute; white-space: pre-wrap; overflow-wrap: break-word; overflow: hidden;"'
;
const
String
defaultColor
=
'color: rgb(255, 0, 0);'
;
const
String
defaultFontFamily
=
'font-family: sans-serif;'
;
const
String
defaultFontSize
=
'font-size: 14px;'
;
void
main
(
)
{
internalBootstrapBrowserTest
(()
=>
testMain
);
}
...
...
@@ -17,9 +22,6 @@ void testMain() {
WebExperiments
.
ensureInitialized
();
});
// TODO(mdebbar): Add checks for the output of `toDomElement()` in all the
// tests below.
test
(
'Builds a text-only canvas paragraph'
,
()
{
final
EngineParagraphStyle
style
=
EngineParagraphStyle
(
fontSize:
13.0
);
final
CanvasParagraphBuilder
builder
=
CanvasParagraphBuilder
(
style
);
...
...
@@ -29,6 +31,10 @@ void testMain() {
final
CanvasParagraph
paragraph
=
builder
.
build
();
expect
(
paragraph
.
paragraphStyle
,
style
);
expect
(
paragraph
.
toPlainText
(),
'Hello'
);
expect
(
paragraph
.
toDomElement
().
outerHtml
,
'<p
$paragraphStyle
><span style="
$defaultColor
font-size: 13px;
$defaultFontFamily
">Hello</span></p>'
,
);
expect
(
paragraph
.
spans
,
hasLength
(
1
));
final
ParagraphSpan
span
=
paragraph
.
spans
.
single
;
...
...
@@ -47,6 +53,10 @@ void testMain() {
final
CanvasParagraph
paragraph
=
builder
.
build
();
expect
(
paragraph
.
paragraphStyle
,
style
);
expect
(
paragraph
.
toPlainText
(),
'Hello'
);
expect
(
paragraph
.
toDomElement
().
outerHtml
,
'<p
$paragraphStyle
><span style="
$defaultColor
$defaultFontSize
$defaultFontFamily
">Hello</span></p>'
,
);
expect
(
paragraph
.
spans
,
hasLength
(
1
));
final
FlatTextSpan
textSpan
=
paragraph
.
spans
.
single
as
FlatTextSpan
;
...
...
@@ -68,6 +78,14 @@ void testMain() {
final
CanvasParagraph
paragraph
=
builder
.
build
();
expect
(
paragraph
.
toPlainText
(),
'Hello'
);
expect
(
paragraph
.
toDomElement
().
outerHtml
,
'<p
$paragraphStyle
>'
'<span style="
$defaultColor
line-height: 1.5; font-size: 9px; font-weight: bold; font-style: italic;
$defaultFontFamily
letter-spacing: 2px;">'
'Hello'
'</span>'
'</p>'
,
);
expect
(
paragraph
.
spans
,
hasLength
(
1
));
final
FlatTextSpan
span
=
paragraph
.
spans
.
single
as
FlatTextSpan
;
...
...
@@ -96,6 +114,17 @@ void testMain() {
final
CanvasParagraph
paragraph
=
builder
.
build
();
expect
(
paragraph
.
toPlainText
(),
'Hello world'
);
expect
(
paragraph
.
toDomElement
().
outerHtml
,
'<p
$paragraphStyle
>'
'<span style="
$defaultColor
font-size: 13px; font-weight: bold;
$defaultFontFamily
">'
'Hello'
'</span>'
'<span style="
$defaultColor
font-size: 13px; font-style: italic;
$defaultFontFamily
">'
' world'
'</span>'
'</p>'
,
);
expect
(
paragraph
.
spans
,
hasLength
(
2
));
final
FlatTextSpan
hello
=
paragraph
.
spans
.
first
as
FlatTextSpan
;
...
...
@@ -134,6 +163,20 @@ void testMain() {
final
CanvasParagraph
paragraph
=
builder
.
build
();
expect
(
paragraph
.
toPlainText
(),
'Hello world!'
);
expect
(
paragraph
.
toDomElement
().
outerHtml
,
'<p
$paragraphStyle
>'
'<span style="
$defaultColor
line-height: 2; font-size: 13px; font-weight: bold;
$defaultFontFamily
">'
'Hello'
'</span>'
'<span style="
$defaultColor
font-size: 13px; font-weight: bold; font-style: italic;
$defaultFontFamily
">'
' world'
'</span>'
'<span style="
$defaultColor
font-size: 13px; font-weight: normal; font-style: italic;
$defaultFontFamily
">'
'!'
'</span>'
'</p>'
,
);
expect
(
paragraph
.
spans
,
hasLength
(
3
));
final
FlatTextSpan
hello
=
paragraph
.
spans
[
0
]
as
FlatTextSpan
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录