Remove unneeded copied mock test framework classes
These classes were copied when tests-common were compiled with JDK 6, to prevent dependencies on classes compiled with JDK 8
This commit is contained in:
+2
-3
@@ -19,7 +19,7 @@ package org.jetbrains.kotlin.test.testFramework;
|
|||||||
import com.intellij.core.CoreASTFactory;
|
import com.intellij.core.CoreASTFactory;
|
||||||
import com.intellij.lang.*;
|
import com.intellij.lang.*;
|
||||||
import com.intellij.lang.impl.PsiBuilderFactoryImpl;
|
import com.intellij.lang.impl.PsiBuilderFactoryImpl;
|
||||||
import com.intellij.mock.MockFileDocumentManagerImpl;
|
import com.intellij.mock.*;
|
||||||
import com.intellij.openapi.Disposable;
|
import com.intellij.openapi.Disposable;
|
||||||
import com.intellij.openapi.application.PathManager;
|
import com.intellij.openapi.application.PathManager;
|
||||||
import com.intellij.openapi.editor.Document;
|
import com.intellij.openapi.editor.Document;
|
||||||
@@ -55,7 +55,6 @@ import com.intellij.util.messages.MessageBusFactory;
|
|||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
import org.jetbrains.annotations.NonNls;
|
import org.jetbrains.annotations.NonNls;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.kotlin.test.testFramework.mock.*;
|
|
||||||
import org.picocontainer.ComponentAdapter;
|
import org.picocontainer.ComponentAdapter;
|
||||||
import org.picocontainer.MutablePicoContainer;
|
import org.picocontainer.MutablePicoContainer;
|
||||||
|
|
||||||
@@ -139,7 +138,7 @@ public abstract class KtParsingTestCase extends KtPlatformLiteFixture {
|
|||||||
addExplicitExtension(LanguageParserDefinitions.INSTANCE, this.myLanguage, definition);
|
addExplicitExtension(LanguageParserDefinitions.INSTANCE, this.myLanguage, definition);
|
||||||
registerComponentInstance(
|
registerComponentInstance(
|
||||||
getApplication().getPicoContainer(), FileTypeManager.class,
|
getApplication().getPicoContainer(), FileTypeManager.class,
|
||||||
new KtMockFileTypeManager(new KtMockLanguageFileType(myLanguage, myFileExt)));
|
new MockFileTypeManager(new MockLanguageFileType(myLanguage, myFileExt)));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected <T> void addExplicitExtension(final LanguageExtension<T> instance, final Language language, final T object) {
|
protected <T> void addExplicitExtension(final LanguageExtension<T> instance, final Language language, final T object) {
|
||||||
|
|||||||
+3
-6
@@ -19,7 +19,7 @@ package org.jetbrains.kotlin.test.testFramework;
|
|||||||
import com.intellij.core.CoreASTFactory;
|
import com.intellij.core.CoreASTFactory;
|
||||||
import com.intellij.lang.*;
|
import com.intellij.lang.*;
|
||||||
import com.intellij.lang.impl.PsiBuilderFactoryImpl;
|
import com.intellij.lang.impl.PsiBuilderFactoryImpl;
|
||||||
import com.intellij.mock.MockFileDocumentManagerImpl;
|
import com.intellij.mock.*;
|
||||||
import com.intellij.openapi.Disposable;
|
import com.intellij.openapi.Disposable;
|
||||||
import com.intellij.openapi.application.PathManager;
|
import com.intellij.openapi.application.PathManager;
|
||||||
import com.intellij.openapi.editor.Document;
|
import com.intellij.openapi.editor.Document;
|
||||||
@@ -42,9 +42,7 @@ import com.intellij.pom.PomModel;
|
|||||||
import com.intellij.pom.core.impl.PomModelImpl;
|
import com.intellij.pom.core.impl.PomModelImpl;
|
||||||
import com.intellij.pom.tree.TreeAspect;
|
import com.intellij.pom.tree.TreeAspect;
|
||||||
import com.intellij.psi.*;
|
import com.intellij.psi.*;
|
||||||
import com.intellij.psi.impl.DebugUtil;
|
import com.intellij.psi.impl.*;
|
||||||
import com.intellij.psi.impl.PsiCachedValuesFactory;
|
|
||||||
import com.intellij.psi.impl.PsiFileFactoryImpl;
|
|
||||||
import com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistry;
|
import com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistry;
|
||||||
import com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistryImpl;
|
import com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistryImpl;
|
||||||
import com.intellij.psi.impl.source.text.BlockSupportImpl;
|
import com.intellij.psi.impl.source.text.BlockSupportImpl;
|
||||||
@@ -59,7 +57,6 @@ import com.intellij.util.messages.MessageBusFactory;
|
|||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
import org.jetbrains.annotations.NonNls;
|
import org.jetbrains.annotations.NonNls;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.kotlin.test.testFramework.mock.*;
|
|
||||||
import org.picocontainer.ComponentAdapter;
|
import org.picocontainer.ComponentAdapter;
|
||||||
import org.picocontainer.MutablePicoContainer;
|
import org.picocontainer.MutablePicoContainer;
|
||||||
|
|
||||||
@@ -143,7 +140,7 @@ public abstract class KtParsingTestCase extends KtPlatformLiteFixture {
|
|||||||
addExplicitExtension(LanguageParserDefinitions.INSTANCE, this.myLanguage, definition);
|
addExplicitExtension(LanguageParserDefinitions.INSTANCE, this.myLanguage, definition);
|
||||||
registerComponentInstance(
|
registerComponentInstance(
|
||||||
getApplication().getPicoContainer(), FileTypeManager.class,
|
getApplication().getPicoContainer(), FileTypeManager.class,
|
||||||
new KtMockFileTypeManager(new KtMockLanguageFileType(myLanguage, myFileExt)));
|
new MockFileTypeManager(new MockLanguageFileType(myLanguage, myFileExt)));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected <T> void addExplicitExtension(final LanguageExtension<T> instance, final Language language, final T object) {
|
protected <T> void addExplicitExtension(final LanguageExtension<T> instance, final Language language, final T object) {
|
||||||
|
|||||||
-336
@@ -1,336 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2000-2016 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 org.jetbrains.kotlin.test.testFramework;
|
|
||||||
|
|
||||||
import com.intellij.core.CoreASTFactory;
|
|
||||||
import com.intellij.lang.*;
|
|
||||||
import com.intellij.lang.impl.PsiBuilderFactoryImpl;
|
|
||||||
import com.intellij.mock.MockFileDocumentManagerImpl;
|
|
||||||
import com.intellij.openapi.Disposable;
|
|
||||||
import com.intellij.openapi.application.PathManager;
|
|
||||||
import com.intellij.openapi.editor.Document;
|
|
||||||
import com.intellij.openapi.editor.EditorFactory;
|
|
||||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
|
||||||
import com.intellij.openapi.extensions.Extensions;
|
|
||||||
import com.intellij.openapi.fileEditor.FileDocumentManager;
|
|
||||||
import com.intellij.openapi.fileEditor.impl.LoadTextUtil;
|
|
||||||
import com.intellij.openapi.fileTypes.FileTypeFactory;
|
|
||||||
import com.intellij.openapi.fileTypes.FileTypeManager;
|
|
||||||
import com.intellij.openapi.progress.EmptyProgressIndicator;
|
|
||||||
import com.intellij.openapi.progress.ProgressManager;
|
|
||||||
import com.intellij.openapi.progress.impl.CoreProgressManager;
|
|
||||||
import com.intellij.openapi.util.Disposer;
|
|
||||||
import com.intellij.openapi.util.Key;
|
|
||||||
import com.intellij.openapi.util.TextRange;
|
|
||||||
import com.intellij.openapi.util.io.FileUtil;
|
|
||||||
import com.intellij.openapi.vfs.CharsetToolkit;
|
|
||||||
import com.intellij.pom.PomModel;
|
|
||||||
import com.intellij.pom.core.impl.PomModelImpl;
|
|
||||||
import com.intellij.pom.tree.TreeAspect;
|
|
||||||
import com.intellij.psi.*;
|
|
||||||
import com.intellij.psi.impl.*;
|
|
||||||
import com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistry;
|
|
||||||
import com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistryImpl;
|
|
||||||
import com.intellij.psi.util.CachedValuesManager;
|
|
||||||
import com.intellij.testFramework.LightVirtualFile;
|
|
||||||
import com.intellij.testFramework.TestDataFile;
|
|
||||||
import com.intellij.util.CachedValuesManagerImpl;
|
|
||||||
import com.intellij.util.Function;
|
|
||||||
import com.intellij.util.messages.MessageBus;
|
|
||||||
import com.intellij.util.messages.MessageBusFactory;
|
|
||||||
import junit.framework.TestCase;
|
|
||||||
import org.jetbrains.annotations.NonNls;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.jetbrains.kotlin.test.testFramework.mock.*;
|
|
||||||
import org.picocontainer.ComponentAdapter;
|
|
||||||
import org.picocontainer.MutablePicoContainer;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
@SuppressWarnings("ALL")
|
|
||||||
public abstract class KtParsingTestCase extends KtPlatformLiteFixture {
|
|
||||||
public static final Key<Document> HARD_REF_TO_DOCUMENT_KEY = Key.create("HARD_REF_TO_DOCUMENT_KEY");
|
|
||||||
protected String myFilePrefix = "";
|
|
||||||
protected String myFileExt;
|
|
||||||
protected final String myFullDataPath;
|
|
||||||
protected PsiFile myFile;
|
|
||||||
private MockPsiManager myPsiManager;
|
|
||||||
private PsiFileFactoryImpl myFileFactory;
|
|
||||||
protected Language myLanguage;
|
|
||||||
private final ParserDefinition[] myDefinitions;
|
|
||||||
private final boolean myLowercaseFirstLetter;
|
|
||||||
|
|
||||||
protected KtParsingTestCase(@NonNls @NotNull String dataPath, @NotNull String fileExt, @NotNull ParserDefinition... definitions) {
|
|
||||||
this(dataPath, fileExt, false, definitions);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected KtParsingTestCase(@NonNls @NotNull String dataPath, @NotNull String fileExt, boolean lowercaseFirstLetter, @NotNull ParserDefinition... definitions) {
|
|
||||||
myDefinitions = definitions;
|
|
||||||
myFullDataPath = getTestDataPath() + "/" + dataPath;
|
|
||||||
myFileExt = fileExt;
|
|
||||||
myLowercaseFirstLetter = lowercaseFirstLetter;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void setUp() throws Exception {
|
|
||||||
super.setUp();
|
|
||||||
initApplication();
|
|
||||||
ComponentAdapter component = getApplication().getPicoContainer().getComponentAdapter(ProgressManager.class.getName());
|
|
||||||
|
|
||||||
Extensions.registerAreaClass("IDEA_PROJECT", null);
|
|
||||||
myProject = new MockProjectEx(getTestRootDisposable());
|
|
||||||
myPsiManager = new MockPsiManager(myProject);
|
|
||||||
myFileFactory = new PsiFileFactoryImpl(myPsiManager);
|
|
||||||
MutablePicoContainer appContainer = getApplication().getPicoContainer();
|
|
||||||
registerComponentInstance(appContainer, MessageBus.class, MessageBusFactory.newMessageBus(getApplication()));
|
|
||||||
final MockEditorFactory editorFactory = new MockEditorFactory();
|
|
||||||
registerComponentInstance(appContainer, EditorFactory.class, editorFactory);
|
|
||||||
registerComponentInstance(appContainer, FileDocumentManager.class, new MockFileDocumentManagerImpl(new Function<CharSequence, Document>() {
|
|
||||||
@Override
|
|
||||||
public Document fun(CharSequence charSequence) {
|
|
||||||
return editorFactory.createDocument(charSequence);
|
|
||||||
}
|
|
||||||
}, HARD_REF_TO_DOCUMENT_KEY));
|
|
||||||
registerComponentInstance(appContainer, PsiDocumentManager.class, new MockPsiDocumentManager());
|
|
||||||
registerApplicationService(PsiBuilderFactory.class, new PsiBuilderFactoryImpl());
|
|
||||||
registerApplicationService(DefaultASTFactory.class, new CoreASTFactory());
|
|
||||||
registerApplicationService(ReferenceProvidersRegistry.class, new ReferenceProvidersRegistryImpl());
|
|
||||||
|
|
||||||
registerApplicationService(ProgressManager.class, new CoreProgressManager());
|
|
||||||
|
|
||||||
myProject.registerService(CachedValuesManager.class, new CachedValuesManagerImpl(myProject, new PsiCachedValuesFactory(myPsiManager)));
|
|
||||||
myProject.registerService(PsiManager.class, myPsiManager);
|
|
||||||
|
|
||||||
this.registerExtensionPoint(FileTypeFactory.FILE_TYPE_FACTORY_EP, FileTypeFactory.class);
|
|
||||||
registerExtensionPoint(MetaLanguage.EP_NAME, MetaLanguage.class);
|
|
||||||
|
|
||||||
for (ParserDefinition definition : myDefinitions) {
|
|
||||||
addExplicitExtension(LanguageParserDefinitions.INSTANCE, definition.getFileNodeType().getLanguage(), definition);
|
|
||||||
}
|
|
||||||
if (myDefinitions.length > 0) {
|
|
||||||
configureFromParserDefinition(myDefinitions[0], myFileExt);
|
|
||||||
}
|
|
||||||
|
|
||||||
// That's for reparse routines
|
|
||||||
final PomModelImpl pomModel = new PomModelImpl(myProject);
|
|
||||||
myProject.registerService(PomModel.class, pomModel);
|
|
||||||
new TreeAspect(pomModel);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void configureFromParserDefinition(ParserDefinition definition, String extension) {
|
|
||||||
myLanguage = definition.getFileNodeType().getLanguage();
|
|
||||||
myFileExt = extension;
|
|
||||||
addExplicitExtension(LanguageParserDefinitions.INSTANCE, this.myLanguage, definition);
|
|
||||||
registerComponentInstance(
|
|
||||||
getApplication().getPicoContainer(), FileTypeManager.class,
|
|
||||||
new KtMockFileTypeManager(new KtMockLanguageFileType(myLanguage, myFileExt)));
|
|
||||||
}
|
|
||||||
|
|
||||||
protected <T> void addExplicitExtension(final LanguageExtension<T> instance, final Language language, final T object) {
|
|
||||||
instance.addExplicitExtension(language, object);
|
|
||||||
Disposer.register(myProject, new Disposable() {
|
|
||||||
@Override
|
|
||||||
public void dispose() {
|
|
||||||
instance.removeExplicitExtension(language, object);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected <T> void registerExtensionPoint(final ExtensionPointName<T> extensionPointName, Class<T> aClass) {
|
|
||||||
super.registerExtensionPoint(extensionPointName, aClass);
|
|
||||||
Disposer.register(myProject, new Disposable() {
|
|
||||||
@Override
|
|
||||||
public void dispose() {
|
|
||||||
Extensions.getRootArea().unregisterExtensionPoint(extensionPointName.getName());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
protected <T> void registerApplicationService(final Class<T> aClass, T object) {
|
|
||||||
getApplication().registerService(aClass, object);
|
|
||||||
Disposer.register(myProject, new Disposable() {
|
|
||||||
@Override
|
|
||||||
public void dispose() {
|
|
||||||
getApplication().getPicoContainer().unregisterComponent(aClass.getName());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public MockProjectEx getProject() {
|
|
||||||
return myProject;
|
|
||||||
}
|
|
||||||
|
|
||||||
public MockPsiManager getPsiManager() {
|
|
||||||
return myPsiManager;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void tearDown() throws Exception {
|
|
||||||
super.tearDown();
|
|
||||||
myFile = null;
|
|
||||||
myProject = null;
|
|
||||||
myPsiManager = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected String getTestDataPath() {
|
|
||||||
return PathManager.getHomePath();
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public final String getTestName() {
|
|
||||||
return getTestName(myLowercaseFirstLetter);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected boolean includeRanges() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected boolean skipSpaces() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected boolean checkAllPsiRoots() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void doTest(boolean checkResult) {
|
|
||||||
String name = getTestName();
|
|
||||||
try {
|
|
||||||
String text = loadFile(name + "." + myFileExt);
|
|
||||||
myFile = createPsiFile(name, text);
|
|
||||||
ensureParsed(myFile);
|
|
||||||
assertEquals("light virtual file text mismatch", text, ((LightVirtualFile)myFile.getVirtualFile()).getContent().toString());
|
|
||||||
assertEquals("virtual file text mismatch", text, LoadTextUtil.loadText(myFile.getVirtualFile()));
|
|
||||||
assertEquals("doc text mismatch", text, myFile.getViewProvider().getDocument().getText());
|
|
||||||
assertEquals("psi text mismatch", text, myFile.getText());
|
|
||||||
ensureCorrectReparse(myFile);
|
|
||||||
if (checkResult){
|
|
||||||
checkResult(name, myFile);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
toParseTreeText(myFile, skipSpaces(), includeRanges());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (IOException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void doTest(String suffix) throws IOException {
|
|
||||||
String name = getTestName();
|
|
||||||
String text = loadFile(name + "." + myFileExt);
|
|
||||||
myFile = createPsiFile(name, text);
|
|
||||||
ensureParsed(myFile);
|
|
||||||
assertEquals(text, myFile.getText());
|
|
||||||
checkResult(name + suffix, myFile);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void doCodeTest(String code) throws IOException {
|
|
||||||
String name = getTestName();
|
|
||||||
myFile = createPsiFile("a", code);
|
|
||||||
ensureParsed(myFile);
|
|
||||||
assertEquals(code, myFile.getText());
|
|
||||||
checkResult(myFilePrefix + name, myFile);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected PsiFile createPsiFile(String name, String text) {
|
|
||||||
return createFile(name + "." + myFileExt, text);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected PsiFile createFile(@NonNls String name, String text) {
|
|
||||||
LightVirtualFile virtualFile = new LightVirtualFile(name, myLanguage, text);
|
|
||||||
virtualFile.setCharset(CharsetToolkit.UTF8_CHARSET);
|
|
||||||
return createFile(virtualFile);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected PsiFile createFile(LightVirtualFile virtualFile) {
|
|
||||||
return myFileFactory.trySetupPsiForFile(virtualFile, myLanguage, true, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void checkResult(@NonNls @TestDataFile String targetDataName, final PsiFile file) throws IOException {
|
|
||||||
doCheckResult(myFullDataPath, file, checkAllPsiRoots(), targetDataName, skipSpaces(), includeRanges());
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void doCheckResult(String testDataDir,
|
|
||||||
PsiFile file,
|
|
||||||
boolean checkAllPsiRoots,
|
|
||||||
String targetDataName,
|
|
||||||
boolean skipSpaces,
|
|
||||||
boolean printRanges) throws IOException {
|
|
||||||
FileViewProvider provider = file.getViewProvider();
|
|
||||||
Set<Language> languages = provider.getLanguages();
|
|
||||||
|
|
||||||
if (!checkAllPsiRoots || languages.size() == 1) {
|
|
||||||
doCheckResult(testDataDir, targetDataName + ".txt", toParseTreeText(file, skipSpaces, printRanges).trim());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (Language language : languages) {
|
|
||||||
PsiFile root = provider.getPsi(language);
|
|
||||||
String expectedName = targetDataName + "." + language.getID() + ".txt";
|
|
||||||
doCheckResult(testDataDir, expectedName, toParseTreeText(root, skipSpaces, printRanges).trim());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void checkResult(String actual) throws IOException {
|
|
||||||
String name = getTestName();
|
|
||||||
doCheckResult(myFullDataPath, myFilePrefix + name + ".txt", actual);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void checkResult(@TestDataFile @NonNls String targetDataName, String actual) throws IOException {
|
|
||||||
doCheckResult(myFullDataPath, targetDataName, actual);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void doCheckResult(String fullPath, String targetDataName, String actual) throws IOException {
|
|
||||||
String expectedFileName = fullPath + File.separatorChar + targetDataName;
|
|
||||||
KtUsefulTestCase.assertSameLinesWithFile(expectedFileName, actual);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected static String toParseTreeText(PsiElement file, boolean skipSpaces, boolean printRanges) {
|
|
||||||
return DebugUtil.psiToString(file, skipSpaces, printRanges);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected String loadFile(@NonNls @TestDataFile String name) throws IOException {
|
|
||||||
return loadFileDefault(myFullDataPath, name);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String loadFileDefault(String dir, String name) throws IOException {
|
|
||||||
return FileUtil.loadFile(new File(dir, name), CharsetToolkit.UTF8, true).trim();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void ensureParsed(PsiFile file) {
|
|
||||||
file.accept(new PsiElementVisitor() {
|
|
||||||
@Override
|
|
||||||
public void visitElement(PsiElement element) {
|
|
||||||
element.acceptChildren(this);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void ensureCorrectReparse(@NotNull PsiFile file) {
|
|
||||||
String psiToStringDefault = DebugUtil.psiToString(file, false, false);
|
|
||||||
String fileText = file.getText();
|
|
||||||
DiffLog diffLog = (new BlockSupportImpl(file.getProject())).reparseRange(
|
|
||||||
file, file.getNode(), TextRange.allOf(fileText), fileText, new EmptyProgressIndicator(), fileText);
|
|
||||||
diffLog.performActualPsiChange(file);
|
|
||||||
|
|
||||||
TestCase.assertEquals(psiToStringDefault, DebugUtil.psiToString(file, false, false));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+3
-6
@@ -19,7 +19,7 @@ package org.jetbrains.kotlin.test.testFramework;
|
|||||||
import com.intellij.core.CoreASTFactory;
|
import com.intellij.core.CoreASTFactory;
|
||||||
import com.intellij.lang.*;
|
import com.intellij.lang.*;
|
||||||
import com.intellij.lang.impl.PsiBuilderFactoryImpl;
|
import com.intellij.lang.impl.PsiBuilderFactoryImpl;
|
||||||
import com.intellij.mock.MockFileDocumentManagerImpl;
|
import com.intellij.mock.*;
|
||||||
import com.intellij.openapi.Disposable;
|
import com.intellij.openapi.Disposable;
|
||||||
import com.intellij.openapi.application.PathManager;
|
import com.intellij.openapi.application.PathManager;
|
||||||
import com.intellij.openapi.editor.Document;
|
import com.intellij.openapi.editor.Document;
|
||||||
@@ -42,9 +42,7 @@ import com.intellij.pom.PomModel;
|
|||||||
import com.intellij.pom.core.impl.PomModelImpl;
|
import com.intellij.pom.core.impl.PomModelImpl;
|
||||||
import com.intellij.pom.tree.TreeAspect;
|
import com.intellij.pom.tree.TreeAspect;
|
||||||
import com.intellij.psi.*;
|
import com.intellij.psi.*;
|
||||||
import com.intellij.psi.impl.DebugUtil;
|
import com.intellij.psi.impl.*;
|
||||||
import com.intellij.psi.impl.PsiCachedValuesFactory;
|
|
||||||
import com.intellij.psi.impl.PsiFileFactoryImpl;
|
|
||||||
import com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistry;
|
import com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistry;
|
||||||
import com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistryImpl;
|
import com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistryImpl;
|
||||||
import com.intellij.psi.impl.source.text.BlockSupportImpl;
|
import com.intellij.psi.impl.source.text.BlockSupportImpl;
|
||||||
@@ -59,7 +57,6 @@ import com.intellij.util.messages.MessageBusFactory;
|
|||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
import org.jetbrains.annotations.NonNls;
|
import org.jetbrains.annotations.NonNls;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.kotlin.test.testFramework.mock.*;
|
|
||||||
import org.picocontainer.ComponentAdapter;
|
import org.picocontainer.ComponentAdapter;
|
||||||
import org.picocontainer.MutablePicoContainer;
|
import org.picocontainer.MutablePicoContainer;
|
||||||
|
|
||||||
@@ -143,7 +140,7 @@ public abstract class KtParsingTestCase extends KtPlatformLiteFixture {
|
|||||||
addExplicitExtension(LanguageParserDefinitions.INSTANCE, this.myLanguage, definition);
|
addExplicitExtension(LanguageParserDefinitions.INSTANCE, this.myLanguage, definition);
|
||||||
registerComponentInstance(
|
registerComponentInstance(
|
||||||
getApplication().getPicoContainer(), FileTypeManager.class,
|
getApplication().getPicoContainer(), FileTypeManager.class,
|
||||||
new KtMockFileTypeManager(new KtMockLanguageFileType(myLanguage, myFileExt)));
|
new MockFileTypeManager(new MockLanguageFileType(myLanguage, myFileExt)));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected <T> void addExplicitExtension(final LanguageExtension<T> instance, final Language language, final T object) {
|
protected <T> void addExplicitExtension(final LanguageExtension<T> instance, final Language language, final T object) {
|
||||||
|
|||||||
+2
-3
@@ -19,7 +19,7 @@ package org.jetbrains.kotlin.test.testFramework;
|
|||||||
import com.intellij.core.CoreASTFactory;
|
import com.intellij.core.CoreASTFactory;
|
||||||
import com.intellij.lang.*;
|
import com.intellij.lang.*;
|
||||||
import com.intellij.lang.impl.PsiBuilderFactoryImpl;
|
import com.intellij.lang.impl.PsiBuilderFactoryImpl;
|
||||||
import com.intellij.mock.MockFileDocumentManagerImpl;
|
import com.intellij.mock.*;
|
||||||
import com.intellij.openapi.Disposable;
|
import com.intellij.openapi.Disposable;
|
||||||
import com.intellij.openapi.application.PathManager;
|
import com.intellij.openapi.application.PathManager;
|
||||||
import com.intellij.openapi.editor.Document;
|
import com.intellij.openapi.editor.Document;
|
||||||
@@ -55,7 +55,6 @@ import com.intellij.util.messages.MessageBusFactory;
|
|||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
import org.jetbrains.annotations.NonNls;
|
import org.jetbrains.annotations.NonNls;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.kotlin.test.testFramework.mock.*;
|
|
||||||
import org.picocontainer.ComponentAdapter;
|
import org.picocontainer.ComponentAdapter;
|
||||||
import org.picocontainer.MutablePicoContainer;
|
import org.picocontainer.MutablePicoContainer;
|
||||||
|
|
||||||
@@ -139,7 +138,7 @@ public abstract class KtParsingTestCase extends KtPlatformLiteFixture {
|
|||||||
addExplicitExtension(LanguageParserDefinitions.INSTANCE, this.myLanguage, definition);
|
addExplicitExtension(LanguageParserDefinitions.INSTANCE, this.myLanguage, definition);
|
||||||
registerComponentInstance(
|
registerComponentInstance(
|
||||||
getApplication().getPicoContainer(), FileTypeManager.class,
|
getApplication().getPicoContainer(), FileTypeManager.class,
|
||||||
new KtMockFileTypeManager(new KtMockLanguageFileType(myLanguage, myFileExt)));
|
new MockFileTypeManager(new MockLanguageFileType(myLanguage, myFileExt)));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected <T> void addExplicitExtension(final LanguageExtension<T> instance, final Language language, final T object) {
|
protected <T> void addExplicitExtension(final LanguageExtension<T> instance, final Language language, final T object) {
|
||||||
|
|||||||
+1
@@ -29,6 +29,7 @@ import com.intellij.openapi.util.text.StringUtil;
|
|||||||
import com.intellij.openapi.vfs.CharsetToolkit;
|
import com.intellij.openapi.vfs.CharsetToolkit;
|
||||||
import com.intellij.rt.execution.junit.FileComparisonFailure;
|
import com.intellij.rt.execution.junit.FileComparisonFailure;
|
||||||
import com.intellij.testFramework.TestLoggerFactory;
|
import com.intellij.testFramework.TestLoggerFactory;
|
||||||
|
import com.intellij.testFramework.VfsTestUtil;
|
||||||
import com.intellij.util.ReflectionUtil;
|
import com.intellij.util.ReflectionUtil;
|
||||||
import com.intellij.util.containers.ContainerUtil;
|
import com.intellij.util.containers.ContainerUtil;
|
||||||
import com.intellij.util.containers.hash.HashMap;
|
import com.intellij.util.containers.hash.HashMap;
|
||||||
|
|||||||
-40
@@ -1,40 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2016 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 org.jetbrains.kotlin.test.testFramework;
|
|
||||||
|
|
||||||
import org.jetbrains.annotations.TestOnly;
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.junit.runner.RunWith;
|
|
||||||
|
|
||||||
import java.lang.reflect.Method;
|
|
||||||
import java.lang.reflect.Modifier;
|
|
||||||
|
|
||||||
public class TestRunnerUtil {
|
|
||||||
private TestRunnerUtil() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestOnly
|
|
||||||
public static boolean isJUnit4TestClass(Class aClass) {
|
|
||||||
int modifiers = aClass.getModifiers();
|
|
||||||
if ((modifiers & Modifier.ABSTRACT) != 0) return false;
|
|
||||||
if ((modifiers & Modifier.PUBLIC) == 0) return false;
|
|
||||||
if (aClass.getAnnotation(RunWith.class) != null) return true;
|
|
||||||
for (Method method : aClass.getMethods()) {
|
|
||||||
if (method.getAnnotation(Test.class) != null) return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,95 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2016 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 org.jetbrains.kotlin.test.testFramework;
|
|
||||||
|
|
||||||
import com.intellij.openapi.application.AccessToken;
|
|
||||||
import com.intellij.openapi.application.WriteAction;
|
|
||||||
import com.intellij.openapi.util.io.FileUtil;
|
|
||||||
import com.intellij.openapi.vfs.VfsUtil;
|
|
||||||
import com.intellij.openapi.vfs.VirtualFile;
|
|
||||||
import com.intellij.util.PathUtil;
|
|
||||||
import com.intellij.util.text.StringTokenizer;
|
|
||||||
import org.junit.Assert;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
public class VfsTestUtil {
|
|
||||||
private VfsTestUtil() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public static VirtualFile createFile(VirtualFile root, String relativePath) {
|
|
||||||
return createFile(root, relativePath, "");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static VirtualFile createFile(VirtualFile root, String relativePath, String text) {
|
|
||||||
return createFileOrDir(root, relativePath, text, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static VirtualFile createFileOrDir(
|
|
||||||
VirtualFile root,
|
|
||||||
String relativePath,
|
|
||||||
String text,
|
|
||||||
boolean dir) {
|
|
||||||
try {
|
|
||||||
AccessToken token = WriteAction.start();
|
|
||||||
try {
|
|
||||||
VirtualFile parent = root;
|
|
||||||
Assert.assertNotNull(parent);
|
|
||||||
StringTokenizer parents = new StringTokenizer(PathUtil.getParentPath(relativePath), "/");
|
|
||||||
while (parents.hasMoreTokens()) {
|
|
||||||
String name = parents.nextToken();
|
|
||||||
VirtualFile child = parent.findChild(name);
|
|
||||||
if (child == null || !child.isValid()) {
|
|
||||||
child = parent.createChildDirectory(VfsTestUtil.class, name);
|
|
||||||
}
|
|
||||||
parent = child;
|
|
||||||
}
|
|
||||||
|
|
||||||
VirtualFile file;
|
|
||||||
parent.getChildren();//need this to ensure that fileCreated event is fired
|
|
||||||
if (dir) {
|
|
||||||
file = parent.createChildDirectory(VfsTestUtil.class, PathUtil.getFileName(relativePath));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
file = parent.findFileByRelativePath(relativePath);
|
|
||||||
if (file == null) {
|
|
||||||
file = parent.createChildData(VfsTestUtil.class, PathUtil.getFileName(relativePath));
|
|
||||||
}
|
|
||||||
VfsUtil.saveText(file, text);
|
|
||||||
}
|
|
||||||
return file;
|
|
||||||
}
|
|
||||||
finally {
|
|
||||||
token.finish();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (IOException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressWarnings("UnusedDeclaration")
|
|
||||||
public static void overwriteTestData(String filePath, String actual) {
|
|
||||||
try {
|
|
||||||
FileUtil.writeToFile(new File(filePath), actual);
|
|
||||||
}
|
|
||||||
catch (IOException e) {
|
|
||||||
throw new AssertionError(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-167
@@ -1,167 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2016 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 org.jetbrains.kotlin.test.testFramework.mock;
|
|
||||||
|
|
||||||
import com.intellij.openapi.fileTypes.*;
|
|
||||||
import com.intellij.openapi.project.Project;
|
|
||||||
import com.intellij.openapi.vfs.VirtualFile;
|
|
||||||
import com.intellij.util.ArrayUtil;
|
|
||||||
import com.intellij.util.IncorrectOperationException;
|
|
||||||
import org.jetbrains.annotations.NonNls;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Locale;
|
|
||||||
|
|
||||||
public class KtMockFileTypeManager extends FileTypeManager {
|
|
||||||
private final FileType fileType;
|
|
||||||
|
|
||||||
public KtMockFileTypeManager(FileType fileType) {
|
|
||||||
this.fileType = fileType;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NotNull
|
|
||||||
public String getIgnoredFilesList() {
|
|
||||||
throw new IncorrectOperationException();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setIgnoredFilesList(@NotNull String list) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void registerFileType(@NotNull FileType type, @NotNull List<FileNameMatcher> defaultAssociations) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NotNull
|
|
||||||
public FileType getFileTypeByFileName(@NotNull String fileName) {
|
|
||||||
return fileType;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NotNull
|
|
||||||
public FileType getFileTypeByFile(@NotNull VirtualFile file) {
|
|
||||||
return fileType;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NotNull
|
|
||||||
public FileType getFileTypeByExtension(@NotNull String extension) {
|
|
||||||
return fileType;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NotNull
|
|
||||||
public FileType[] getRegisteredFileTypes() {
|
|
||||||
return FileType.EMPTY_ARRAY;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isFileIgnored(@NotNull String name) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isFileIgnored(@NotNull VirtualFile file) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NotNull
|
|
||||||
public String[] getAssociatedExtensions(@NotNull FileType type) {
|
|
||||||
return ArrayUtil.EMPTY_STRING_ARRAY;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addFileTypeListener(@NotNull FileTypeListener listener) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removeFileTypeListener(@NotNull FileTypeListener listener) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public FileType getKnownFileTypeOrAssociate(@NotNull VirtualFile file) {
|
|
||||||
return file.getFileType();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public FileType getKnownFileTypeOrAssociate(@NotNull VirtualFile file, @NotNull Project project) {
|
|
||||||
return getKnownFileTypeOrAssociate(file);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NotNull
|
|
||||||
public List<FileNameMatcher> getAssociations(@NotNull FileType type) {
|
|
||||||
return Collections.emptyList();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void associate(@NotNull FileType type, @NotNull FileNameMatcher matcher) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removeAssociation(@NotNull FileType type, @NotNull FileNameMatcher matcher) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NotNull
|
|
||||||
public FileType getStdFileType(@NotNull @NonNls String fileTypeName) {
|
|
||||||
if ("ARCHIVE".equals(fileTypeName) || "CLASS".equals(fileTypeName)) return UnknownFileType.INSTANCE;
|
|
||||||
if ("PLAIN_TEXT".equals(fileTypeName)) return PlainTextFileType.INSTANCE;
|
|
||||||
if ("JAVA".equals(fileTypeName)) return loadFileTypeSafe("com.intellij.ide.highlighter.JavaFileType", fileTypeName);
|
|
||||||
if ("XML".equals(fileTypeName)) return loadFileTypeSafe("com.intellij.ide.highlighter.XmlFileType", fileTypeName);
|
|
||||||
if ("DTD".equals(fileTypeName)) return loadFileTypeSafe("com.intellij.ide.highlighter.DTDFileType", fileTypeName);
|
|
||||||
if ("JSP".equals(fileTypeName)) return loadFileTypeSafe("com.intellij.ide.highlighter.NewJspFileType", fileTypeName);
|
|
||||||
if ("JSPX".equals(fileTypeName)) return loadFileTypeSafe("com.intellij.ide.highlighter.JspxFileType", fileTypeName);
|
|
||||||
if ("HTML".equals(fileTypeName)) return loadFileTypeSafe("com.intellij.ide.highlighter.HtmlFileType", fileTypeName);
|
|
||||||
if ("XHTML".equals(fileTypeName)) return loadFileTypeSafe("com.intellij.ide.highlighter.XHtmlFileType", fileTypeName);
|
|
||||||
if ("JavaScript".equals(fileTypeName)) return loadFileTypeSafe("com.intellij.lang.javascript.JavaScriptFileType", fileTypeName);
|
|
||||||
if ("Properties".equals(fileTypeName)) return loadFileTypeSafe("com.intellij.lang.properties.PropertiesFileType", fileTypeName);
|
|
||||||
return new KtMockLanguageFileType(PlainTextLanguage.INSTANCE, fileTypeName.toLowerCase());
|
|
||||||
}
|
|
||||||
|
|
||||||
private static FileType loadFileTypeSafe(String className, String fileTypeName) {
|
|
||||||
try {
|
|
||||||
return (FileType)Class.forName(className).getField("INSTANCE").get(null);
|
|
||||||
}
|
|
||||||
catch (Exception ignored) {
|
|
||||||
return new KtMockLanguageFileType(PlainTextLanguage.INSTANCE, fileTypeName.toLowerCase(Locale.ENGLISH));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isFileOfType(@NotNull VirtualFile file, @NotNull FileType type) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
@Override
|
|
||||||
public FileType detectFileTypeFromContent(@NotNull VirtualFile file) {
|
|
||||||
return UnknownFileType.INSTANCE;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
@Override
|
|
||||||
public FileType findFileTypeByName(@NotNull String fileTypeName) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-64
@@ -1,64 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2016 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 org.jetbrains.kotlin.test.testFramework.mock;
|
|
||||||
|
|
||||||
import com.intellij.lang.Language;
|
|
||||||
import com.intellij.openapi.fileTypes.LanguageFileType;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import javax.swing.*;
|
|
||||||
|
|
||||||
public class KtMockLanguageFileType extends LanguageFileType {
|
|
||||||
private final String myExtension;
|
|
||||||
|
|
||||||
public KtMockLanguageFileType(@NotNull Language language, String extension) {
|
|
||||||
super(language);
|
|
||||||
this.myExtension = extension;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NotNull
|
|
||||||
public String getName() {
|
|
||||||
return this.getLanguage().getID();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NotNull
|
|
||||||
public String getDescription() {
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NotNull
|
|
||||||
public String getDefaultExtension() {
|
|
||||||
String var10000 = this.myExtension;
|
|
||||||
if(this.myExtension == null) {
|
|
||||||
throw new IllegalStateException(String.format("@NotNull method %s.%s must not return null", new Object[]{"com/intellij/mock/KtMockLanguageFileType", "getDefaultExtension"}));
|
|
||||||
} else {
|
|
||||||
return var10000;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Icon getIcon() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean equals(Object obj) {
|
|
||||||
return obj instanceof LanguageFileType && this.getLanguage().equals(((LanguageFileType) obj).getLanguage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-94
@@ -1,94 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2016 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 org.jetbrains.kotlin.test.testFramework.mock;
|
|
||||||
|
|
||||||
import com.intellij.openapi.Disposable;
|
|
||||||
import com.intellij.openapi.editor.event.*;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
public class MockEditorEventMulticaster implements EditorEventMulticaster {
|
|
||||||
public MockEditorEventMulticaster() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addDocumentListener(@NotNull DocumentListener listener) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addDocumentListener(@NotNull DocumentListener listener, @NotNull Disposable parentDisposable) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removeDocumentListener(@NotNull DocumentListener listener) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addEditorMouseListener(@NotNull EditorMouseListener listener) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addEditorMouseListener(@NotNull EditorMouseListener listener, @NotNull Disposable parentDisposable) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removeEditorMouseListener(@NotNull EditorMouseListener listener) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addEditorMouseMotionListener(@NotNull EditorMouseMotionListener listener) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addEditorMouseMotionListener(@NotNull EditorMouseMotionListener listener, @NotNull Disposable parentDisposable) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removeEditorMouseMotionListener(@NotNull EditorMouseMotionListener listener) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addCaretListener(@NotNull CaretListener listener) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addCaretListener(@NotNull CaretListener listener, @NotNull Disposable parentDisposable) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removeCaretListener(@NotNull CaretListener listener) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addSelectionListener(@NotNull SelectionListener listener) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addSelectionListener(@NotNull SelectionListener listener, @NotNull Disposable parentDisposable) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removeSelectionListener(@NotNull SelectionListener listener) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addVisibleAreaListener(@NotNull VisibleAreaListener listener) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removeVisibleAreaListener(@NotNull VisibleAreaListener listener) {
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
-141
@@ -1,141 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2016 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 org.jetbrains.kotlin.test.testFramework.mock;
|
|
||||||
|
|
||||||
import com.intellij.openapi.Disposable;
|
|
||||||
import com.intellij.openapi.editor.Document;
|
|
||||||
import com.intellij.openapi.editor.Editor;
|
|
||||||
import com.intellij.openapi.editor.EditorFactory;
|
|
||||||
import com.intellij.openapi.editor.EditorKind;
|
|
||||||
import com.intellij.openapi.editor.event.EditorEventMulticaster;
|
|
||||||
import com.intellij.openapi.editor.event.EditorFactoryListener;
|
|
||||||
import com.intellij.openapi.editor.impl.DocumentImpl;
|
|
||||||
import com.intellij.openapi.fileTypes.FileType;
|
|
||||||
import com.intellij.openapi.project.Project;
|
|
||||||
import com.intellij.openapi.vfs.VirtualFile;
|
|
||||||
import com.intellij.util.text.CharArrayCharSequence;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
|
|
||||||
public class MockEditorFactory extends EditorFactory {
|
|
||||||
@Override
|
|
||||||
public Editor createEditor(@NotNull Document document) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Editor createViewer(@NotNull Document document) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Editor createEditor(@NotNull Document document, Project project) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Editor createEditor(@NotNull Document document, Project project, @NotNull VirtualFile file, boolean isViewer) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Editor createEditor(@NotNull Document document, Project project, @NotNull FileType fileType, boolean isViewer) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Editor createViewer(@NotNull Document document, Project project) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Editor createEditor(
|
|
||||||
@NotNull Document document, @Nullable Project project, @NotNull EditorKind kind
|
|
||||||
) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Editor createEditor(
|
|
||||||
@NotNull Document document, Project project, @NotNull VirtualFile file, boolean isViewer, @NotNull EditorKind kind
|
|
||||||
) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Editor createViewer(
|
|
||||||
@NotNull Document document, @Nullable Project project, @NotNull EditorKind kind
|
|
||||||
) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void releaseEditor(@NotNull Editor editor) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NotNull
|
|
||||||
public Editor[] getEditors(@NotNull Document document, Project project) {
|
|
||||||
return Editor.EMPTY_ARRAY;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NotNull
|
|
||||||
public Editor[] getEditors(@NotNull Document document) {
|
|
||||||
return getEditors(document, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NotNull
|
|
||||||
public Editor[] getAllEditors() {
|
|
||||||
return Editor.EMPTY_ARRAY;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addEditorFactoryListener(@NotNull EditorFactoryListener listener) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addEditorFactoryListener(@NotNull EditorFactoryListener listener, @NotNull Disposable parentDisposable) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removeEditorFactoryListener(@NotNull EditorFactoryListener listener) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NotNull
|
|
||||||
public EditorEventMulticaster getEventMulticaster() {
|
|
||||||
return new MockEditorEventMulticaster();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NotNull
|
|
||||||
public Document createDocument(@NotNull CharSequence text) {
|
|
||||||
return new DocumentImpl(text);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NotNull
|
|
||||||
public Document createDocument(@NotNull char[] text) {
|
|
||||||
return createDocument(new CharArrayCharSequence(text));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void refreshAllEditors() {
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
-116
@@ -1,116 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2016 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 org.jetbrains.kotlin.test.testFramework.mock;
|
|
||||||
|
|
||||||
import com.intellij.openapi.vfs.VirtualFile;
|
|
||||||
import com.intellij.psi.FileViewProvider;
|
|
||||||
import com.intellij.psi.PsiDirectory;
|
|
||||||
import com.intellij.psi.PsiFile;
|
|
||||||
import com.intellij.psi.SingleRootFileViewProvider;
|
|
||||||
import com.intellij.psi.impl.PsiManagerEx;
|
|
||||||
import com.intellij.psi.impl.file.impl.FileManager;
|
|
||||||
import com.intellij.util.containers.ConcurrentWeakFactoryMap;
|
|
||||||
import com.intellij.util.containers.ContainerUtil;
|
|
||||||
import com.intellij.util.containers.FactoryMap;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.ConcurrentMap;
|
|
||||||
|
|
||||||
public class MockFileManager implements FileManager {
|
|
||||||
private final PsiManagerEx myManager;
|
|
||||||
// in mock tests it's LightVirtualFile, they're only alive when they're referenced,
|
|
||||||
// and there can not be several instances representing the same file
|
|
||||||
private final ConcurrentMap<VirtualFile, FileViewProvider> myViewProviders = new ConcurrentWeakFactoryMap<VirtualFile, FileViewProvider>() {
|
|
||||||
@Override
|
|
||||||
protected ConcurrentMap<VirtualFile, FileViewProvider> createMap() {
|
|
||||||
return ContainerUtil.createConcurrentWeakKeyWeakValueMap();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected FileViewProvider create(VirtualFile key) {
|
|
||||||
return new SingleRootFileViewProvider(myManager, key);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NotNull
|
|
||||||
public FileViewProvider createFileViewProvider(@NotNull VirtualFile file, boolean eventSystemEnabled) {
|
|
||||||
return new SingleRootFileViewProvider(myManager, file, eventSystemEnabled);
|
|
||||||
}
|
|
||||||
|
|
||||||
public MockFileManager(PsiManagerEx manager) {
|
|
||||||
myManager = manager;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void dispose() {
|
|
||||||
throw new UnsupportedOperationException("Method dispose is not yet implemented in " + getClass().getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Nullable
|
|
||||||
public PsiFile findFile(@NotNull VirtualFile vFile) {
|
|
||||||
return getCachedPsiFile(vFile);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Nullable
|
|
||||||
public PsiDirectory findDirectory(@NotNull VirtualFile vFile) {
|
|
||||||
throw new UnsupportedOperationException("Method findDirectory is not yet implemented in " + getClass().getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void reloadFromDisk(@NotNull PsiFile file) //Q: move to PsiFile(Impl)?
|
|
||||||
{
|
|
||||||
throw new UnsupportedOperationException("Method reloadFromDisk is not yet implemented in " + getClass().getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Nullable
|
|
||||||
public PsiFile getCachedPsiFile(@NotNull VirtualFile vFile) {
|
|
||||||
FileViewProvider provider = findCachedViewProvider(vFile);
|
|
||||||
return provider.getPsi(provider.getBaseLanguage());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void cleanupForNextTest() {
|
|
||||||
myViewProviders.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public FileViewProvider findViewProvider(@NotNull VirtualFile file) {
|
|
||||||
throw new UnsupportedOperationException("Method findViewProvider is not yet implemented in " + getClass().getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public FileViewProvider findCachedViewProvider(@NotNull VirtualFile file) {
|
|
||||||
return myViewProviders.get(file);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setViewProvider(@NotNull VirtualFile virtualFile, FileViewProvider fileViewProvider) {
|
|
||||||
myViewProviders.put(virtualFile, fileViewProvider);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NotNull
|
|
||||||
public List<PsiFile> getAllCachedFiles() {
|
|
||||||
throw new UnsupportedOperationException("Method getAllCachedFiles is not yet implemented in " + getClass().getName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-157
@@ -1,157 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2016 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 org.jetbrains.kotlin.test.testFramework.mock;
|
|
||||||
|
|
||||||
import com.intellij.openapi.application.ModalityState;
|
|
||||||
import com.intellij.openapi.editor.Document;
|
|
||||||
import com.intellij.openapi.fileEditor.FileDocumentManager;
|
|
||||||
import com.intellij.openapi.util.Computable;
|
|
||||||
import com.intellij.openapi.vfs.VirtualFile;
|
|
||||||
import com.intellij.psi.PsiDocumentManager;
|
|
||||||
import com.intellij.psi.PsiFile;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
|
|
||||||
import java.util.Collection;
|
|
||||||
|
|
||||||
public class MockPsiDocumentManager extends PsiDocumentManager {
|
|
||||||
@Override
|
|
||||||
@Nullable
|
|
||||||
public PsiFile getPsiFile(@NotNull Document document) {
|
|
||||||
throw new UnsupportedOperationException("Method getPsiFile is not yet implemented in " + getClass().getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Nullable
|
|
||||||
public PsiFile getCachedPsiFile(@NotNull Document document) {
|
|
||||||
throw new UnsupportedOperationException("Method getCachedPsiFile is not yet implemented in " + getClass().getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Nullable
|
|
||||||
public Document getDocument(@NotNull PsiFile file) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Nullable
|
|
||||||
public Document getCachedDocument(@NotNull PsiFile file) {
|
|
||||||
VirtualFile vFile = file.getViewProvider().getVirtualFile();
|
|
||||||
return FileDocumentManager.getInstance().getCachedDocument(vFile);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void commitAllDocuments() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void performForCommittedDocument(@NotNull Document document, @NotNull Runnable action) {
|
|
||||||
action.run();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void commitDocument(@NotNull Document document) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
@Override
|
|
||||||
public CharSequence getLastCommittedText(@NotNull Document document) {
|
|
||||||
return document.getImmutableCharSequence();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public long getLastCommittedStamp(@NotNull Document document) {
|
|
||||||
return document.getModificationStamp();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
@Override
|
|
||||||
public Document getLastCommittedDocument(@NotNull PsiFile file) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NotNull
|
|
||||||
public Document[] getUncommittedDocuments() {
|
|
||||||
throw new UnsupportedOperationException("Method getUncommittedDocuments is not yet implemented in " + getClass().getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isUncommited(@NotNull Document document) {
|
|
||||||
throw new UnsupportedOperationException("Method isUncommited is not yet implemented in " + getClass().getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isCommitted(@NotNull Document document) {
|
|
||||||
throw new UnsupportedOperationException();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean hasUncommitedDocuments() {
|
|
||||||
throw new UnsupportedOperationException("Method hasUncommitedDocuments is not yet implemented in " + getClass().getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void commitAndRunReadAction(@NotNull Runnable runnable) {
|
|
||||||
throw new UnsupportedOperationException("Method commitAndRunReadAction is not yet implemented in " + getClass().getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public <T> T commitAndRunReadAction(@NotNull Computable<T> computation) {
|
|
||||||
throw new UnsupportedOperationException("Method commitAndRunReadAction is not yet implemented in " + getClass().getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addListener(@NotNull Listener listener) {
|
|
||||||
throw new UnsupportedOperationException("Method addListener is not yet implemented in " + getClass().getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removeListener(@NotNull Listener listener) {
|
|
||||||
throw new UnsupportedOperationException("Method removeListener is not yet implemented in " + getClass().getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isDocumentBlockedByPsi(@NotNull Document doc) {
|
|
||||||
throw new UnsupportedOperationException("Method isDocumentBlockedByPsi is not yet implemented in " + getClass().getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void doPostponedOperationsAndUnblockDocument(@NotNull Document doc) {
|
|
||||||
throw new UnsupportedOperationException(
|
|
||||||
"Method doPostponedOperationsAndUnblockDocument is not yet implemented in " + getClass().getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean performWhenAllCommitted(@NotNull Runnable action) {
|
|
||||||
throw new UnsupportedOperationException();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void performLaterWhenAllCommitted(@NotNull Runnable runnable) {
|
|
||||||
throw new UnsupportedOperationException();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void reparseFiles(@NotNull Collection<VirtualFile> files, boolean includeOpenFiles) {
|
|
||||||
throw new UnsupportedOperationException();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void performLaterWhenAllCommitted(@NotNull Runnable runnable, ModalityState modalityState) {
|
|
||||||
throw new UnsupportedOperationException();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-197
@@ -1,197 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2016 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 org.jetbrains.kotlin.test.testFramework.mock;
|
|
||||||
|
|
||||||
import com.intellij.openapi.Disposable;
|
|
||||||
import com.intellij.openapi.project.Project;
|
|
||||||
import com.intellij.openapi.util.Comparing;
|
|
||||||
import com.intellij.openapi.util.Key;
|
|
||||||
import com.intellij.openapi.vfs.VirtualFile;
|
|
||||||
import com.intellij.openapi.vfs.VirtualFileFilter;
|
|
||||||
import com.intellij.psi.*;
|
|
||||||
import com.intellij.psi.impl.PsiManagerEx;
|
|
||||||
import com.intellij.psi.impl.PsiModificationTrackerImpl;
|
|
||||||
import com.intellij.psi.impl.PsiTreeChangeEventImpl;
|
|
||||||
import com.intellij.psi.impl.file.impl.FileManager;
|
|
||||||
import com.intellij.psi.util.PsiModificationTracker;
|
|
||||||
import gnu.trove.THashMap;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
public class MockPsiManager extends PsiManagerEx {
|
|
||||||
private final Project myProject;
|
|
||||||
private final Map<VirtualFile,PsiDirectory> myDirectories = new THashMap<>();
|
|
||||||
private MockFileManager myMockFileManager;
|
|
||||||
private PsiModificationTrackerImpl myPsiModificationTracker;
|
|
||||||
|
|
||||||
public MockPsiManager(@NotNull Project project) {
|
|
||||||
myProject = project;
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
public void addPsiDirectory(VirtualFile file, PsiDirectory psiDirectory) {
|
|
||||||
myDirectories.put(file, psiDirectory);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NotNull
|
|
||||||
public Project getProject() {
|
|
||||||
return myProject;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public PsiFile findFile(@NotNull VirtualFile file) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Nullable
|
|
||||||
public
|
|
||||||
FileViewProvider findViewProvider(@NotNull VirtualFile file) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public PsiDirectory findDirectory(@NotNull VirtualFile file) {
|
|
||||||
return myDirectories.get(file);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean areElementsEquivalent(PsiElement element1, PsiElement element2) {
|
|
||||||
return Comparing.equal(element1, element2);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void reloadFromDisk(@NotNull PsiFile file) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addPsiTreeChangeListener(@NotNull PsiTreeChangeListener listener) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addPsiTreeChangeListener(@NotNull PsiTreeChangeListener listener, @NotNull Disposable parentDisposable) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removePsiTreeChangeListener(@NotNull PsiTreeChangeListener listener) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NotNull
|
|
||||||
public PsiModificationTracker getModificationTracker() {
|
|
||||||
if (myPsiModificationTracker == null) {
|
|
||||||
myPsiModificationTracker = new PsiModificationTrackerImpl(myProject);
|
|
||||||
}
|
|
||||||
return myPsiModificationTracker;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void startBatchFilesProcessingMode() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void finishBatchFilesProcessingMode() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public <T> T getUserData(@NotNull Key<T> key) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public <T> void putUserData(@NotNull Key<T> key, T value) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isDisposed() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void dropResolveCaches() {
|
|
||||||
getFileManager().cleanupForNextTest();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isInProject(@NotNull PsiElement element) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isBatchFilesProcessingMode() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setAssertOnFileLoadingFilter(@NotNull VirtualFileFilter filter, @NotNull Disposable parentDisposable) {}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isAssertOnFileLoading(@NotNull VirtualFile file) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void beforeChange(boolean isPhysical) {
|
|
||||||
throw new UnsupportedOperationException();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void afterChange(boolean isPhysical) {
|
|
||||||
throw new UnsupportedOperationException();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void registerRunnableToRunOnChange(@NotNull Runnable runnable) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void registerRunnableToRunOnAnyChange(@NotNull Runnable runnable) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void registerRunnableToRunAfterAnyChange(@NotNull Runnable runnable) {
|
|
||||||
throw new UnsupportedOperationException("Method registerRunnableToRunAfterAnyChange is not yet implemented in " + getClass().getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NotNull
|
|
||||||
public FileManager getFileManager() {
|
|
||||||
if (myMockFileManager == null) {
|
|
||||||
myMockFileManager = new MockFileManager(this);
|
|
||||||
}
|
|
||||||
return myMockFileManager;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void beforeChildRemoval(@NotNull PsiTreeChangeEventImpl event) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void beforeChildReplacement(@NotNull PsiTreeChangeEventImpl event) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void beforeChildAddition(@NotNull PsiTreeChangeEventImpl event) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void dropPsiCaches() {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user