@@ -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