mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-10 13:17:09 +07:00
IDEA-56096 Allow to create file templates with extension contains dot [CR-IC-3923]
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package com.intellij.ide.fileTemplates
|
||||
import com.intellij.ide.fileTemplates.impl.CustomFileTemplate
|
||||
import com.intellij.ide.fileTemplates.impl.FileTemplateTestUtil
|
||||
import com.intellij.openapi.Disposable
|
||||
import com.intellij.openapi.application.ex.PathManagerEx
|
||||
import com.intellij.openapi.roots.ModuleRootManager
|
||||
@@ -16,6 +17,16 @@ import com.intellij.testFramework.PsiTestUtil
|
||||
import com.intellij.util.properties.EncodingAwareProperties
|
||||
|
||||
public class FileTemplatesTest extends IdeaTestCase {
|
||||
private File myTestConfigDir;
|
||||
|
||||
@Override
|
||||
protected void tearDown() throws Exception {
|
||||
super.tearDown();
|
||||
if (myTestConfigDir !=null && myTestConfigDir.exists()) {
|
||||
FileUtil.delete(myTestConfigDir);
|
||||
}
|
||||
}
|
||||
|
||||
public void testAllTemplates() throws Exception {
|
||||
final File testsDir = new File(PathManagerEx.getTestDataPath()+"/ide/fileTemplates");
|
||||
|
||||
@@ -130,4 +141,38 @@ public class FileTemplatesTest extends IdeaTestCase {
|
||||
template.setText(text);
|
||||
template
|
||||
}
|
||||
|
||||
public void doTestSaveLoadTemplate(String name, String ext) {
|
||||
FileTemplateTestUtil.TestFTManager templateManager = new FileTemplateTestUtil.TestFTManager("test", "testTemplates",
|
||||
getTestConfigRoot());
|
||||
FileTemplate template = templateManager.addTemplate(name, ext);
|
||||
String qName = template.getQualifiedName();
|
||||
templateManager.saveTemplates();
|
||||
templateManager.removeTemplate(qName);
|
||||
FileTemplateTestUtil.loadCustomizedContent(templateManager);
|
||||
FileTemplate loadedTemplate = templateManager.findTemplateByName(name);
|
||||
assertNotNull("Template '" + qName + "' was not found", loadedTemplate);
|
||||
assertEquals(name, loadedTemplate.getName());
|
||||
assertEquals(ext, loadedTemplate.getExtension());
|
||||
assertTrue(template != loadedTemplate);
|
||||
}
|
||||
|
||||
private File getTestConfigRoot() throws Exception {
|
||||
if (myTestConfigDir == null) {
|
||||
myTestConfigDir = FileUtil.createTempDirectory(getTestName(true), "config");
|
||||
}
|
||||
return myTestConfigDir;
|
||||
}
|
||||
|
||||
public void testSaveLoadCustomTemplate() throws Exception {
|
||||
doTestSaveLoadTemplate("name", "ext");
|
||||
}
|
||||
|
||||
public void testSaveLoadCustomTemplateDottedName() throws Exception {
|
||||
doTestSaveLoadTemplate("name.has.dots", "ext");
|
||||
}
|
||||
|
||||
public void testSaveLoadCustomTemplateDottedExt() throws Exception {
|
||||
doTestSaveLoadTemplate("name", "ext.has.dots");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
* Copyright 2000-2014 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.ide.fileTemplates.impl;
|
||||
|
||||
import com.intellij.openapi.fileTypes.ex.FileTypeManagerEx;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
/**
|
||||
* @author Rustam Vishnyakov
|
||||
*/
|
||||
public class FileTemplateTestUtil {
|
||||
public static final class TestFTManager extends FTManager {
|
||||
private File myTestConfigDir;
|
||||
|
||||
public TestFTManager(
|
||||
@NotNull @NonNls String name,
|
||||
@NotNull @NonNls String defaultTemplatesDirName,
|
||||
@NotNull File testConfigDir) {
|
||||
super(name, defaultTemplatesDirName);
|
||||
myTestConfigDir = testConfigDir;
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getConfigRoot(boolean create) {
|
||||
return myTestConfigDir;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveTemplates() {
|
||||
super.saveTemplates();
|
||||
}
|
||||
}
|
||||
|
||||
public static void loadCustomizedContent(FTManager templateManager) {
|
||||
FileTemplatesLoader loader = new FileTemplatesLoader(FileTypeManagerEx.getInstanceEx());
|
||||
loader.loadCustomizedContent(templateManager);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user