package fr.adrienbrault.idea.symfony2plugin.tests.eventDispatcher;
import com.intellij.ide.highlighter.XmlFileType;
import com.jetbrains.php.lang.PhpFileType;
import fr.adrienbrault.idea.symfony2plugin.tests.SymfonyLightCodeInsightFixtureTestCase;
import org.jetbrains.yaml.YAMLFileType;
import java.io.File;
/**
* @author Daniel Espendiller <daniel@espendiller.net>
*/
public class KernelEventListenerReferences extends SymfonyLightCodeInsightFixtureTestCase {
public void setUp() throws Exception {
super.setUp();
myFixture.copyFileToProject("classes.php");
myFixture.copyFileToProject("services.xml");
myFixture.copyFileToProject("services.yml");
}
public String getTestDataPath() {
return new File(this.getClass().getResource("fixtures").getFile()).getAbsolutePath();
}
/**
* @see fr.adrienbrault.idea.symfony2plugin.util.completion.EventCompletionProvider
* @see fr.adrienbrault.idea.symfony2plugin.config.dic.EventDispatcherEventReference
*/
public void testKernelEventListenerTagOnIndexCompletion() {
assertCompletionContains(XmlFileType.INSTANCE, "<container>\n" +
" <services>\n" +
" <service>\n" +
" <tag name=\"kernel.event_listener\" event=\"<caret>\"/>\n" +
" </service>\n" +
" </services>\n" +
"</container>",
"xml_event", "yaml_event_1", "yaml_event_2", "yaml_event_3"
);
assertCompletionContains(YAMLFileType.YML, "services:\n" +
" foo_service:\n" +
" class: Foo\n" +
" tags:\n" +
" - { name: kernel.event_listener, event: <caret> }",
"xml_event", "yaml_event_1", "yaml_event_2", "yaml_event_3"
);
assertCompletionContains(YAMLFileType.YML, "services:\n" +
" foo_service:\n" +
" class: Foo\n" +
" tags:\n" +
" - { name: kernel.event_listener, event: '<caret>' }",
"xml_event", "yaml_event_1", "yaml_event_2", "yaml_event_3"
);
assertCompletionContains(YAMLFileType.YML, "services:\n" +
" foo_service:\n" +
" class: Foo\n" +
" tags:\n" +
" - { name: kernel.event_listener, event: \"<caret>\" }",
"xml_event", "yaml_event_1", "yaml_event_2", "yaml_event_3"
);
assertCompletionNotContains(YAMLFileType.YML, "services:\n" +
" foo_service:\n" +
" class: Foo\n" +
" tags:\n" +
" - { name: kernel.event_listener, event: \"<caret>\" }",
"xml_event_non"
);
assertCompletionContains(PhpFileType.INSTANCE, "<?php " +
"/** @var $dispatcher \\Symfony\\Component\\EventDispatcher\\EventDispatcherInterface */\n" +
"$dispatcher->dispatch('<caret>');" +
"xml_event"
);
}
}