cleanup
[idea/community.git] / java / java-tests / testSrc / com / intellij / codeInspection / SingleInspectionProfilePanelTest.java
1 /*
2  * Copyright 2000-2016 JetBrains s.r.o.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.intellij.codeInspection;
17
18 import com.intellij.codeInspection.ex.InspectionProfileImpl;
19 import com.intellij.codeInspection.ex.InspectionProfileTest;
20 import com.intellij.codeInspection.ex.LocalInspectionToolWrapper;
21 import com.intellij.codeInspection.javaDoc.JavaDocLocalInspection;
22 import com.intellij.openapi.project.Project;
23 import com.intellij.openapi.project.ProjectManager;
24 import com.intellij.profile.codeInspection.InspectionProjectProfileManager;
25 import com.intellij.profile.codeInspection.ProjectInspectionProfileManager;
26 import com.intellij.profile.codeInspection.ui.SingleInspectionProfilePanel;
27 import com.intellij.testFramework.LightIdeaTestCase;
28 import org.jetbrains.annotations.NotNull;
29
30 /**
31  * @author Dmitry Avdeev
32  *         Date: 5/10/12
33  */
34 public class SingleInspectionProfilePanelTest extends LightIdeaTestCase {
35   private final JavaDocLocalInspection myInspection = new JavaDocLocalInspection();
36
37   // see IDEA-85700
38   public void testSettingsModification() throws Exception {
39     Project project = ProjectManager.getInstance().getDefaultProject();
40     ProjectInspectionProfileManager profileManager = ProjectInspectionProfileManager.getInstanceImpl(project);
41     InspectionProfileImpl profile = (InspectionProfileImpl)profileManager.getProfile(PROFILE);
42     profile.initInspectionTools(project);
43
44     InspectionProfileImpl model = profile.getModifiableModel();
45     SingleInspectionProfilePanel panel = new SingleInspectionProfilePanel(profileManager, PROFILE, model, profile);
46     panel.setVisible(true);
47     panel.reset();
48
49     JavaDocLocalInspection tool = getInspection(model);
50     assertEquals("", tool.myAdditionalJavadocTags);
51     tool.myAdditionalJavadocTags = "foo";
52     model.setModified(true);
53     panel.apply();
54     assertEquals(1, InspectionProfileTest.countInitializedTools(model));
55
56     assertEquals("foo", getInspection(profile).myAdditionalJavadocTags);
57     panel.disposeUI();
58   }
59
60   public void testModifyInstantiatedTool() throws Exception {
61     Project project = ProjectManager.getInstance().getDefaultProject();
62     ProjectInspectionProfileManager profileManager = ProjectInspectionProfileManager.getInstanceImpl(project);
63     InspectionProfileImpl profile = (InspectionProfileImpl)profileManager.getProfile(PROFILE);
64     profile.initInspectionTools(project);
65
66     JavaDocLocalInspection originalTool = getInspection(profile);
67     originalTool.myAdditionalJavadocTags = "foo";
68
69     InspectionProfileImpl model = profile.getModifiableModel();
70
71     SingleInspectionProfilePanel panel = new SingleInspectionProfilePanel(profileManager, PROFILE, model, profile);
72     panel.setVisible(true);
73     panel.reset();
74     assertEquals(InspectionProfileTest.getInitializedTools(model).toString(), 1, InspectionProfileTest.countInitializedTools(model));
75
76     JavaDocLocalInspection copyTool = getInspection(model);
77     copyTool.myAdditionalJavadocTags = "bar";
78
79     model.setModified(true);
80     panel.apply();
81     assertEquals(1, InspectionProfileTest.countInitializedTools(model));
82
83     assertEquals("bar", getInspection(profile).myAdditionalJavadocTags);
84     panel.disposeUI();
85   }
86
87   public void testDoNotChangeSettingsOnCancel() throws Exception {
88     Project project = ProjectManager.getInstance().getDefaultProject();
89     InspectionProjectProfileManager profileManager = InspectionProjectProfileManager.getInstance(project);
90     InspectionProfileImpl profile = (InspectionProfileImpl)profileManager.getProfile(PROFILE);
91     profile.initInspectionTools(project);
92
93     JavaDocLocalInspection originalTool = getInspection(profile);
94     assertEquals("", originalTool.myAdditionalJavadocTags);
95
96     InspectionProfileImpl model = profile.getModifiableModel();
97     JavaDocLocalInspection copyTool = getInspection(model);
98     copyTool.myAdditionalJavadocTags = "foo";
99     // this change IS NOT COMMITTED
100
101     assertEquals("", getInspection(profile).myAdditionalJavadocTags);
102   }
103
104   private JavaDocLocalInspection getInspection(InspectionProfileImpl profile) {
105     LocalInspectionToolWrapper original = (LocalInspectionToolWrapper)profile.getInspectionTool(myInspection.getShortName(), getProject());
106     assert original != null;
107     return (JavaDocLocalInspection)original.getTool();
108   }
109
110   @Override
111   public void setUp() throws Exception {
112     InspectionProfileImpl.INIT_INSPECTIONS = true;
113     super.setUp();
114   }
115
116   @Override
117   public void tearDown() throws Exception {
118     InspectionProfileImpl.INIT_INSPECTIONS = false;
119     super.tearDown();
120   }
121
122   @NotNull
123   @Override
124   protected LocalInspectionTool[] configureLocalInspectionTools() {
125     return new LocalInspectionTool[] {myInspection};
126   }
127 }