Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
3a1bb2d6
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3a1bb2d6
编写于
10月 15, 2016
作者:
J
Jess Chadwick
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Adding tests for editor state
上级
bbda5921
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
108 addition
and
0 deletion
+108
-0
src/vs/editor/test/common/core/editorState.test.ts
src/vs/editor/test/common/core/editorState.test.ts
+108
-0
未找到文件。
src/vs/editor/test/common/core/editorState.test.ts
0 → 100644
浏览文件 @
3a1bb2d6
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'
use strict
'
;
import
*
as
assert
from
'
assert
'
;
import
URI
from
'
vs/base/common/uri
'
;
import
{
CodeEditorStateFlag
,
ICommonCodeEditor
,
IModel
}
from
'
vs/editor/common/editorCommon
'
;
import
{
EditorState
}
from
'
vs/editor/common/core/editorState
'
;
import
{
Selection
}
from
'
vs/editor/common/core/selection
'
;
import
{
Position
}
from
'
vs/editor/common/core/position
'
;
interface
IStubEditorState
{
model
?:
{
uri
?:
URI
,
version
?:
number
};
position
?:
Position
;
selection
?:
Selection
;
scroll
?:
{
left
?:
number
,
top
?:
number
};
}
suite
(
'
Editor Core - Editor State
'
,
()
=>
{
const
allFlags
=
Object
.
keys
(
CodeEditorStateFlag
)
.
map
(
k
=>
CodeEditorStateFlag
[
k
])
.
filter
(
v
=>
typeof
v
===
'
number
'
)
as
number
[];
test
(
'
empty editor state should be valid
'
,
()
=>
{
let
result
=
validate
(
{},
{}
);
assert
.
equal
(
result
,
true
);
});
test
(
'
different model URIs should be invalid
'
,
()
=>
{
let
result
=
validate
(
{
model
:
{
uri
:
URI
.
parse
(
'
http://test1
'
)
}
},
{
model
:
{
uri
:
URI
.
parse
(
'
http://test2
'
)
}
}
);
assert
.
equal
(
result
,
false
);
});
test
(
'
different model versions should be invalid
'
,
()
=>
{
let
result
=
validate
(
{
model
:
{
version
:
1
}
},
{
model
:
{
version
:
2
}
}
);
assert
.
equal
(
result
,
false
);
});
test
(
'
different positions should be invalid
'
,
()
=>
{
let
result
=
validate
(
{
position
:
new
Position
(
1
,
2
)
},
{
position
:
new
Position
(
2
,
3
)
}
);
assert
.
equal
(
result
,
false
);
});
test
(
'
different selections should be invalid
'
,
()
=>
{
let
result
=
validate
(
{
selection
:
new
Selection
(
1
,
2
,
3
,
4
)
},
{
selection
:
new
Selection
(
5
,
2
,
3
,
4
)
}
);
assert
.
equal
(
result
,
false
);
});
test
(
'
different scroll positions should be invalid
'
,
()
=>
{
let
result
=
validate
(
{
scroll
:
{
left
:
1
,
top
:
2
}
},
{
scroll
:
{
left
:
3
,
top
:
2
}
}
);
assert
.
equal
(
result
,
false
);
});
function
validate
(
source
:
IStubEditorState
,
target
:
IStubEditorState
)
{
let
sourceEditor
=
createEditor
(
source
),
targetEditor
=
createEditor
(
target
);
let
result
=
new
EditorState
(
sourceEditor
,
allFlags
)
.
validate
(
targetEditor
);
return
result
;
}
function
createEditor
({
model
,
position
,
selection
,
scroll
}:
IStubEditorState
=
{}):
ICommonCodeEditor
{
let
mappedModel
=
model
?
{
uri
:
model
.
uri
?
model
.
uri
:
URI
.
parse
(
'
http://dummy.org
'
),
getVersionId
:
()
=>
model
.
version
}
:
null
;
return
<
any
>
{
getModel
:
():
IModel
=>
<
any
>
mappedModel
,
getPosition
:
():
Position
=>
position
,
getSelection
:
():
Selection
=>
selection
,
getScrollLeft
:
():
number
=>
scroll
&&
scroll
.
left
,
getScrollTop
:
():
number
=>
scroll
&&
scroll
.
top
};
}
});
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录