update copyright
[fedora-idea.git] / plugins / ui-designer / testSrc / com / intellij / uiDesigner / binding / FormPropertyUsageTest.java
blobc62608b95b7f33dfece4227a4cc0982e9ace40f7
1 /*
2 * Copyright 2000-2009 JetBrains s.r.o.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 package com.intellij.uiDesigner.binding;
19 import com.intellij.lang.properties.psi.PropertiesFile;
20 import com.intellij.lang.properties.psi.Property;
21 import com.intellij.openapi.application.ApplicationManager;
22 import com.intellij.openapi.application.PluginPathManager;
23 import com.intellij.openapi.projectRoots.impl.JavaSdkImpl;
24 import com.intellij.openapi.vfs.VirtualFile;
25 import com.intellij.psi.PsiClass;
26 import com.intellij.psi.PsiElement;
27 import com.intellij.psi.PsiReference;
28 import com.intellij.psi.search.GlobalSearchScope;
29 import com.intellij.psi.search.searches.ReferencesSearch;
30 import com.intellij.testFramework.PsiTestCase;
31 import com.intellij.testFramework.PsiTestUtil;
32 import com.intellij.util.Query;
34 import javax.swing.*;
35 import java.util.Collection;
37 /**
38 * @author yole
40 public class FormPropertyUsageTest extends PsiTestCase {
41 private VirtualFile myTestProjectRoot;
43 protected void setUp() throws Exception {
44 super.setUp();
46 ApplicationManager.getApplication().runWriteAction(
47 new Runnable() {
48 public void run() {
49 try{
50 String root = PluginPathManager.getPluginHomePath("ui-designer") + "/testData/binding/" + getTestName(true);
51 PsiTestUtil.removeAllRoots(myModule, JavaSdkImpl.getMockJdk("java 1.4"));
52 myTestProjectRoot = PsiTestUtil.createTestProjectStructure(myProject, myModule, root, myFilesToDelete);
54 catch(Exception e){
55 LOG.error(e);
62 @Override protected void tearDown() throws Exception {
63 myTestProjectRoot = null;
64 super.tearDown();
67 public void testClassUsage() {
68 PsiClass psiClass = myJavaFacade.findClass(JButton.class.getName(), GlobalSearchScope.allScope(myProject));
69 final Query<PsiReference> query = ReferencesSearch.search(psiClass);
70 final Collection<PsiReference> result = query.findAll();
71 assertEquals(1, result.size());
74 public void testFormPropertyUsage() {
75 doPropertyUsageTest("test.properties");
78 public void testLocalizedPropertyUsage() {
79 doPropertyUsageTest("test_ru.properties");
82 private void doPropertyUsageTest(final String propertyFileName) {
83 PropertiesFile propFile = (PropertiesFile) myPsiManager.findFile(myTestProjectRoot.findChild(propertyFileName));
84 assertNotNull(propFile);
85 final Property prop = propFile.findPropertyByKey("key");
86 assertNotNull(prop);
87 final Query<PsiReference> query = ReferencesSearch.search(prop);
88 final Collection<PsiReference> result = query.findAll();
89 assertEquals(1, result.size());
90 verifyReference(result, 0, "form.form", 960);
93 public void testPropertyFileUsage() {
94 doPropertyFileUsageTest("test.properties");
97 public void testLocalizedPropertyFileUsage() {
98 doPropertyFileUsageTest("test_ru.properties");
101 private void doPropertyFileUsageTest(final String fileName) {
102 PropertiesFile propFile = (PropertiesFile) myPsiManager.findFile(myTestProjectRoot.findChild(fileName));
103 assertNotNull(propFile);
104 final Query<PsiReference> query = ReferencesSearch.search(propFile);
105 final Collection<PsiReference> result = query.findAll();
106 assertEquals(1, result.size());
107 verifyReference(result, 0, "form.form", 949);
110 private void verifyReference(final Collection<PsiReference> result, final int index, final String fileName, final int offset) {
111 PsiReference ref = result.toArray(new PsiReference[result.size()]) [index];
112 final PsiElement element = ref.getElement();
113 assertEquals(fileName, element.getContainingFile().getName());
114 int startOffset = element.getTextOffset() + ref.getRangeInElement().getStartOffset();
115 assertEquals(offset, startOffset);