/* * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.intellij.openapi.editor; import com.intellij.openapi.editor.impl.DocumentImpl; import com.intellij.openapi.fileEditor.FileEditor; import com.intellij.openapi.fileEditor.HeavyFileEditorManagerTestCase; import com.intellij.openapi.fileEditor.TextEditor; import com.intellij.openapi.fileTypes.PlainTextFileType; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiFile; import com.intellij.testFramework.EditorTestUtil; public class EditorMultiCaretStateRestoreTest extends HeavyFileEditorManagerTestCase { public void testRestoreState() throws Exception { String text = "some<caret> text<caret>\n" + "some <selection><caret>other</selection> <selection>text<caret></selection>\n" + "<selection>ano<caret>ther</selection> line"; PsiFile psiFile = myFixture.configureByText(PlainTextFileType.INSTANCE, text); VirtualFile virtualFile = psiFile.getVirtualFile(); assertNotNull(virtualFile); myManager.openFile(virtualFile, false); myManager.closeAllFiles(); FileEditor[] fileEditors = myManager.openFile(virtualFile, false); assertNotNull(fileEditors); assertEquals(1, fileEditors.length); Editor editor = ((TextEditor)fileEditors[0]).getEditor(); verifyEditorState(editor, text); } private static void verifyEditorState(Editor editor, String textWithMarkup) { final Document document = new DocumentImpl(textWithMarkup); EditorTestUtil.CaretAndSelectionState caretAndSelectionState = EditorTestUtil.extractCaretAndSelectionMarkers(document); assertEquals(document.getCharsSequence().toString(), editor.getDocument().getText()); EditorTestUtil.verifyCaretAndSelectionState(editor, caretAndSelectionState); } }