mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
restore defaults state: use tearDown() instead of 'finally blocks'
This commit is contained in:
+130
-137
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user