blob: 3019068a764bf341e0e5b48112cf3144648d0294 [file] [log] [blame]
/*
* Copyright 2000-2009 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.idea.maven.dom;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiElement;
import java.util.List;
public class MavenPropertyFindUsagesTest extends MavenDomTestCase {
@Override
protected void setUpInWriteAction() throws Exception {
super.setUpInWriteAction();
importProject("<groupId>test</groupId>" +
"<artifactId>module1</artifactId>" +
"<version>1</version>");
}
public void testFindModelPropertyFromReference() throws Exception {
createProjectPom("<groupId>test</groupId>" +
"<artifactId>module1</artifactId>" +
"<version>1</version>" +
"<name>${<caret>project.version}</name>" +
"<description>${project.version}</description>");
assertSearchResults(myProjectPom,
findTag("project.name"),
findTag("project.description"));
}
public void testFindModelPropertyFromReferenceWithDifferentQualifiers() throws Exception {
createProjectPom("<groupId>test</groupId>" +
"<artifactId>module1</artifactId>" +
"<version>1</version>" +
"<name>${<caret>version}</name>" +
"<description>${pom.version}</description>");
assertSearchResults(myProjectPom,
findTag("project.name"),
findTag("project.description"));
}
public void testFindUsagesFromTag() throws Exception {
createProjectPom("<groupId>test</groupId>" +
"<artifactId>module1</artifactId>" +
"<<caret>version>1</version>" +
"<name>${project.version}</name>" +
"<description>${version}</description>");
assertSearchResults(myProjectPom,
findTag("project.name"),
findTag("project.description"));
}
public void testFindUsagesFromTagValue() throws Exception {
createProjectPom("<groupId>test</groupId>" +
"<artifactId>module1</artifactId>" +
"<version>1<caret>1</version>" +
"<name>${project.version}</name>");
assertSearchResults(myProjectPom, findTag("project.name"));
}
public void testFindUsagesFromProperty() throws Exception {
createProjectPom("<groupId>test</groupId>" +
"<artifactId>module1</artifactId>" +
"<version>11</version>" +
"<name>${foo}</name>" +
"<properties>" +
" <f<caret>oo>value</foo>" +
"</properties>");
assertSearchResultsInclude(myProjectPom, findTag("project.name"));
}
public void testFindUsagesForEnvProperty() throws Exception {
createProjectPom("<groupId>test</groupId>" +
"<artifactId>module1</artifactId>" +
"<version>11</version>" +
"<name>${env.<caret>" + getEnvVar() + "}</name>" +
"<description>${env." + getEnvVar() + "}</description>");
assertSearchResultsInclude(myProjectPom, findTag("project.name"), findTag("project.description"));
}
public void testFindUsagesForSystemProperty() throws Exception {
createProjectPom("<groupId>test</groupId>" +
"<artifactId>module1</artifactId>" +
"<version>11</version>" +
"<name>${use<caret>r.home}</name>" +
"<description>${user.home}</description>");
assertSearchResultsInclude(myProjectPom, findTag("project.name"), findTag("project.description"));
}
public void testFindUsagesForSystemPropertyInFilteredResources() throws Exception {
createProjectSubDir("res");
importProject("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
"<name>${user.home}</name>" +
"<build>" +
" <resources>" +
" <resource>" +
" <directory>res</directory>" +
" <filtering>true</filtering>" +
" </resource>" +
" </resources>" +
"</build>");
VirtualFile f = createProjectSubFile("res/foo.properties",
"foo=abc${user<caret>.home}abc");
List<PsiElement> result = search(f);
assertContain(result, findTag("project.name"), MavenDomUtil.findPropertyValue(myProject, f, "foo"));
}
public void testHighlightingFromTag() throws Exception {
createProjectPom("<groupId>test</groupId>" +
"<artifactId>module1</artifactId>" +
"<<caret>version>1</version>" +
"<name>${project.version}</name>" +
"<description>${version}</description>");
assertHighlighted(myProjectPom,
new HighlightInfo(findTag("project.name"), "project.version"),
new HighlightInfo(findTag("project.description"), "version"));
}
}