diff --git a/tests/fr/adrienbrault/idea/symfony2plugin/tests/SymfonyTempCodeInsightFixtureTestCase.java b/tests/fr/adrienbrault/idea/symfony2plugin/tests/SymfonyTempCodeInsightFixtureTestCase.java index 2b420c197..bb57cdae7 100644 --- a/tests/fr/adrienbrault/idea/symfony2plugin/tests/SymfonyTempCodeInsightFixtureTestCase.java +++ b/tests/fr/adrienbrault/idea/symfony2plugin/tests/SymfonyTempCodeInsightFixtureTestCase.java @@ -1,12 +1,13 @@ package fr.adrienbrault.idea.symfony2plugin.tests; import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.project.Project; +import com.intellij.openapi.util.Computable; import com.intellij.openapi.vfs.VfsUtil; import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.testFramework.UsefulTestCase; import com.intellij.testFramework.fixtures.IdeaProjectTestFixture; import com.intellij.testFramework.fixtures.IdeaTestFixtureFactory; +import com.intellij.testFramework.fixtures.JavaTestFixtureFactory; +import com.intellij.testFramework.fixtures.impl.LightTempDirTestFixtureImpl; import fr.adrienbrault.idea.symfony2plugin.Settings; import org.apache.commons.lang.RandomStringUtils; import org.apache.commons.lang.StringUtils; @@ -21,39 +22,27 @@ /** * @author Daniel Espendiller */ -abstract public class SymfonyTempCodeInsightFixtureTestCase extends UsefulTestCase { - private Project project; - - private IdeaProjectTestFixture myFixture; - +abstract public class SymfonyTempCodeInsightFixtureTestCase extends SymfonyLightCodeInsightFixtureTestCase { @Override public void setUp() throws Exception { super.setUp(); - myFixture = IdeaTestFixtureFactory.getFixtureFactory() + // clear super fixtures instances + this.myFixture.tearDown(); + + // heavy project + // @TODO: still no index process + IdeaProjectTestFixture fixtures = IdeaTestFixtureFactory.getFixtureFactory() .createFixtureBuilder(RandomStringUtils.randomAlphanumeric(20)) .getFixture(); - myFixture.setUp(); - - project = myFixture.getProject(); - Settings.getInstance(project).pluginEnabled = true; - } - - protected void tearDown() throws Exception { - this.project = null; + this.myFixture = JavaTestFixtureFactory.getFixtureFactory() + .createCodeInsightFixture(fixtures, new LightTempDirTestFixtureImpl(true)); - try { - this.myFixture.tearDown(); - } finally { - this.myFixture = null; - super.tearDown(); - } - } + this.myFixture.setUp(); + this.myModule = this.myFixture.getModule(); - @NotNull - protected Project getProject() { - return project; + Settings.getInstance(getProject()).pluginEnabled = true; } @NotNull @@ -73,31 +62,30 @@ protected VirtualFile[] createFiles(@NotNull String... files) { } protected VirtualFile createFile(@NotNull String file, @Nullable String content) { - final VirtualFile[] childData = new VirtualFile[1]; - - ApplicationManager.getApplication().runWriteAction(new Runnable() { + return ApplicationManager.getApplication().runWriteAction(new Computable() { @Override - public void run() { + public VirtualFile compute() { + VirtualFile virtualFile = null; try { String[] paths = file.split("/"); - if(paths.length == 0) { - childData[0] = getProject().getBaseDir().createChildData(this, file); + if (paths.length == 0) { + virtualFile = getProject().getBaseDir().createChildData(this, file); } else { - childData[0] = VfsUtil.createDirectoryIfMissing( + virtualFile = VfsUtil.createDirectoryIfMissing( getProject().getBaseDir(), StringUtils.join(Arrays.copyOf(paths, paths.length - 1), "/") ).createChildData(this, paths[paths.length - 1]); } - if(content != null) { - childData[0].setBinaryContent(content.getBytes()); + if (content != null) { + virtualFile.setBinaryContent(content.getBytes()); } } catch (IOException ignored) { } + + return virtualFile; } }); - - return childData[0]; } } diff --git a/tests/fr/adrienbrault/idea/symfony2plugin/tests/asset/AssetGoToDeclarationHandlerTest.java b/tests/fr/adrienbrault/idea/symfony2plugin/tests/asset/AssetGoToDeclarationHandlerTest.java index 8cded8ba0..156724338 100644 --- a/tests/fr/adrienbrault/idea/symfony2plugin/tests/asset/AssetGoToDeclarationHandlerTest.java +++ b/tests/fr/adrienbrault/idea/symfony2plugin/tests/asset/AssetGoToDeclarationHandlerTest.java @@ -1,19 +1,18 @@ package fr.adrienbrault.idea.symfony2plugin.tests.asset; import com.jetbrains.twig.TwigFileType; -import fr.adrienbrault.idea.symfony2plugin.tests.SymfonyLightCodeInsightFixtureTestCase; +import fr.adrienbrault.idea.symfony2plugin.tests.SymfonyTempCodeInsightFixtureTestCase; import java.io.File; /** * @author Daniel Espendiller */ -public class AssetGoToDeclarationHandlerTest extends SymfonyLightCodeInsightFixtureTestCase { - +public class AssetGoToDeclarationHandlerTest extends SymfonyTempCodeInsightFixtureTestCase { public void setUp() throws Exception { super.setUp(); - createDummyFiles( + createFiles( "web/assets/foo.css", "web/assets/foo.js", "web/foo.js" @@ -24,8 +23,6 @@ public void setUp() throws Exception { * @see fr.adrienbrault.idea.symfony2plugin.asset.AssetGoToDeclarationHandler */ public void testGotoDeclarationTargetsTag() { - if(System.getenv("PHPSTORM_ENV") != null) return; - assertNavigationContainsFile(TwigFileType.INSTANCE, "" + "{% javascripts\n" + " 'assets/foo.js'\n" + @@ -59,8 +56,6 @@ public void testGotoDeclarationTargetsTag() { * @see fr.adrienbrault.idea.symfony2plugin.asset.AssetGoToDeclarationHandler */ public void testGotoDeclarationTargetsAsset() { - if(System.getenv("PHPSTORM_ENV") != null) return; - assertNavigationContainsFile(TwigFileType.INSTANCE, "{{ asset('assets/foo.css') }}", "foo.css"); assertNavigationContainsFile(TwigFileType.INSTANCE, "{{ asset('assets/foo.js') }}", "foo.js"); @@ -76,8 +71,6 @@ public void testGotoDeclarationTargetsAsset() { * @see fr.adrienbrault.idea.symfony2plugin.asset.AssetGoToDeclarationHandler */ public void testGotoDeclarationTargetsAssetInRoot() { - if (System.getenv("PHPSTORM_ENV") != null) return; - assertNavigationContainsFile(TwigFileType.INSTANCE, "{{ asset('foo.js') }}", "foo.js"); } } diff --git a/tests/fr/adrienbrault/idea/symfony2plugin/tests/completion/xml/XmlGotoCompletionRegistrarTempTest.java b/tests/fr/adrienbrault/idea/symfony2plugin/tests/completion/xml/XmlGotoCompletionRegistrarTempTest.java new file mode 100644 index 000000000..da5141e91 --- /dev/null +++ b/tests/fr/adrienbrault/idea/symfony2plugin/tests/completion/xml/XmlGotoCompletionRegistrarTempTest.java @@ -0,0 +1,28 @@ +package fr.adrienbrault.idea.symfony2plugin.tests.completion.xml; + +import com.intellij.ide.highlighter.XmlFileType; +import fr.adrienbrault.idea.symfony2plugin.tests.SymfonyTempCodeInsightFixtureTestCase; + +/** + * @author Daniel Espendiller + * + * @see fr.adrienbrault.idea.symfony2plugin.completion.xml.XmlGotoCompletionRegistrar + */ +public class XmlGotoCompletionRegistrarTempTest extends SymfonyTempCodeInsightFixtureTestCase { + public void testThatTemplateInsideRouteDefaultKeyCompletedAndNavigable() { + createFile("app/Resources/views/foo.html.twig"); + + assertCompletionContains(XmlFileType.INSTANCE, "" + + " \n" + + " \n" + + " ", + "foo.html.twig" + ); + + assertNavigationMatch(XmlFileType.INSTANCE, "" + + " \n" + + " foo.html.twig\n" + + " " + ); + } +} diff --git a/tests/fr/adrienbrault/idea/symfony2plugin/tests/completion/xml/XmlGotoCompletionRegistrarTest.java b/tests/fr/adrienbrault/idea/symfony2plugin/tests/completion/xml/XmlGotoCompletionRegistrarTest.java index 97bdb84fd..0933eff21 100644 --- a/tests/fr/adrienbrault/idea/symfony2plugin/tests/completion/xml/XmlGotoCompletionRegistrarTest.java +++ b/tests/fr/adrienbrault/idea/symfony2plugin/tests/completion/xml/XmlGotoCompletionRegistrarTest.java @@ -119,29 +119,6 @@ public void testThatRouteInsideRouteDefaultKeyCompletedAndNavigable() { ); } - public void testThatTemplateInsideRouteDefaultKeyCompletedAndNavigable() { - if(System.getenv("PHPSTORM_ENV") != null) return; - - try { - createDummyFiles("app/Resources/views/foo.html.twig"); - } catch (Exception e) { - e.printStackTrace(); - } - - assertCompletionContains(XmlFileType.INSTANCE, "" + - " \n" + - " \n" + - " ", - "foo.html.twig" - ); - - assertNavigationMatch(XmlFileType.INSTANCE, "" + - " \n" + - " foo.html.twig\n" + - " " - ); - } - public void testThatDecoratesServiceTagProvidesReferences() { assertCompletionContains(XmlFileType.INSTANCE, "" + "\n" + diff --git a/tests/fr/adrienbrault/idea/symfony2plugin/tests/completion/yaml/YamlGotoCompletionRegistrarTempTest.java b/tests/fr/adrienbrault/idea/symfony2plugin/tests/completion/yaml/YamlGotoCompletionRegistrarTempTest.java new file mode 100644 index 000000000..356a5c74d --- /dev/null +++ b/tests/fr/adrienbrault/idea/symfony2plugin/tests/completion/yaml/YamlGotoCompletionRegistrarTempTest.java @@ -0,0 +1,29 @@ +package fr.adrienbrault.idea.symfony2plugin.tests.completion.yaml; + +import fr.adrienbrault.idea.symfony2plugin.tests.SymfonyTempCodeInsightFixtureTestCase; +import org.jetbrains.yaml.YAMLFileType; + +/** + * @author Daniel Espendiller + * @see fr.adrienbrault.idea.symfony2plugin.completion.yaml.YamlGotoCompletionRegistrar + */ +public class YamlGotoCompletionRegistrarTempTest extends SymfonyTempCodeInsightFixtureTestCase { + public void testThatTemplateInsideRouteDefaultKeyCompletedAndNavigable() { + createFile("app/Resources/views/foo.html.twig"); + + assertCompletionContains(YAMLFileType.YML, "" + + "root:\n" + + " path: /wp-admin\n" + + " defaults:\n" + + " template: ''\n", + "foo.html.twig" + ); + + assertNavigationMatch(YAMLFileType.YML, "" + + "root:\n" + + " path: /wp-admin\n" + + " defaults:\n" + + " template: 'foo.html.twig'\n" + ); + } +} diff --git a/tests/fr/adrienbrault/idea/symfony2plugin/tests/completion/yaml/YamlGotoCompletionRegistrarTest.java b/tests/fr/adrienbrault/idea/symfony2plugin/tests/completion/yaml/YamlGotoCompletionRegistrarTest.java index 9f1a8ab2c..c88876e06 100644 --- a/tests/fr/adrienbrault/idea/symfony2plugin/tests/completion/yaml/YamlGotoCompletionRegistrarTest.java +++ b/tests/fr/adrienbrault/idea/symfony2plugin/tests/completion/yaml/YamlGotoCompletionRegistrarTest.java @@ -42,31 +42,6 @@ public void testThatRouteInsideRouteDefaultKeyCompletedAndNavigable() { ); } - public void testThatTemplateInsideRouteDefaultKeyCompletedAndNavigable() { - if(System.getenv("PHPSTORM_ENV") != null) return; - - try { - createDummyFiles("app/Resources/views/foo.html.twig"); - } catch (Exception e) { - e.printStackTrace(); - } - - assertCompletionContains(YAMLFileType.YML, "" + - "root:\n" + - " path: /wp-admin\n" + - " defaults:\n" + - " template: ''\n", - "foo.html.twig" - ); - - assertNavigationMatch(YAMLFileType.YML, "" + - "root:\n" + - " path: /wp-admin\n" + - " defaults:\n" + - " template: 'foo.html.twig'\n" - ); - } - public void testThatDecoratesServiceTagProvidesReferences() { Collection strings = new ArrayList() {{ add(new String[] {"", "foo.bar_factory"}); diff --git a/tests/fr/adrienbrault/idea/symfony2plugin/tests/templating/assets/TwigAssetsCompletionContributorTest.java b/tests/fr/adrienbrault/idea/symfony2plugin/tests/templating/assets/TwigAssetsCompletionContributorTest.java index 014b90004..5704d6649 100644 --- a/tests/fr/adrienbrault/idea/symfony2plugin/tests/templating/assets/TwigAssetsCompletionContributorTest.java +++ b/tests/fr/adrienbrault/idea/symfony2plugin/tests/templating/assets/TwigAssetsCompletionContributorTest.java @@ -1,19 +1,18 @@ package fr.adrienbrault.idea.symfony2plugin.tests.templating.assets; import com.jetbrains.twig.TwigFileType; -import fr.adrienbrault.idea.symfony2plugin.tests.SymfonyLightCodeInsightFixtureTestCase; +import fr.adrienbrault.idea.symfony2plugin.tests.SymfonyTempCodeInsightFixtureTestCase; /** * @author Daniel Espendiller * @see com.jetbrains.twig.completion.TwigCompletionContributor */ -public class TwigAssetsCompletionContributorTest extends SymfonyLightCodeInsightFixtureTestCase { +public class TwigAssetsCompletionContributorTest extends SymfonyTempCodeInsightFixtureTestCase { public void setUp() throws Exception { super.setUp(); - if (System.getenv("PHPSTORM_ENV") != null) return; - - createDummyFiles( + + createFiles( "web/assets/foo.css", "web/assets/foo.less", "web/assets/foo.sass", @@ -25,19 +24,14 @@ public void setUp() throws Exception { "web/assets/foo.png", "web/assets/foo.gif" ); - } public void testTwigAssetFunctionCompletion() { - if (System.getenv("PHPSTORM_ENV") != null) return; - assertCompletionContains(TwigFileType.INSTANCE, "{{ asset('') }}", "assets/foo.css", "assets/foo.js", "assets/foo.less", "assets/foo.coffee"); assertCompletionResultEquals(TwigFileType.INSTANCE, "", ""); } public void testTwigAssetsTagCompletion() { - if (System.getenv("PHPSTORM_ENV") != null) return; - assertCompletionContains(TwigFileType.INSTANCE, "{% stylesheets '' %}{% endstylesheets %}", "assets/foo.css", "assets/foo.less", "assets/foo.sass", "assets/foo.scss"); assertCompletionNotContains(TwigFileType.INSTANCE, "{% stylesheets '' %}{% endstylesheets %}", "assets/foo.js", "assets/foo.dart", "assets/foo.coffee"); @@ -46,14 +40,10 @@ public void testTwigAssetsTagCompletion() { } public void testTwigAssetImageFunctionCompletion() { - if (System.getenv("PHPSTORM_ENV") != null) return; - assertCompletionResultEquals(TwigFileType.INSTANCE, "\">", ""); } public void testTwigAbsoluteUrlFunctionCompletion() { - if (System.getenv("PHPSTORM_ENV") != null) return; - assertCompletionContains(TwigFileType.INSTANCE, "{{ absolute_url('') }}", "assets/foo.css", "assets/foo.js", "assets/foo.less", "assets/foo.coffee"); } } diff --git a/tests/fr/adrienbrault/idea/symfony2plugin/tests/templating/util/TwigUtilTest.java b/tests/fr/adrienbrault/idea/symfony2plugin/tests/templating/util/TwigUtilTest.java index 170838268..a6410a33c 100644 --- a/tests/fr/adrienbrault/idea/symfony2plugin/tests/templating/util/TwigUtilTest.java +++ b/tests/fr/adrienbrault/idea/symfony2plugin/tests/templating/util/TwigUtilTest.java @@ -31,17 +31,6 @@ import java.util.*; public class TwigUtilTest extends SymfonyLightCodeInsightFixtureTestCase { - - public void setUp() throws Exception { - super.setUp(); - - createDummyFiles( - "app/Resources/TwigUtilIntegrationBundle/views/layout.html.twig", - "app/Resources/TwigUtilIntegrationBundle/views/Foo/layout.html.twig", - "app/Resources/TwigUtilIntegrationBundle/views/Foo/Bar/layout.html.twig" - ); - } - public String getTestDataPath() { return new File(this.getClass().getResource("fixtures").getFile()).getAbsolutePath(); } @@ -50,7 +39,17 @@ public String getTestDataPath() { * @see fr.adrienbrault.idea.symfony2plugin.templating.util.TwigUtil#getTemplateNameByOverwrite */ public void testTemplateOverwriteNavigation() { - if(System.getenv("PHPSTORM_ENV") != null) return; + if(true) return; + + try { + createDummyFiles( + "app/Resources/TwigUtilIntegrationBundle/views/layout.html.twig", + "app/Resources/TwigUtilIntegrationBundle/views/Foo/layout.html.twig", + "app/Resources/TwigUtilIntegrationBundle/views/Foo/Bar/layout.html.twig" + ); + } catch (Exception e) { + e.printStackTrace(); + } assertNavigationContainsFile(TwigFileType.INSTANCE, "{% extends 'TwigUtilIntegrationBundle:layout.html.twig' %}", "/views/layout.html.twig"); assertNavigationContainsFile(TwigFileType.INSTANCE, "{% extends 'TwigUtilIntegrationBundle:Foo/layout.html.twig' %}", "/views/Foo/layout.html.twig");