mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
test classes combined
This commit is contained in:
+86
-2
@@ -17,16 +17,22 @@ package com.intellij.openapi.fileEditor;
|
||||
|
||||
import com.intellij.AppTopics;
|
||||
import com.intellij.mock.MockVirtualFile;
|
||||
import com.intellij.openapi.application.AccessToken;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.ex.DocumentEx;
|
||||
import com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.io.IoTestUtil;
|
||||
import com.intellij.openapi.vfs.CharsetToolkit;
|
||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.vfs.VirtualFileEvent;
|
||||
import com.intellij.testFramework.PlatformTestCase;
|
||||
import com.intellij.psi.PsiDocumentManager;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.testFramework.PlatformLangTestCase;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.LocalTimeCounter;
|
||||
import com.intellij.util.PairProcessor;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -37,7 +43,7 @@ import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.util.Arrays;
|
||||
|
||||
public class FileDocumentManagerImplTest extends PlatformTestCase {
|
||||
public class FileDocumentManagerImplTest extends PlatformLangTestCase {
|
||||
private FileDocumentManagerImpl myDocumentManager;
|
||||
|
||||
public Boolean myReloadFromDisk;
|
||||
@@ -575,4 +581,82 @@ public class FileDocumentManagerImplTest extends PlatformTestCase {
|
||||
assertNotSame(file.getModificationStamp(), modificationStamp);
|
||||
assertEquals(file.getModificationStamp(), document.getModificationStamp());
|
||||
}
|
||||
|
||||
|
||||
public void testFileTypeModificationDocumentPreservation() throws Exception {
|
||||
File ioFile = IoTestUtil.createTestFile("test.html", "<html>some text</html>");
|
||||
VirtualFile file = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(ioFile);
|
||||
assertNotNull(ioFile.getPath(), file);
|
||||
|
||||
FileDocumentManager documentManager = FileDocumentManager.getInstance();
|
||||
Document original = documentManager.getDocument(file);
|
||||
assertNotNull(file.getPath(), original);
|
||||
|
||||
renameFile(file, "test.wtf");
|
||||
Document afterRename = documentManager.getDocument(file);
|
||||
assertTrue(afterRename + " != " + original, afterRename == original);
|
||||
}
|
||||
|
||||
public void testFileTypeChangeDocumentDetach() throws Exception {
|
||||
File ioFile = IoTestUtil.createTestFile("test.html", "<html>some text</html>");
|
||||
VirtualFile file = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(ioFile);
|
||||
assertNotNull(ioFile.getPath(), file);
|
||||
|
||||
FileDocumentManager documentManager = FileDocumentManager.getInstance();
|
||||
Document original = documentManager.getDocument(file);
|
||||
assertNotNull(file.getPath(), original);
|
||||
|
||||
renameFile(file, "test.png");
|
||||
Document afterRename = documentManager.getDocument(file);
|
||||
assertNull(afterRename + " != null", afterRename);
|
||||
}
|
||||
|
||||
private static void renameFile(VirtualFile file, String newName) throws IOException {
|
||||
AccessToken token = ApplicationManager.getApplication().acquireWriteActionLock(null);
|
||||
try {
|
||||
file.rename(null, newName);
|
||||
}
|
||||
finally {
|
||||
token.finish();
|
||||
}
|
||||
}
|
||||
|
||||
public void testNoPSIModificationsDuringSave() throws IOException {
|
||||
File ioFile = IoTestUtil.createTestFile("test.txt", "<html>some text</html>");
|
||||
VirtualFile virtualFile = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(ioFile);
|
||||
assertNotNull(ioFile.getPath(), virtualFile);
|
||||
|
||||
FileDocumentManager documentManager = FileDocumentManager.getInstance();
|
||||
Document original = documentManager.getDocument(virtualFile);
|
||||
assertNotNull(virtualFile.getPath(), original);
|
||||
|
||||
final PsiFile file = getPsiFile(original);
|
||||
FileDocumentManagerListener saveListener = new FileDocumentManagerAdapter() {
|
||||
@Override
|
||||
public void beforeDocumentSaving(@NotNull Document document) {
|
||||
WriteCommandAction.runWriteCommandAction(getProject(), new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
file.getFirstChild().delete();
|
||||
fail("Must not modify PSI inside save listener");
|
||||
}
|
||||
catch (IncorrectOperationException e) {
|
||||
assertEquals("Must not modify PSI inside save listener", e.getMessage());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
getProject().getMessageBus().connect(getTestRootDisposable()).subscribe(AppTopics.FILE_DOCUMENT_SYNC, saveListener);
|
||||
final Document document = PsiDocumentManager.getInstance(getProject()).getDocument(file);
|
||||
WriteCommandAction.runWriteCommandAction(getProject(), new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
document.insertString(1,"y");
|
||||
}
|
||||
});
|
||||
|
||||
FileDocumentManager.getInstance().saveAllDocuments();
|
||||
}
|
||||
}
|
||||
|
||||
-113
@@ -1,113 +0,0 @@
|
||||
/*
|
||||
* Copyright 2000-2013 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.fileEditor;
|
||||
|
||||
import com.intellij.AppTopics;
|
||||
import com.intellij.openapi.application.AccessToken;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.util.io.IoTestUtil;
|
||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiDocumentManager;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.testFramework.PlatformLangTestCase;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
public class RealFileDocumentManagerTest extends PlatformLangTestCase {
|
||||
public void testFileTypeModificationDocumentPreservation() throws Exception {
|
||||
File ioFile = IoTestUtil.createTestFile("test.html", "<html>some text</html>");
|
||||
VirtualFile file = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(ioFile);
|
||||
assertNotNull(ioFile.getPath(), file);
|
||||
|
||||
FileDocumentManager documentManager = FileDocumentManager.getInstance();
|
||||
Document original = documentManager.getDocument(file);
|
||||
assertNotNull(file.getPath(), original);
|
||||
|
||||
renameFile(file, "test.wtf");
|
||||
Document afterRename = documentManager.getDocument(file);
|
||||
assertTrue(afterRename + " != " + original, afterRename == original);
|
||||
}
|
||||
|
||||
public void testFileTypeChangeDocumentDetach() throws Exception {
|
||||
File ioFile = IoTestUtil.createTestFile("test.html", "<html>some text</html>");
|
||||
VirtualFile file = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(ioFile);
|
||||
assertNotNull(ioFile.getPath(), file);
|
||||
|
||||
FileDocumentManager documentManager = FileDocumentManager.getInstance();
|
||||
Document original = documentManager.getDocument(file);
|
||||
assertNotNull(file.getPath(), original);
|
||||
|
||||
renameFile(file, "test.png");
|
||||
Document afterRename = documentManager.getDocument(file);
|
||||
assertNull(afterRename + " != null", afterRename);
|
||||
}
|
||||
|
||||
private static void renameFile(VirtualFile file, String newName) throws IOException {
|
||||
AccessToken token = ApplicationManager.getApplication().acquireWriteActionLock(RealFileDocumentManagerTest.class);
|
||||
try {
|
||||
file.rename(RealFileDocumentManagerTest.class, newName);
|
||||
}
|
||||
finally {
|
||||
token.finish();
|
||||
}
|
||||
}
|
||||
|
||||
public void testNoPSIModificationsDuringSave() throws IOException {
|
||||
File ioFile = IoTestUtil.createTestFile("test.txt", "<html>some text</html>");
|
||||
VirtualFile virtualFile = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(ioFile);
|
||||
assertNotNull(ioFile.getPath(), virtualFile);
|
||||
|
||||
FileDocumentManager documentManager = FileDocumentManager.getInstance();
|
||||
Document original = documentManager.getDocument(virtualFile);
|
||||
assertNotNull(virtualFile.getPath(), original);
|
||||
|
||||
final PsiFile file = getPsiFile(original);
|
||||
FileDocumentManagerListener saveListener = new FileDocumentManagerAdapter() {
|
||||
@Override
|
||||
public void beforeDocumentSaving(@NotNull Document document) {
|
||||
WriteCommandAction.runWriteCommandAction(getProject(), new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
file.getFirstChild().delete();
|
||||
fail("Must not modify PSI inside save listener");
|
||||
}
|
||||
catch (IncorrectOperationException e) {
|
||||
assertEquals("Must not modify PSI inside save listener", e.getMessage());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
getProject().getMessageBus().connect(getTestRootDisposable()).subscribe(AppTopics.FILE_DOCUMENT_SYNC, saveListener);
|
||||
final Document document = PsiDocumentManager.getInstance(getProject()).getDocument(file);
|
||||
WriteCommandAction.runWriteCommandAction(getProject(), new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
document.insertString(1,"y");
|
||||
}
|
||||
});
|
||||
|
||||
FileDocumentManager.getInstance().saveAllDocuments();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user