Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
6c16c86d
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,体验更适合开发者的 AI 搜索 >>
提交
6c16c86d
编写于
5月 22, 2018
作者:
B
Benjamin Pasero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
grid - some more tests
上级
e901ae32
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
224 addition
and
13 deletion
+224
-13
src/vs/workbench/services/editor/test/browser/editorService.test.ts
...kbench/services/editor/test/browser/editorService.test.ts
+197
-2
src/vs/workbench/services/group/test/browser/editorGroupsService.test.ts
...h/services/group/test/browser/editorGroupsService.test.ts
+1
-1
src/vs/workbench/test/common/editor/editor.test.ts
src/vs/workbench/test/common/editor/editor.test.ts
+3
-3
src/vs/workbench/test/workbenchTestServices.ts
src/vs/workbench/test/workbenchTestServices.ts
+23
-7
未找到文件。
src/vs/workbench/services/editor/test/browser/
nextE
ditorService.test.ts
→
src/vs/workbench/services/editor/test/browser/
e
ditorService.test.ts
浏览文件 @
6c16c86d
...
...
@@ -29,12 +29,13 @@ import { Registry } from 'vs/platform/registry/common/platform';
import
{
FileEditorInput
}
from
'
vs/workbench/parts/files/common/editors/fileEditorInput
'
;
import
{
UntitledEditorInput
}
from
'
vs/workbench/common/editor/untitledEditorInput
'
;
import
{
DiffEditorInput
}
from
'
vs/workbench/common/editor/diffEditorInput
'
;
import
{
IEditorPartService
}
from
'
vs/workbench/browser/parts/editor/editor
'
;
export
class
TestEditorControl
extends
BaseEditor
{
constructor
(@
ITelemetryService
telemetryService
:
ITelemetryService
)
{
super
(
'
MyTestEditorForEditorService
'
,
NullTelemetryService
,
new
TestThemeService
());
}
getId
():
string
{
return
'
m
yTestEditorForEditorService
'
;
}
getId
():
string
{
return
'
M
yTestEditorForEditorService
'
;
}
layout
():
void
{
}
createEditor
():
any
{
}
}
...
...
@@ -74,7 +75,7 @@ suite('Editor service', () => {
const
testInstantiationService
=
partInstantiator
.
createChild
(
new
ServiceCollection
([
IEditorGroupsService
,
part
]));
const
service
:
IEditorService
=
testInstantiationService
.
createInstance
(
EditorService
);
const
service
:
IEditor
Part
Service
=
testInstantiationService
.
createInstance
(
EditorService
);
const
input
=
testInstantiationService
.
createInstance
(
TestEditorInput
,
URI
.
parse
(
'
my://resource
'
));
const
otherInput
=
testInstantiationService
.
createInstance
(
TestEditorInput
,
URI
.
parse
(
'
my://resource2
'
));
...
...
@@ -432,6 +433,200 @@ suite('Editor service', () => {
});
});
});
// TODO define what should happen with { forceOpen: true } and events
test
(
'
pasero active editor change / visible editor change events
'
,
async
function
()
{
const
partInstantiator
=
workbenchInstantiationService
();
const
part
=
partInstantiator
.
createInstance
(
EditorPart
,
'
id
'
,
false
);
part
.
create
(
document
.
createElement
(
'
div
'
));
part
.
layout
(
new
Dimension
(
400
,
300
));
const
testInstantiationService
=
partInstantiator
.
createChild
(
new
ServiceCollection
([
IEditorGroupsService
,
part
]));
const
service
:
IEditorPartService
=
testInstantiationService
.
createInstance
(
EditorService
);
const
input
=
testInstantiationService
.
createInstance
(
TestEditorInput
,
URI
.
parse
(
'
my://resource
'
));
const
otherInput
=
testInstantiationService
.
createInstance
(
TestEditorInput
,
URI
.
parse
(
'
my://resource2
'
));
let
activeEditorChangeEventFired
=
false
;
const
activeEditorChangeListener
=
service
.
onDidActiveEditorChange
(()
=>
{
activeEditorChangeEventFired
=
true
;
});
let
visibleEditorChangeEventFired
=
false
;
const
visibleEditorChangeListener
=
service
.
onDidVisibleEditorsChange
(()
=>
{
visibleEditorChangeEventFired
=
true
;
});
function
assertActiveEditorChangedEvent
(
expected
:
boolean
)
{
assert
.
equal
(
activeEditorChangeEventFired
,
expected
,
`Unexpected active editor change state (got
${
activeEditorChangeEventFired
}
, expected
${
expected
}
)`
);
activeEditorChangeEventFired
=
false
;
}
function
assertVisibleEditorsChangedEvent
(
expected
:
boolean
)
{
assert
.
equal
(
visibleEditorChangeEventFired
,
expected
,
`Unexpected visible editors change state (got
${
visibleEditorChangeEventFired
}
, expected
${
expected
}
)`
);
visibleEditorChangeEventFired
=
false
;
}
// 1.) open, open same, open other, close
let
editor
=
await
service
.
openEditor
(
input
,
{
pinned
:
true
});
assertActiveEditorChangedEvent
(
true
);
assertVisibleEditorsChangedEvent
(
true
);
editor
=
await
service
.
openEditor
(
input
);
assertActiveEditorChangedEvent
(
false
);
assertVisibleEditorsChangedEvent
(
false
);
editor
=
await
service
.
openEditor
(
otherInput
);
assertActiveEditorChangedEvent
(
true
);
assertVisibleEditorsChangedEvent
(
true
);
await
editor
.
group
.
closeEditor
(
otherInput
);
assertActiveEditorChangedEvent
(
true
);
assertVisibleEditorsChangedEvent
(
true
);
await
editor
.
group
.
closeEditor
(
input
);
assertActiveEditorChangedEvent
(
true
);
assertVisibleEditorsChangedEvent
(
true
);
// // 2.) open, open same (forced open)
editor
=
await
service
.
openEditor
(
input
);
assertActiveEditorChangedEvent
(
true
);
assertVisibleEditorsChangedEvent
(
true
);
editor
=
await
service
.
openEditor
(
input
,
{
forceOpen
:
true
});
assertActiveEditorChangedEvent
(
false
);
assertVisibleEditorsChangedEvent
(
false
);
await
editor
.
group
.
closeEditor
(
input
);
// 3.) open, open inactive, close
editor
=
await
service
.
openEditor
(
input
,
{
pinned
:
true
});
assertActiveEditorChangedEvent
(
true
);
assertVisibleEditorsChangedEvent
(
true
);
editor
=
await
service
.
openEditor
(
otherInput
,
{
inactive
:
true
});
assertActiveEditorChangedEvent
(
false
);
assertVisibleEditorsChangedEvent
(
false
);
editor
.
group
.
closeAllEditors
();
assertActiveEditorChangedEvent
(
true
);
assertVisibleEditorsChangedEvent
(
true
);
// 4.) open, open inactive, close inactive
editor
=
await
service
.
openEditor
(
input
,
{
pinned
:
true
});
assertActiveEditorChangedEvent
(
true
);
assertVisibleEditorsChangedEvent
(
true
);
editor
=
await
service
.
openEditor
(
otherInput
,
{
inactive
:
true
});
assertActiveEditorChangedEvent
(
false
);
assertVisibleEditorsChangedEvent
(
false
);
editor
.
group
.
closeEditor
(
otherInput
);
assertActiveEditorChangedEvent
(
false
);
assertVisibleEditorsChangedEvent
(
false
);
editor
.
group
.
closeAllEditors
();
assertActiveEditorChangedEvent
(
true
);
assertVisibleEditorsChangedEvent
(
true
);
// 5.) add group, remove group
editor
=
await
service
.
openEditor
(
input
,
{
pinned
:
true
});
assertActiveEditorChangedEvent
(
true
);
assertVisibleEditorsChangedEvent
(
true
);
let
rightGroup
=
part
.
addGroup
(
part
.
activeGroup
,
GroupDirection
.
RIGHT
);
assertActiveEditorChangedEvent
(
false
);
assertVisibleEditorsChangedEvent
(
false
);
rightGroup
.
focus
();
assertActiveEditorChangedEvent
(
true
);
assertVisibleEditorsChangedEvent
(
false
);
part
.
removeGroup
(
rightGroup
);
assertActiveEditorChangedEvent
(
true
);
assertVisibleEditorsChangedEvent
(
false
);
editor
.
group
.
closeAllEditors
();
assertActiveEditorChangedEvent
(
true
);
assertVisibleEditorsChangedEvent
(
true
);
// 6.) open editor in inactive group
editor
=
await
service
.
openEditor
(
input
,
{
pinned
:
true
});
assertActiveEditorChangedEvent
(
true
);
assertVisibleEditorsChangedEvent
(
true
);
rightGroup
=
part
.
addGroup
(
part
.
activeGroup
,
GroupDirection
.
RIGHT
);
assertActiveEditorChangedEvent
(
false
);
assertVisibleEditorsChangedEvent
(
false
);
rightGroup
.
openEditor
(
otherInput
);
assertActiveEditorChangedEvent
(
false
);
assertVisibleEditorsChangedEvent
(
true
);
rightGroup
.
closeEditor
(
otherInput
);
assertActiveEditorChangedEvent
(
false
);
assertVisibleEditorsChangedEvent
(
true
);
part
.
removeGroup
(
rightGroup
);
assertActiveEditorChangedEvent
(
false
);
assertVisibleEditorsChangedEvent
(
false
);
editor
.
group
.
closeAllEditors
();
assertActiveEditorChangedEvent
(
true
);
assertVisibleEditorsChangedEvent
(
true
);
// 7.) activate group
editor
=
await
service
.
openEditor
(
input
,
{
pinned
:
true
});
assertActiveEditorChangedEvent
(
true
);
assertVisibleEditorsChangedEvent
(
true
);
rightGroup
=
part
.
addGroup
(
part
.
activeGroup
,
GroupDirection
.
RIGHT
);
assertActiveEditorChangedEvent
(
false
);
assertVisibleEditorsChangedEvent
(
false
);
rightGroup
.
openEditor
(
otherInput
);
assertActiveEditorChangedEvent
(
false
);
assertVisibleEditorsChangedEvent
(
true
);
rightGroup
.
focus
();
assertActiveEditorChangedEvent
(
true
);
assertVisibleEditorsChangedEvent
(
false
);
rightGroup
.
closeEditor
(
otherInput
);
assertActiveEditorChangedEvent
(
true
);
assertVisibleEditorsChangedEvent
(
true
);
part
.
removeGroup
(
rightGroup
);
assertActiveEditorChangedEvent
(
true
);
assertVisibleEditorsChangedEvent
(
false
);
editor
.
group
.
closeAllEditors
();
assertActiveEditorChangedEvent
(
true
);
assertVisibleEditorsChangedEvent
(
true
);
// 8.) move editor
editor
=
await
service
.
openEditor
(
input
,
{
pinned
:
true
});
assertActiveEditorChangedEvent
(
true
);
assertVisibleEditorsChangedEvent
(
true
);
editor
=
await
service
.
openEditor
(
otherInput
,
{
pinned
:
true
});
assertActiveEditorChangedEvent
(
true
);
assertVisibleEditorsChangedEvent
(
true
);
editor
.
group
.
moveEditor
(
otherInput
,
editor
.
group
,
{
index
:
0
});
assertActiveEditorChangedEvent
(
false
);
assertVisibleEditorsChangedEvent
(
false
);
editor
.
group
.
closeAllEditors
();
assertActiveEditorChangedEvent
(
true
);
assertVisibleEditorsChangedEvent
(
true
);
// cleanup
activeEditorChangeListener
.
dispose
();
visibleEditorChangeListener
.
dispose
();
});
});
function
toResource
(
path
:
string
)
{
...
...
src/vs/workbench/services/group/test/browser/editorGroupsService.test.ts
浏览文件 @
6c16c86d
...
...
@@ -28,7 +28,7 @@ export class TestEditorControl extends BaseEditor {
constructor
(@
ITelemetryService
telemetryService
:
ITelemetryService
)
{
super
(
'
MyFileEditorForEditorGroupService
'
,
NullTelemetryService
,
new
TestThemeService
());
}
getId
():
string
{
return
'
myTest
EditorForEditorGroupService
'
;
}
getId
():
string
{
return
'
MyFile
EditorForEditorGroupService
'
;
}
layout
():
void
{
}
createEditor
():
any
{
}
}
...
...
src/vs/workbench/test/common/editor/editor.test.ts
浏览文件 @
6c16c86d
...
...
@@ -92,7 +92,7 @@ suite('Workbench editor', () => {
const
testGroup1
=
new
TestEditorGroup
(
1
);
const
testGroup4
=
new
TestEditorGroup
(
4
);
const
g
roupService
=
new
TestEditorGroupsService
([
const
editorG
roupService
=
new
TestEditorGroupsService
([
testGroup0
,
testGroup1
,
new
TestEditorGroup
(
2
)
...
...
@@ -103,7 +103,7 @@ suite('Workbench editor', () => {
}
const
rawMemento
=
Object
.
create
(
null
);
let
memento
=
new
EditorViewStateMemento
<
TestViewState
>
(
g
roupService
,
rawMemento
,
'
key
'
,
3
);
let
memento
=
new
EditorViewStateMemento
<
TestViewState
>
(
editorG
roupService
,
rawMemento
,
'
key
'
,
3
);
let
res
=
memento
.
loadState
(
testGroup0
,
URI
.
file
(
'
/A
'
));
assert
.
ok
(
!
res
);
...
...
@@ -138,7 +138,7 @@ suite('Workbench editor', () => {
memento
.
save
();
memento
=
new
EditorViewStateMemento
(
g
roupService
,
rawMemento
,
'
key
'
,
3
);
memento
=
new
EditorViewStateMemento
(
editorG
roupService
,
rawMemento
,
'
key
'
,
3
);
assert
.
ok
(
memento
.
loadState
(
testGroup0
,
URI
.
file
(
'
/C
'
)));
assert
.
ok
(
memento
.
loadState
(
testGroup0
,
URI
.
file
(
'
/D
'
)));
assert
.
ok
(
memento
.
loadState
(
testGroup0
,
URI
.
file
(
'
/E
'
)));
...
...
src/vs/workbench/test/workbenchTestServices.ts
浏览文件 @
6c16c86d
...
...
@@ -14,7 +14,8 @@ import URI from 'vs/base/common/uri';
import
{
ITelemetryService
}
from
'
vs/platform/telemetry/common/telemetry
'
;
import
{
NullTelemetryService
}
from
'
vs/platform/telemetry/common/telemetryUtils
'
;
import
{
StorageService
,
InMemoryLocalStorage
}
from
'
vs/platform/storage/common/storageService
'
;
import
{
ConfirmResult
,
IEditorOpeningEvent
,
IEditorInputWithOptions
,
CloseDirection
,
IEditorIdentifier
,
IUntitledResourceInput
,
IResourceDiffInput
,
IResourceSideBySideInput
,
IEditorInput
,
IEditor
,
IEditorCloseEvent
}
from
'
vs/workbench/common/editor
'
;
import
{
ConfirmResult
,
IEditorInputWithOptions
,
CloseDirection
,
IEditorIdentifier
,
IUntitledResourceInput
,
IResourceDiffInput
,
IResourceSideBySideInput
,
IEditorInput
,
IEditor
,
IEditorCloseEvent
}
from
'
vs/workbench/common/editor
'
;
import
{
IEditorOpeningEvent
,
IEditorPartService
,
IEditorGroupView
}
from
'
vs/workbench/browser/parts/editor/editor
'
;
import
{
Event
,
Emitter
}
from
'
vs/base/common/event
'
;
import
Severity
from
'
vs/base/common/severity
'
;
import
{
IBackupFileService
}
from
'
vs/workbench/services/backup/common/backup
'
;
...
...
@@ -71,6 +72,7 @@ import { IEditorService, IOpenEditorOverrideHandler } from 'vs/workbench/service
import
{
ICodeEditorService
}
from
'
vs/editor/browser/services/codeEditorService
'
;
import
{
ICodeEditor
,
IDiffEditor
}
from
'
vs/editor/browser/editorBrowser
'
;
import
{
IDecorationRenderOptions
}
from
'
vs/editor/common/editorCommon
'
;
import
{
EditorGroup
}
from
'
vs/workbench/common/editor/editorGroup
'
;
export
function
createFileInput
(
instantiationService
:
IInstantiationService
,
resource
:
URI
):
FileEditorInput
{
return
instantiationService
.
createInstance
(
FileEditorInput
,
resource
,
void
0
);
...
...
@@ -531,10 +533,6 @@ export class TestEditorGroupsService implements IEditorGroupsService {
return
'
Group 1
'
;
}
focusGroup
(
group
:
number
|
IEditorGroup
):
IEditorGroup
{
return
null
;
}
findGroup
(
scope
:
IFindGroupScope
,
source
?:
number
|
IEditorGroup
):
IEditorGroup
{
return
null
;
}
...
...
@@ -570,16 +568,24 @@ export class TestEditorGroupsService implements IEditorGroupsService {
}
}
export
class
TestEditorGroup
implements
IEditorGroup
{
export
class
TestEditorGroup
implements
IEditorGroup
View
{
constructor
(
public
id
:
number
)
{
}
group
:
EditorGroup
=
void
0
;
activeControl
:
IEditor
;
activeEditor
:
IEditorInput
;
previewEditor
:
IEditorInput
;
count
:
number
;
disposed
:
boolean
;
editors
:
ReadonlyArray
<
IEditorInput
>
=
[];
label
:
string
;
whenRestored
:
Promise
<
void
,
any
>
=
TPromise
.
as
(
void
0
);
element
:
HTMLElement
;
minimumWidth
:
number
;
maximumWidth
:
number
;
minimumHeight
:
number
;
maximumHeight
:
number
;
onWillDispose
:
Event
<
void
>
=
Event
.
None
;
onDidGroupChange
:
Event
<
IGroupChangeEvent
>
=
Event
.
None
;
...
...
@@ -587,6 +593,8 @@ export class TestEditorGroup implements IEditorGroup {
onDidCloseEditor
:
Event
<
IEditorCloseEvent
>
=
Event
.
None
;
onWillOpenEditor
:
Event
<
IEditorOpeningEvent
>
=
Event
.
None
;
onDidOpenEditorFail
:
Event
<
IEditorInput
>
=
Event
.
None
;
onDidFocus
:
Event
<
void
>
=
Event
.
None
;
onDidChange
:
Event
<
{
width
:
number
;
height
:
number
;
}
>
=
Event
.
None
;
getEditors
(
order
?:
EditorsOrder
):
ReadonlyArray
<
IEditorInput
>
{
return
[];
...
...
@@ -647,9 +655,17 @@ export class TestEditorGroup implements IEditorGroup {
invokeWithinContext
<
T
>
(
fn
:
(
accessor
:
ServicesAccessor
)
=>
T
):
T
{
return
fn
(
null
);
}
isEmpty
():
boolean
{
return
true
;
}
setActive
(
isActive
:
boolean
):
void
{
}
setLabel
(
label
:
string
):
void
{
}
shutdown
():
void
{
}
dispose
():
void
{
}
toJSON
():
object
{
return
Object
.
create
(
null
);
}
layout
(
width
:
number
,
height
:
number
):
void
{
}
}
export
class
TestEditorService
implements
IEditorService
{
export
class
TestEditorService
implements
IEditor
Part
Service
{
_serviceBrand
:
ServiceIdentifier
<
any
>
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录