restore defaults state: use tearDown() instead of 'finally blocks'

This commit is contained in:
Vassiliy.Kudryashov
2017-07-13 14:34:16 +03:00
parent 1bda8dda9e
commit 30dd479535
@@ -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(" <component name=\"FileEditorManager\">\n" +
" <leaf>\n" +
" <file leaf-file-name=\"foo.xsd\" pinned=\"false\" current=\"true\" current-in-tab=\"true\">\n" +
" <entry selected=\"true\" file=\"file://$PROJECT_DIR$/src/1.txt\">\n" +
" <provider editor-type-id=\"mock\" selected=\"true\">\n" +
" <state />\n" +
" </provider>\n" +
" <provider editor-type-id=\"text-editor\">\n" +
" <state/>\n" +
" </provider>\n" +
" </entry>\n" +
" </file>\n" +
" </leaf>\n" +
" </component>\n");
" <leaf>\n" +
" <file leaf-file-name=\"foo.xsd\" pinned=\"false\" current=\"true\" current-in-tab=\"true\">\n" +
" <entry selected=\"true\" file=\"file://$PROJECT_DIR$/src/1.txt\">\n" +
" <provider editor-type-id=\"mock\" selected=\"true\">\n" +
" <state />\n" +
" </provider>\n" +
" <provider editor-type-id=\"text-editor\">\n" +
" <state/>\n" +
" </provider>\n" +
" </entry>\n" +
" </file>\n" +
" </leaf>\n" +
" </component>\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 = "<component name=\"FileEditorManager\">\n" +
" <leaf>\n" +
" <file leaf-file-name=\"1.txt\" pinned=\"false\" current=\"false\" current-in-tab=\"false\">\n" +
" <entry file=\"file://$PROJECT_DIR$/src/1.txt\">\n" +
" <provider selected=\"true\" editor-type-id=\"text-editor\">\n" +
" <state line=\"0\" column=\"0\" selection-start=\"0\" selection-end=\"0\" vertical-scroll-proportion=\"0.0\">\n" +
" </state>\n" +
" </provider>\n" +
" </entry>\n" +
" </file>\n" +
" <file leaf-file-name=\"foo.xml\" pinned=\"true\" current=\"false\" current-in-tab=\"false\">\n" +
" <entry file=\"file://$PROJECT_DIR$/src/foo.xml\">\n" +
" <provider selected=\"true\" editor-type-id=\"text-editor\">\n" +
" <state line=\"0\" column=\"0\" selection-start=\"0\" selection-end=\"0\" vertical-scroll-proportion=\"0.0\">\n" +
" </state>\n" +
" </provider>\n" +
" </entry>\n" +
" </file>\n" +
" <file leaf-file-name=\"2.txt\" pinned=\"false\" current=\"true\" current-in-tab=\"true\">\n" +
" <entry file=\"file://$PROJECT_DIR$/src/2.txt\">\n" +
" <provider selected=\"true\" editor-type-id=\"text-editor\">\n" +
" <state line=\"0\" column=\"0\" selection-start=\"0\" selection-end=\"0\" vertical-scroll-proportion=\"0.0\">\n" +
" </state>\n" +
" </provider>\n" +
" </entry>\n" +
" </file>\n" +
" <file leaf-file-name=\"3.txt\" pinned=\"false\" current=\"false\" current-in-tab=\"false\">\n" +
" <entry file=\"file://$PROJECT_DIR$/src/3.txt\">\n" +
" <provider selected=\"true\" editor-type-id=\"text-editor\">\n" +
" <state line=\"0\" column=\"0\" selection-start=\"0\" selection-end=\"0\" vertical-scroll-proportion=\"0.0\">\n" +
" </state>\n" +
" </provider>\n" +
" </entry>\n" +
" </file>\n" +
" </leaf>\n" +
" </component>\n";
" <leaf>\n" +
" <file leaf-file-name=\"1.txt\" pinned=\"false\" current=\"false\" current-in-tab=\"false\">\n" +
" <entry file=\"file://$PROJECT_DIR$/src/1.txt\">\n" +
" <provider selected=\"true\" editor-type-id=\"text-editor\">\n" +
" <state line=\"0\" column=\"0\" selection-start=\"0\" selection-end=\"0\" vertical-scroll-proportion=\"0.0\">\n" +
" </state>\n" +
" </provider>\n" +
" </entry>\n" +
" </file>\n" +
" <file leaf-file-name=\"foo.xml\" pinned=\"true\" current=\"false\" current-in-tab=\"false\">\n" +
" <entry file=\"file://$PROJECT_DIR$/src/foo.xml\">\n" +
" <provider selected=\"true\" editor-type-id=\"text-editor\">\n" +
" <state line=\"0\" column=\"0\" selection-start=\"0\" selection-end=\"0\" vertical-scroll-proportion=\"0.0\">\n" +
" </state>\n" +
" </provider>\n" +
" </entry>\n" +
" </file>\n" +
" <file leaf-file-name=\"2.txt\" pinned=\"false\" current=\"true\" current-in-tab=\"true\">\n" +
" <entry file=\"file://$PROJECT_DIR$/src/2.txt\">\n" +
" <provider selected=\"true\" editor-type-id=\"text-editor\">\n" +
" <state line=\"0\" column=\"0\" selection-start=\"0\" selection-end=\"0\" vertical-scroll-proportion=\"0.0\">\n" +
" </state>\n" +
" </provider>\n" +
" </entry>\n" +
" </file>\n" +
" <file leaf-file-name=\"3.txt\" pinned=\"false\" current=\"false\" current-in-tab=\"false\">\n" +
" <entry file=\"file://$PROJECT_DIR$/src/3.txt\">\n" +
" <provider selected=\"true\" editor-type-id=\"text-editor\">\n" +
" <state line=\"0\" column=\"0\" selection-start=\"0\" selection-end=\"0\" vertical-scroll-proportion=\"0.0\">\n" +
" </state>\n" +
" </provider>\n" +
" </entry>\n" +
" </file>\n" +
" </leaf>\n" +
" </component>\n";
private void assertOpenFiles(String... fileNames) {
EditorWithProviderComposite[] files = myManager.getSplitters().getEditorsComposites();