package fr.adrienbrault.idea.symfony2plugin.tests.translation;
import com.intellij.patterns.PlatformPatterns;
import com.jetbrains.php.lang.PhpFileType;
import com.jetbrains.twig.TwigFileType;
import fr.adrienbrault.idea.symfony2plugin.tests.SymfonyLightCodeInsightFixtureTestCase;
import java.io.File;
/**
* @author Daniel Espendiller <daniel@espendiller.net>
* @see fr.adrienbrault.idea.symfony2plugin.translation.TranslationPlaceholderGotoCompletionRegistrar
*/
public class TranslationPlaceholderGotoCompletionRegistrarTest extends SymfonyLightCodeInsightFixtureTestCase {
public void setUp() throws Exception {
super.setUp();
myFixture.copyFileToProject("symfony.de.yml", "Resources/translations/symfony.de.yml");
myFixture.copyFileToProject("TranslationPlaceholderGotoCompletionRegistrar.php");
}
protected String getTestDataPath() {
return new File(this.getClass().getResource("fixtures").getFile()).getAbsolutePath();
}
public void testCompletionForTwigTransPlaceholder() {
assertCompletionContains(
TwigFileType.INSTANCE,
"{{ 'symfony.great'|trans({'fo<caret>f'}, 'symfony')) }}",
"%foobar%"
);
assertCompletionContains(
TwigFileType.INSTANCE,
"{{ 'symfony.great'|trans({'foobar': 'foobar', 'fo<caret>f'}, 'symfony')) }}",
"%foobar%"
);
}
public void testNavigationForTwigTransPlaceholder() {
assertNavigationMatch(
TwigFileType.INSTANCE,
"{{ 'symfony.great'|trans({'foobar': 'foobar', '%foo<caret>bar%'}, 'symfony')) }}",
PlatformPatterns.psiElement()
);
}
public void testCompletionForTwigTransChoicePlaceholder() {
assertCompletionContains(
TwigFileType.INSTANCE,
"{{ 'symfony.great'|transchoice(12, {'fo<caret>f'}, 'symfony')) }}",
"%foobar%"
);
assertCompletionContains(
TwigFileType.INSTANCE,
"{{ 'symfony.great'|transchoice(12, {'foobar': 'foobar', 'fo<caret>f'}, 'symfony')) }}",
"%foobar%"
);
}
public void testNavigationForTwigTransChoicePlaceholder() {
assertNavigationMatch(
TwigFileType.INSTANCE,
"{{ 'symfony.great'|transchoice(12, {'foobar': 'foobar', '%foo<caret>bar%'}, 'symfony')) }}",
PlatformPatterns.psiElement()
);
}
public void testCompletionForPhpTransPlaceholder() {
assertCompletionContains(
PhpFileType.INSTANCE,"<?php\n" +
"/** @var $x \\Symfony\\Component\\Translation\\TranslatorInterface */\n" +
"$x->trans('symfony.great', ['<caret>'], 'symfony')",
"%foobar%"
);
assertCompletionContains(
PhpFileType.INSTANCE,"<?php\n" +
"/** @var $x \\Symfony\\Component\\Translation\\TranslatorInterface */\n" +
"$x->trans('symfony.great', ['<caret>', null], 'symfony')",
"%foobar%"
);
}
public void testNavigationForPhpTransPlaceholder() {
assertNavigationMatch(
PhpFileType.INSTANCE,"<?php\n" +
"/** @var $x \\Symfony\\Component\\Translation\\TranslatorInterface */\n" +
"$x->trans('symfony.great', ['%fo<caret>obar%'], 'symfony')",
PlatformPatterns.psiElement()
);
assertNavigationMatch(
PhpFileType.INSTANCE,"<?php\n" +
"/** @var $x \\Symfony\\Component\\Translation\\TranslatorInterface */\n" +
"$x->trans('symfony.great', ['%fo<caret>obar%', null], 'symfony')",
PlatformPatterns.psiElement()
);
}
public void testCompletionForPhpTransChoicePlaceholder() {
assertCompletionContains(
PhpFileType.INSTANCE,"<?php\n" +
"/** @var $x \\Symfony\\Component\\Translation\\TranslatorInterface */\n" +
"$x->transChoice('symfony.great', 2, ['<caret>'], 'symfony')",
"%foobar%"
);
assertCompletionContains(
PhpFileType.INSTANCE,"<?php\n" +
"/** @var $x \\Symfony\\Component\\Translation\\TranslatorInterface */\n" +
"$x->transChoice('symfony.great', 2, ['<caret>', null], 'symfony')",
"%foobar%"
);
}
public void testNavigationForPhpTransChoicePlaceholder() {
assertNavigationMatch(
PhpFileType.INSTANCE,"<?php\n" +
"/** @var $x \\Symfony\\Component\\Translation\\TranslatorInterface */\n" +
"$x->transChoice('symfony.great', 2, ['%fo<caret>obar%'], 'symfony')",
PlatformPatterns.psiElement()
);
assertNavigationMatch(
PhpFileType.INSTANCE,"<?php\n" +
"/** @var $x \\Symfony\\Component\\Translation\\TranslatorInterface */\n" +
"$x->transChoice('symfony.great', 2, ['%fo<caret>obar%', null], 'symfony')",
PlatformPatterns.psiElement()
);
}
}