mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-15 02:59:33 +07:00
Also: avoid manual mocking of Java 10 classes in StreamCollector10Inlining test, use mockJDK11 instead Also: rewrite SliceTestCase and its inheritors to LightJavaCodeInsightFixtureTestCase, as annotations.jar is not included into project created by DaemonAnalyzerTestCase Also: 'mutates' attribute of @Contract annotation is resolvable now, as we can use newer jetbrains-annotations library. Also: documentation tests now don't generate links to JetBrains annotations, which corresponds to the actual behavior in production GitOrigin-RevId: e460826893c1277cb2b78b18aae9d5aca97d8333
245 lines
8.0 KiB
Java
245 lines
8.0 KiB
Java
/*
|
|
* Copyright 2000-2017 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.projectView;
|
|
|
|
import com.intellij.ide.projectView.ProjectView;
|
|
import com.intellij.ide.projectView.impl.PackageViewPane;
|
|
import com.intellij.ide.projectView.impl.ProjectAbstractTreeStructureBase;
|
|
import com.intellij.ide.projectView.impl.ProjectViewImpl;
|
|
import com.intellij.lang.properties.projectView.ResourceBundleGrouper;
|
|
import com.intellij.openapi.application.ApplicationManager;
|
|
import com.intellij.openapi.application.WriteAction;
|
|
import com.intellij.openapi.module.ModifiableModuleModel;
|
|
import com.intellij.openapi.module.ModuleManager;
|
|
import com.intellij.openapi.util.Disposer;
|
|
import com.intellij.openapi.vfs.VirtualFile;
|
|
import com.intellij.testFramework.PlatformTestUtil;
|
|
import com.intellij.testFramework.TestSourceBasedTestCase;
|
|
import com.intellij.util.ui.tree.TreeUtil;
|
|
import org.jetbrains.annotations.NonNls;
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
import javax.swing.*;
|
|
import java.io.IOException;
|
|
|
|
public class PackagesTreeStructureTest extends TestSourceBasedTestCase {
|
|
public void testPackageView() {
|
|
ModifiableModuleModel moduleModel = ModuleManager.getInstance(myProject).getModifiableModel();
|
|
moduleModel.setModuleGroupPath(myModule, new String[]{"Group"});
|
|
WriteAction.runAndWait(() -> moduleModel.commit());
|
|
|
|
final VirtualFile srcFile = getSrcDirectory().getVirtualFile();
|
|
if (srcFile.findChild("empty") == null){
|
|
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
|
@Override
|
|
public void run() {
|
|
try {
|
|
srcFile.createChildDirectory(this, "empty");
|
|
}
|
|
catch (IOException e) {
|
|
fail(e.getLocalizedMessage());
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
doTest(true, true,
|
|
"""
|
|
-Project
|
|
-Module
|
|
-PsiPackage: com.package1
|
|
Class1.java
|
|
Class2.java
|
|
Class4.java
|
|
emptyClassFile.class
|
|
Form1.form
|
|
Form1.java
|
|
Form2.form
|
|
PsiPackage: empty
|
|
-PsiPackage: java
|
|
Class1.java
|
|
-PsiPackage: javax.servlet
|
|
Class1.java
|
|
-Libraries
|
|
-PsiPackage: java
|
|
+PsiPackage: awt
|
|
+PsiPackage: beans.beancontext
|
|
+PsiPackage: io
|
|
+PsiPackage: lang
|
|
+PsiPackage: net
|
|
+PsiPackage: rmi
|
|
+PsiPackage: security
|
|
+PsiPackage: sql
|
|
+PsiPackage: util
|
|
-PsiPackage: javax.swing
|
|
+PsiPackage: table
|
|
AbstractButton.class
|
|
Icon.class
|
|
JButton.class
|
|
JComponent.class
|
|
JDialog.class
|
|
JFrame.class
|
|
JLabel.class
|
|
JPanel.class
|
|
JScrollPane.class
|
|
JTable.class
|
|
SwingConstants.class
|
|
SwingUtilities.class
|
|
-PsiPackage: META-INF
|
|
MANIFEST.MF
|
|
LICENSE
|
|
"""
|
|
, 4);
|
|
|
|
doTest(false, true,
|
|
"""
|
|
-Project
|
|
-PsiPackage: com.package1
|
|
Class1.java
|
|
Class2.java
|
|
Class4.java
|
|
emptyClassFile.class
|
|
Form1.form
|
|
Form1.java
|
|
Form2.form
|
|
PsiPackage: empty
|
|
-PsiPackage: java
|
|
Class1.java
|
|
-PsiPackage: javax.servlet
|
|
Class1.java
|
|
-Libraries
|
|
-PsiPackage: java
|
|
+PsiPackage: awt
|
|
+PsiPackage: beans.beancontext
|
|
+PsiPackage: io
|
|
+PsiPackage: lang
|
|
+PsiPackage: net
|
|
+PsiPackage: rmi
|
|
+PsiPackage: security
|
|
+PsiPackage: sql
|
|
+PsiPackage: util
|
|
-PsiPackage: javax.swing
|
|
+PsiPackage: table
|
|
AbstractButton.class
|
|
Icon.class
|
|
JButton.class
|
|
JComponent.class
|
|
JDialog.class
|
|
JFrame.class
|
|
JLabel.class
|
|
JPanel.class
|
|
JScrollPane.class
|
|
JTable.class
|
|
SwingConstants.class
|
|
SwingUtilities.class
|
|
-PsiPackage: META-INF
|
|
MANIFEST.MF
|
|
LICENSE
|
|
"""
|
|
, 3);
|
|
|
|
doTest(true, false,
|
|
"""
|
|
-Project
|
|
-Module
|
|
-PsiPackage: com.package1
|
|
Class1.java
|
|
Class2.java
|
|
Class4.java
|
|
emptyClassFile.class
|
|
Form1.form
|
|
Form1.java
|
|
Form2.form
|
|
PsiPackage: empty
|
|
-PsiPackage: java
|
|
Class1.java
|
|
-PsiPackage: javax.servlet
|
|
Class1.java
|
|
""", 3);
|
|
|
|
doTest(false, false, true, true, """
|
|
-Project
|
|
-PsiPackage: com.package1
|
|
Class1.java
|
|
Class2.java
|
|
Class4.java
|
|
emptyClassFile.class
|
|
Form1.form
|
|
Form1.java
|
|
Form2.form
|
|
PsiPackage: empty
|
|
-PsiPackage: java
|
|
Class1.java
|
|
-PsiPackage: j.servlet
|
|
Class1.java
|
|
""", 3);
|
|
|
|
doTest(false, false, """
|
|
-Project
|
|
-PsiPackage: com.package1
|
|
Class1.java
|
|
Class2.java
|
|
Class4.java
|
|
emptyClassFile.class
|
|
Form1.form
|
|
Form1.java
|
|
Form2.form
|
|
PsiPackage: empty
|
|
-PsiPackage: java
|
|
Class1.java
|
|
-PsiPackage: javax.servlet
|
|
Class1.java
|
|
""", 3);
|
|
}
|
|
|
|
private void doTest(final boolean showModules, final boolean showLibraryContents, @NonNls final String expected, final int levels) {
|
|
doTest(showModules, showLibraryContents, false, false, expected, levels);
|
|
}
|
|
|
|
private void doTest(final boolean showModules, final boolean showLibraryContents, boolean flattenPackages, boolean abbreviatePackageNames, @NonNls final String expected, final int levels) {
|
|
final ProjectViewImpl projectView = (ProjectViewImpl)ProjectView.getInstance(myProject);
|
|
|
|
projectView.setShowModules(PackageViewPane.ID, showModules);
|
|
|
|
projectView.setShowLibraryContents(PackageViewPane.ID, showLibraryContents);
|
|
|
|
projectView.setFlattenPackages(PackageViewPane.ID, flattenPackages);
|
|
projectView.setAbbreviatePackageNames(PackageViewPane.ID, abbreviatePackageNames);
|
|
projectView.setHideEmptyPackages(PackageViewPane.ID, true);
|
|
|
|
PackageViewPane packageViewPane = new PackageViewPane(myProject) {
|
|
@NotNull
|
|
@Override
|
|
protected ProjectAbstractTreeStructureBase createStructure() {
|
|
ProjectAbstractTreeStructureBase structure = super.createStructure();
|
|
structure.setProviders(new ResourceBundleGrouper(myProject));
|
|
return structure;
|
|
}
|
|
};
|
|
packageViewPane.createComponent();
|
|
JTree tree = packageViewPane.getTree();
|
|
PlatformTestUtil.waitForPromise(TreeUtil.promiseExpand(tree, levels));
|
|
PlatformTestUtil.assertTreeEqual(tree, expected);
|
|
BaseProjectViewTestCase.checkContainsMethod(packageViewPane.getTreeStructure().getRootElement(), packageViewPane.getTreeStructure());
|
|
Disposer.dispose(packageViewPane);
|
|
}
|
|
|
|
@Override
|
|
protected String getTestPath() {
|
|
return "projectView";
|
|
}
|
|
}
|