package fr.adrienbrault.idea.symfony2plugin.tests.completion.command; import com.intellij.patterns.PlatformPatterns; import com.jetbrains.php.lang.PhpFileType; import com.jetbrains.php.lang.psi.elements.PhpClass; import fr.adrienbrault.idea.symfony2plugin.tests.SymfonyLightCodeInsightFixtureTestCase; import java.io.File; /** * @author Daniel Espendiller <daniel@espendiller.net> */ public class ConsoleHelperGotoCompletionRegistrarTest extends SymfonyLightCodeInsightFixtureTestCase { public void setUp() throws Exception { super.setUp(); myFixture.copyFileToProject("helper.php"); } public String getTestDataPath() { return new File(this.getClass().getResource("fixtures").getFile()).getAbsolutePath(); } /** * @see fr.adrienbrault.idea.symfony2plugin.completion.command.ConsoleHelperGotoCompletionRegistrar */ public void testGetHelper() { assertCompletionContains(PhpFileType.INSTANCE, "<?php" + "/** @var \\Symfony\\Component\\Console\\Command\\Command $foo */\n" + "$foo->getHelper('<caret>');", "foo" ); assertNavigationMatch(PhpFileType.INSTANCE, "<?php" + "/** @var \\Symfony\\Component\\Console\\Command\\Command $foo */\n" + "$foo->getHelper('fo<caret>o');", PlatformPatterns.psiElement(PhpClass.class) ); } /** * @see fr.adrienbrault.idea.symfony2plugin.completion.command.ConsoleHelperGotoCompletionRegistrar */ public void testHelperSet() { assertCompletionContains(PhpFileType.INSTANCE, "<?php" + "/** @var \\Symfony\\Component\\Console\\Helper\\HelperSet $foo */\n" + "$foo->has('<caret>');", "foo" ); assertNavigationMatch(PhpFileType.INSTANCE, "<?php" + "/** @var \\Symfony\\Component\\Console\\Helper\\HelperSet $foo */\n" + "$foo->has('fo<caret>o');", PlatformPatterns.psiElement(PhpClass.class) ); assertCompletionContains(PhpFileType.INSTANCE, "<?php" + "/** @var \\Symfony\\Component\\Console\\Helper\\HelperSet $foo */\n" + "$foo->get('<caret>');", "foo" ); assertNavigationMatch(PhpFileType.INSTANCE, "<?php" + "/** @var \\Symfony\\Component\\Console\\Helper\\HelperSet $foo */\n" + "$foo->get('fo<caret>o');", PlatformPatterns.psiElement(PhpClass.class) ); } }