diff --git a/platform/platform-tests/testSrc/com/intellij/openapi/fileEditor/FileEditorManagerTest.java b/platform/platform-tests/testSrc/com/intellij/openapi/fileEditor/FileEditorManagerTest.java index b7caba35d4f9..f95278edf6ae 100644 --- a/platform/platform-tests/testSrc/com/intellij/openapi/fileEditor/FileEditorManagerTest.java +++ b/platform/platform-tests/testSrc/com/intellij/openapi/fileEditor/FileEditorManagerTest.java @@ -40,7 +40,8 @@ import java.util.List; /** * @author Dmitry Avdeev - * Date: 4/16/13 + * @author Vassiliy Kudryashov + * Date: 4/16/13 */ @SuppressWarnings("ConstantConditions") public class FileEditorManagerTest extends FileEditorManagerTestCase { @@ -51,105 +52,101 @@ public class FileEditorManagerTest extends FileEditorManagerTestCase { assertOpenFiles("1.txt", "foo.xml", "2.txt", "3.txt"); } - public void testTabLimit() throws Exception { - int limit = UISettings.getInstance().getEditorTabLimit(); + @Override + protected void tearDown() throws Exception { try { - UISettings.getInstance().setEditorTabLimit(2); - openFiles(STRING); - // note that foo.xml is pinned - assertOpenFiles("foo.xml", "3.txt"); + UISettings template = new UISettings(); + UISettings.getInstance().setEditorTabLimit(template.getEditorTabLimit()); + UISettings.getInstance().setReuseNotModifiedTabs(template.getReuseNotModifiedTabs()); + UISettings.getInstance().setEditorTabPlacement(template.getEditorTabPlacement()); } finally { - UISettings.getInstance().setEditorTabLimit(limit); + super.tearDown(); } } + public void testTabLimit() throws Exception { + UISettings.getInstance().setEditorTabLimit(2); + openFiles(STRING); + // note that foo.xml is pinned + assertOpenFiles("foo.xml", "3.txt"); + } + public void testSingleTabLimit() throws Exception { - int limit = UISettings.getInstance().getEditorTabLimit(); - try { - UISettings.getInstance().setEditorTabLimit(1); - openFiles(STRING.replace("pinned=\"true\"", "pinned=\"false\"")); - assertOpenFiles("3.txt"); + UISettings.getInstance().setEditorTabLimit(1); + openFiles(STRING.replace("pinned=\"true\"", "pinned=\"false\"")); + assertOpenFiles("3.txt"); - myManager.closeAllFiles(); + myManager.closeAllFiles(); - openFiles(STRING); - // note that foo.xml is pinned - assertOpenFiles("foo.xml"); - myManager.openFile(getFile("/src/3.txt"), true); - assertOpenFiles("3.txt", "foo.xml");//limit is still 1 but pinned prevent closing tab and actual tab number may exceed the limit + openFiles(STRING); + // note that foo.xml is pinned + assertOpenFiles("foo.xml"); + myManager.openFile(getFile("/src/3.txt"), true); + assertOpenFiles("3.txt", "foo.xml");//limit is still 1 but pinned prevent closing tab and actual tab number may exceed the limit - myManager.closeAllFiles(); + myManager.closeAllFiles(); - myManager.openFile(getFile("/src/3.txt"), true); - myManager.openFile(getFile("/src/foo.xml"), true); - assertOpenFiles("foo.xml"); - callTrimToSize(); - assertOpenFiles("foo.xml"); - } - finally { - UISettings.getInstance().setEditorTabLimit(limit); - } + myManager.openFile(getFile("/src/3.txt"), true); + myManager.openFile(getFile("/src/foo.xml"), true); + assertOpenFiles("foo.xml"); + callTrimToSize(); + assertOpenFiles("foo.xml"); } public void testReuseNotModifiedTabs() { - int limit = UISettings.getInstance().getEditorTabLimit(); - boolean reuse = UISettings.getInstance().getReuseNotModifiedTabs(); - try { - UISettings.getInstance().setEditorTabLimit(2); - UISettings.getInstance().setReuseNotModifiedTabs(false); + UISettings.getInstance().setEditorTabLimit(2); + UISettings.getInstance().setReuseNotModifiedTabs(false); - myManager.openFile(getFile("/src/3.txt"), true); - myManager.openFile(getFile("/src/foo.xml"), true); - assertOpenFiles("3.txt","foo.xml"); - UISettings.getInstance().setEditorTabLimit(1); - callTrimToSize(); - assertOpenFiles("foo.xml"); - UISettings.getInstance().setEditorTabLimit(2); + myManager.openFile(getFile("/src/3.txt"), true); + myManager.openFile(getFile("/src/foo.xml"), true); + assertOpenFiles("3.txt", "foo.xml"); + UISettings.getInstance().setEditorTabLimit(1); + callTrimToSize(); + assertOpenFiles("foo.xml"); + UISettings.getInstance().setEditorTabLimit(2); - myManager.closeAllFiles(); + myManager.closeAllFiles(); - UISettings.getInstance().setReuseNotModifiedTabs(true); - myManager.openFile(getFile("/src/3.txt"), true); - assertOpenFiles("3.txt"); - myManager.openFile(getFile("/src/foo.xml"), true); - assertOpenFiles("foo.xml"); - } finally { - UISettings.getInstance().setEditorTabLimit(limit); - UISettings.getInstance().setReuseNotModifiedTabs(reuse); - } + UISettings.getInstance().setReuseNotModifiedTabs(true); + myManager.openFile(getFile("/src/3.txt"), true); + assertOpenFiles("3.txt"); + myManager.openFile(getFile("/src/foo.xml"), true); + assertOpenFiles("foo.xml"); } private void callTrimToSize() { - for (EditorsSplitters each: myManager.getAllSplitters()) { + for (EditorsSplitters each : myManager.getAllSplitters()) { each.trimToSize(UISettings.getInstance().getEditorTabLimit()); } } public void testOpenRecentEditorTab() throws Exception { - PlatformTestUtil.registerExtension(FileEditorProvider.EP_FILE_EDITOR_PROVIDER, new MyFileEditorProvider(), myFixture.getTestRootDisposable()); + PlatformTestUtil + .registerExtension(FileEditorProvider.EP_FILE_EDITOR_PROVIDER, new MyFileEditorProvider(), myFixture.getTestRootDisposable()); openFiles(" \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n"); + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n"); FileEditor[] selectedEditors = myManager.getSelectedEditors(); assertEquals(1, selectedEditors.length); assertEquals("mockEditor", selectedEditors[0].getName()); } public void testTrackSelectedEditor() throws Exception { - PlatformTestUtil.registerExtension(FileEditorProvider.EP_FILE_EDITOR_PROVIDER, new MyFileEditorProvider(), myFixture.getTestRootDisposable()); + PlatformTestUtil + .registerExtension(FileEditorProvider.EP_FILE_EDITOR_PROVIDER, new MyFileEditorProvider(), myFixture.getTestRootDisposable()); VirtualFile file = getFile("/src/1.txt"); assertNotNull(file); FileEditor[] editors = myManager.openFile(file, true); @@ -178,47 +175,43 @@ public class FileEditorManagerTest extends FileEditorManagerTestCase { } public void testStoringCaretStateForFileWithFoldingsWithNoTabs() throws Exception { - int savedValue = UISettings.getInstance().getEditorTabPlacement(); UISettings.getInstance().setEditorTabPlacement(UISettings.TABS_NONE); - try { - VirtualFile file = getFile("/src/Test.java"); - assertNotNull(file); - FileEditor[] editors = myManager.openFile(file, false); - assertEquals(1, editors.length); - assertTrue(editors[0] instanceof TextEditor); - Editor editor = ((TextEditor)editors[0]).getEditor(); - EditorTestUtil.waitForLoading(editor); - final FoldingModel foldingModel = editor.getFoldingModel(); - assertEquals(2, foldingModel.getAllFoldRegions().length); - foldingModel.runBatchFoldingOperation(() -> { - for (FoldRegion region : foldingModel.getAllFoldRegions()) { - region.setExpanded(false); - } - }); - int textLength = editor.getDocument().getTextLength(); - editor.getCaretModel().moveToOffset(textLength); - editor.getSelectionModel().setSelection(textLength - 1, textLength); + VirtualFile file = getFile("/src/Test.java"); + assertNotNull(file); + FileEditor[] editors = myManager.openFile(file, false); + assertEquals(1, editors.length); + assertTrue(editors[0] instanceof TextEditor); + Editor editor = ((TextEditor)editors[0]).getEditor(); + EditorTestUtil.waitForLoading(editor); + final FoldingModel foldingModel = editor.getFoldingModel(); + assertEquals(2, foldingModel.getAllFoldRegions().length); + foldingModel.runBatchFoldingOperation(() -> { + for (FoldRegion region : foldingModel.getAllFoldRegions()) { + region.setExpanded(false); + } + }); + int textLength = editor.getDocument().getTextLength(); + editor.getCaretModel().moveToOffset(textLength); + editor.getSelectionModel().setSelection(textLength - 1, textLength); - myManager.openFile(getFile("/src/1.txt"), false); - assertEquals(0, myManager.getEditors(file).length); - editors = myManager.openFile(file, false); + myManager.openFile(getFile("/src/1.txt"), false); + assertEquals(0, myManager.getEditors(file).length); + editors = myManager.openFile(file, false); - assertEquals(1, editors.length); - assertTrue(editors[0] instanceof TextEditor); - editor = ((TextEditor)editors[0]).getEditor(); - EditorTestUtil.waitForLoading(editor); - assertEquals(textLength, editor.getCaretModel().getOffset()); - assertEquals(textLength - 1, editor.getSelectionModel().getSelectionStart()); - assertEquals(textLength, editor.getSelectionModel().getSelectionEnd()); - } - finally { - UISettings.getInstance().setEditorTabPlacement(savedValue); - } + assertEquals(1, editors.length); + assertTrue(editors[0] instanceof TextEditor); + editor = ((TextEditor)editors[0]).getEditor(); + EditorTestUtil.waitForLoading(editor); + assertEquals(textLength, editor.getCaretModel().getOffset()); + assertEquals(textLength - 1, editor.getSelectionModel().getSelectionStart()); + assertEquals(textLength, editor.getSelectionModel().getSelectionEnd()); } public void testOpenInDumbMode() throws Exception { - PlatformTestUtil.registerExtension(FileEditorProvider.EP_FILE_EDITOR_PROVIDER, new MyFileEditorProvider(), myFixture.getTestRootDisposable()); - PlatformTestUtil.registerExtension(FileEditorProvider.EP_FILE_EDITOR_PROVIDER, new DumbAwareProvider(), myFixture.getTestRootDisposable()); + PlatformTestUtil + .registerExtension(FileEditorProvider.EP_FILE_EDITOR_PROVIDER, new MyFileEditorProvider(), myFixture.getTestRootDisposable()); + PlatformTestUtil + .registerExtension(FileEditorProvider.EP_FILE_EDITOR_PROVIDER, new DumbAwareProvider(), myFixture.getTestRootDisposable()); try { DumbServiceImpl.getInstance(getProject()).setDumb(true); VirtualFile file = getFile("/src/foo.bar"); @@ -234,41 +227,41 @@ public class FileEditorManagerTest extends FileEditorManagerTestCase { } private static final String STRING = "\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n"; + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n"; private void assertOpenFiles(String... fileNames) { EditorWithProviderComposite[] files = myManager.getSplitters().getEditorsComposites();