Skip to content
This repository was archived by the owner on Sep 6, 2021. It is now read-only.

Commit 3acc237

Browse files
committed
refactor mock editors into SpecRunnerUtils
1 parent c72657f commit 3acc237

4 files changed

Lines changed: 56 additions & 40 deletions

File tree

test/spec/Editor-test.js

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -35,26 +35,18 @@ define(function (require, exports, module) {
3535

3636
describe("Editor", function () {
3737
var defaultContent = 'Brackets is going to be awesome!\n';
38-
var myDocument, myEditor, $editorHolder;
38+
var myDocument, myEditor;
3939

4040
function createTestEditor(content, mode) {
41-
// Initialize EditorManager
42-
$editorHolder = $("<div id='editor-holder'/>");
43-
EditorManager._init();
44-
EditorManager.setEditorHolder($editorHolder);
45-
$("body").append($editorHolder);
46-
47-
// create dummy Document for the Editor
48-
myDocument = SpecRunnerUtils.createMockDocument(content);
49-
50-
// create Editor instance
51-
myEditor = new Editor(myDocument, true, mode, $editorHolder.get(0), {});
41+
// create dummy Document and Editor
42+
var mocks = SpecRunnerUtils.createMockEditor(content, mode);
43+
myDocument = mocks.doc;
44+
myEditor = mocks.editor;
5245
}
5346

5447
afterEach(function () {
5548
if (myEditor) {
56-
EditorManager._destroyEditorIfUnneeded(myDocument);
57-
$editorHolder.remove();
49+
SpecRunnerUtils.destroyMockEditor(myDocument);
5850
myEditor = null;
5951
myDocument = null;
6052
}

test/spec/EditorCommandHandlers-test.js

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -46,25 +46,18 @@ define(function (require, exports, module) {
4646
"\n" +
4747
"}";
4848

49-
var myDocument, myEditor, $editorHolder;
49+
var myDocument, myEditor;
5050
beforeEach(function () {
51-
// Initialize EditorManager
52-
$editorHolder = $("<div id='editor-holder'/>");
53-
EditorManager._init();
54-
EditorManager.setEditorHolder($editorHolder);
55-
$("body").append($editorHolder);
56-
57-
// create dummy Document for the Editor
58-
myDocument = SpecRunnerUtils.createMockDocument(defaultContent);
59-
60-
// create Editor instance (containing a CodeMirror instance)
61-
myEditor = new Editor(myDocument, true, "javascript", $editorHolder.get(0), {});
51+
// create dummy Document and Editor
52+
var mocks = SpecRunnerUtils.createMockEditor(defaultContent, "javascript");
53+
myDocument = mocks.doc;
54+
myEditor = mocks.editor;
55+
6256
myEditor.focus();
6357
});
6458

6559
afterEach(function () {
66-
EditorManager._destroyEditorIfUnneeded(myDocument);
67-
$editorHolder.remove();
60+
SpecRunnerUtils.destroyMockEditor(myDocument);
6861
myEditor = null;
6962
myDocument = null;
7063
});

test/spec/MultiRangeInlineEditor-test.js

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -43,19 +43,14 @@ define(function (require, exports, module) {
4343
doc;
4444

4545
beforeEach(function () {
46-
// init Editor instance (containing a CodeMirror instance)
47-
$editorHolder = $("<div id='editor-holder'/>");
48-
EditorManager._init();
49-
EditorManager.setEditorHolder($editorHolder);
50-
$("body").append($editorHolder);
51-
52-
doc = SpecRunnerUtils.createMockDocument("hostEditor");
53-
hostEditor = new Editor(doc, true, "", $editorHolder.get(0), {});
46+
// create dummy Document and Editor
47+
var mocks = SpecRunnerUtils.createMockEditor("hostEditor", "");
48+
doc = mocks.doc;
49+
hostEditor = mocks.editor;
5450
});
5551

5652
afterEach(function () {
57-
EditorManager._destroyEditorIfUnneeded(doc);
58-
$editorHolder.remove();
53+
SpecRunnerUtils.destroyMockEditor(doc);
5954
hostEditor = null;
6055
});
6156

test/spec/SpecRunnerUtils.js

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ define(function (require, exports, module) {
3232
FileUtils = require("file/FileUtils"),
3333
Async = require("utils/Async"),
3434
DocumentManager = require("document/DocumentManager"),
35+
Editor = require("editor/Editor").Editor,
36+
EditorManager = require("editor/EditorManager"),
3537
UrlParams = require("utils/UrlParams").UrlParams;
3638

3739
var TEST_PREFERENCES_KEY = "com.adobe.brackets.test.preferences",
@@ -90,12 +92,11 @@ define(function (require, exports, module) {
9092
}, "failure " + operationName, 1000);
9193
};
9294

93-
9495
/**
9596
* Returns a Document suitable for use with an Editor in isolation: i.e., a Document that will
9697
* never be set as the currentDocument or added to the working set.
9798
*/
98-
function createMockDocument(initialContent) {
99+
function createMockDocument(initialContent, createEditor) {
99100
// Use unique filename to avoid collissions in open documents list
100101
var dummyFile = new NativeFileSystem.FileEntry("_unitTestDummyFile_.js");
101102

@@ -120,6 +121,39 @@ define(function (require, exports, module) {
120121
};
121122
return docToShim;
122123
}
124+
125+
/**
126+
* Returns a Document and Editor suitable for use with an Editor in
127+
* isolation: i.e., a Document that will never be set as the
128+
* currentDocument or added to the working set.
129+
* @return {!{doc:{Document}, editor:{Editor}}}
130+
*/
131+
function createMockEditor(initialContent, mode) {
132+
mode = mode || "";
133+
134+
// Initialize EditorManager
135+
var $editorHolder = $("<div id='mock-editor-holder'/>");
136+
EditorManager._init();
137+
EditorManager.setEditorHolder($editorHolder);
138+
$("body").append($editorHolder);
139+
140+
// create dummy Document for the Editor
141+
var doc = createMockDocument(initialContent);
142+
143+
// create Editor instance
144+
var editor = new Editor(doc, true, mode, $editorHolder.get(0), {});
145+
146+
return { doc: doc, editor: editor };
147+
}
148+
149+
/**
150+
* Destroy the Editor instance for a given mock Document.
151+
* @param {!Document} doc
152+
*/
153+
function destroyMockEditor(doc) {
154+
EditorManager._destroyEditorIfUnneeded(doc);
155+
$("#mock-editor-holder").remove();
156+
}
123157

124158
function createTestWindowAndRun(spec, callback) {
125159
runs(function () {
@@ -554,9 +588,11 @@ define(function (require, exports, module) {
554588
exports.getBracketsSourceRoot = getBracketsSourceRoot;
555589
exports.makeAbsolute = makeAbsolute;
556590
exports.createMockDocument = createMockDocument;
591+
exports.createMockEditor = createMockEditor;
557592
exports.createTestWindowAndRun = createTestWindowAndRun;
558593
exports.closeTestWindow = closeTestWindow;
559594
exports.clickDialogButton = clickDialogButton;
595+
exports.destroyMockEditor = destroyMockEditor;
560596
exports.loadProjectInTestWindow = loadProjectInTestWindow;
561597
exports.openProjectFiles = openProjectFiles;
562598
exports.toggleQuickEditAtOffset = toggleQuickEditAtOffset;

0 commit comments

Comments
 (0)