package fr.adrienbrault.idea.symfony2plugin.tests.templating.assets; import com.jetbrains.twig.TwigFileType; import fr.adrienbrault.idea.symfony2plugin.tests.SymfonyLightCodeInsightFixtureTestCase; /** * @author Daniel Espendiller <daniel@espendiller.net> * @see com.jetbrains.twig.completion.TwigCompletionContributor */ public class TwigAssetsCompletionContributorTest extends SymfonyLightCodeInsightFixtureTestCase { public void setUp() throws Exception { super.setUp(); if (System.getenv("PHPSTORM_ENV") != null) return; createDummyFiles( "web/assets/foo.css", "web/assets/foo.less", "web/assets/foo.sass", "web/assets/foo.scss", "web/assets/foo.js", "web/assets/foo.dart", "web/assets/foo.coffee", "web/assets/foo.jpg", "web/assets/foo.png", "web/assets/foo.gif" ); } public void testTwigAssetFunctionCompletion() { if (System.getenv("PHPSTORM_ENV") != null) return; assertCompletionContains(TwigFileType.INSTANCE, "{{ asset('<caret>') }}", "assets/foo.css", "assets/foo.js", "assets/foo.less", "assets/foo.coffee"); assertCompletionResultEquals(TwigFileType.INSTANCE, "<script src=\"assets/foo.coffee<caret>\"></script>", "<script src=\"{{ asset('assets/foo.coffee') }}\"></script>"); } public void testTwigAssetsTagCompletion() { if (System.getenv("PHPSTORM_ENV") != null) return; assertCompletionContains(TwigFileType.INSTANCE, "{% stylesheets '<caret>' %}{% endstylesheets %}", "assets/foo.css", "assets/foo.less", "assets/foo.sass", "assets/foo.scss"); assertCompletionNotContains(TwigFileType.INSTANCE, "{% stylesheets '<caret>' %}{% endstylesheets %}", "assets/foo.js", "assets/foo.dart", "assets/foo.coffee"); assertCompletionContains(TwigFileType.INSTANCE, "{% javascripts '<caret>' %}{% endjavascripts %}", "assets/foo.js", "assets/foo.dart", "assets/foo.coffee"); assertCompletionNotContains(TwigFileType.INSTANCE, "{% javascripts '<caret>' %}{% endjavascripts %}", "assets/foo.css", "assets/foo.less", "assets/foo.sass", "assets/foo.scss"); } public void testTwigAssetImageFunctionCompletion() { if (System.getenv("PHPSTORM_ENV") != null) return; assertCompletionResultEquals(TwigFileType.INSTANCE, "<img src=\"assets/foo.pn<caret>\">", "<img src=\"{{ asset('assets/foo.png') }}\">"); } public void testTwigAbsoluteUrlFunctionCompletion() { if (System.getenv("PHPSTORM_ENV") != null) return; assertCompletionContains(TwigFileType.INSTANCE, "{{ absolute_url('<caret>') }}", "assets/foo.css", "assets/foo.js", "assets/foo.less", "assets/foo.coffee"); } }