提交 b612c867 编写于 作者: J Johannes Rieken

stable quickfix model test

上级 37b31837
...@@ -14,7 +14,16 @@ import { MarkerService } from 'vs/platform/markers/common/markerService'; ...@@ -14,7 +14,16 @@ import { MarkerService } from 'vs/platform/markers/common/markerService';
import { QuickFixOracle } from 'vs/editor/contrib/quickFix/browser/quickFixModel'; import { QuickFixOracle } from 'vs/editor/contrib/quickFix/browser/quickFixModel';
import { CodeActionProviderRegistry, LanguageIdentifier } from 'vs/editor/common/modes'; import { CodeActionProviderRegistry, LanguageIdentifier } from 'vs/editor/common/modes';
import { IDisposable } from 'vs/base/common/lifecycle'; import { IDisposable } from 'vs/base/common/lifecycle';
import Event from 'vs/base/common/event';
function promiseOnce<T>(event: Event<T>): TPromise<T> {
return new TPromise(resolve => {
let reg = event(e => {
reg.dispose();
resolve(e);
});
});
}
suite('QuickFix', () => { suite('QuickFix', () => {
...@@ -41,6 +50,7 @@ suite('QuickFix', () => { ...@@ -41,6 +50,7 @@ suite('QuickFix', () => {
reg.dispose(); reg.dispose();
editor.dispose(); editor.dispose();
model.dispose(); model.dispose();
markerService.dispose();
}); });
test('Orcale -> marker added', done => { test('Orcale -> marker added', done => {
...@@ -95,45 +105,54 @@ suite('QuickFix', () => { ...@@ -95,45 +105,54 @@ suite('QuickFix', () => {
}); });
// test('Oracle -> ask once per marker/word', () => { test('Oracle -> ask once per marker/word', () => {
// markerService.changeOne('fake', uri, [{ const start = promiseOnce(markerService.onMarkerChanged);
// startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: 6,
// message: 'error', markerService.changeOne('fake', uri, [{
// severity: 1, startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: 6,
// code: '', message: 'error',
// source: '' severity: 1,
// }]); code: '',
source: ''
// let counter = 0; }]);
// let reg = CodeActionProviderRegistry.register(languageIdentifier.language, {
// provideCodeActions() { return start.then(() => {
// counter += 1;
// return []; let stacks: string[] = [];
// } let counter = 0;
// }); let reg = CodeActionProviderRegistry.register(languageIdentifier.language, {
provideCodeActions() {
// let fixes: TPromise<any>[] = []; counter += 1;
// let oracle = new QuickFixOracle(editor, markerService, e => { stacks.push(new Error().stack);
// fixes.push(e.fixes); return [];
// }, 10); }
});
// editor.setPosition({ lineNumber: 1, column: 3 }); // marker
// editor.setPosition({ lineNumber: 1, column: 6 }); // (same) marker let fixes: TPromise<any>[] = [];
let oracle = new QuickFixOracle(editor, markerService, e => {
// return TPromise.timeout(20).then(() => { fixes.push(e.fixes);
}, 10);
// editor.setPosition({ lineNumber: 1, column: 8 }); // whitespace
// editor.setPosition({ lineNumber: 2, column: 2 }); // word editor.setPosition({ lineNumber: 1, column: 3 }); // marker
// editor.setPosition({ lineNumber: 2, column: 6 }); // (same) word editor.setPosition({ lineNumber: 1, column: 6 }); // (same) marker
// return TPromise.join([TPromise.timeout(20)].concat(fixes)).then(_ => { return TPromise.join([TPromise.timeout(20)].concat(fixes)).then(() => {
// reg.dispose();
// oracle.dispose(); assert.equal(counter, 1, stacks.join('\n----\n'));
// assert.equal(counter, 2);
// }); editor.setPosition({ lineNumber: 1, column: 8 }); // whitespace
// }); editor.setPosition({ lineNumber: 2, column: 2 }); // word
// }); editor.setPosition({ lineNumber: 2, column: 6 }); // (same) word
return TPromise.join([TPromise.timeout(20)].concat(fixes)).then(_ => {
reg.dispose();
oracle.dispose();
assert.equal(counter, 2, stacks.join('\n----\n'));
});
});
});
});
test('Oracle -> selection wins over marker', () => { test('Oracle -> selection wins over marker', () => {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册