blob: 9e1235399b0311a0bd378f9b2e2493a74d9752f6 [file] [log] [blame]
package com.intellij.lang.properties.xml;
import com.intellij.lang.properties.IProperty;
import com.intellij.lang.properties.PropertiesImplUtil;
import com.intellij.lang.properties.PropertiesReferenceManager;
import com.intellij.lang.properties.psi.PropertiesFile;
import com.intellij.openapi.application.PluginPathManager;
import com.intellij.openapi.command.WriteCommandAction;
import com.intellij.psi.PsiFile;
import com.intellij.testFramework.PlatformTestCase;
import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase;
import java.util.List;
/**
* @author Dmitry Avdeev
* Date: 7/26/11
*/
public class XmlPropertiesTest extends LightPlatformCodeInsightFixtureTestCase {
public void testXmlProperties() throws Exception {
myFixture.configureByFile("foo.xml");
List<PropertiesFile> files = PropertiesReferenceManager.getInstance(getProject()).findPropertiesFiles(myModule, "foo");
assertEquals(1, files.size());
PropertiesFile file = files.get(0);
assertEquals(1, file.findPropertiesByKey("foo").size());
List<IProperty> properties = PropertiesImplUtil.findPropertiesByKey(getProject(), "foo");
assertEquals(1, properties.size());
}
public void testWrongFile() throws Exception {
PsiFile psiFile = myFixture.configureByFile("wrong.xml");
PropertiesFile file = PropertiesImplUtil.getPropertiesFile(psiFile);
assertNull(file);
}
public void testHighlighting() throws Exception {
myFixture.testHighlighting("foo.xml");
}
public void testAddProperty() {
final PsiFile psiFile = myFixture.configureByFile("foo.xml");
final PropertiesFile propertiesFile = PropertiesImplUtil.getPropertiesFile(psiFile);
assertNotNull(propertiesFile);
WriteCommandAction.runWriteCommandAction(getProject(), new Runnable() {
public void run() {
propertiesFile.addProperty("kkk", "vvv");
}
});
final IProperty property = propertiesFile.findPropertyByKey("kkk");
assertNotNull(property);
assertEquals("vvv", property.getValue());
}
@Override
protected String getTestDataPath() {
return PluginPathManager.getPluginHomePath("properties") + "/testData/xml/";
}
@Override
protected boolean isWriteActionRequired() {
return false;
}
public XmlPropertiesTest() {
PlatformTestCase.initPlatformLangPrefix();
}
}