public static void assertExit(PsiFile file) { final String text = file.getText(); Object exception = null; try { Quoter.quote(text); } catch (IOException | OtpErlangDecodeException | OtpErlangExit e) { exception = e; } assertThat(exception, instanceOf(OtpErlangExit.class)); }
private void doTestVariantsInner(@NotNull CompletionType type, int count, CheckType checkType, String... variants) { myFixture.complete(type, count); List<String> stringList = myFixture.getLookupElementStrings(); assertNotNull("\nPossibly the single variant has been completed.\nFile after:\n" + myFixture.getFile().getText(), stringList); Collection<String> varList = ContainerUtil.newArrayList(variants); if (checkType == CheckType.ORDERED_EQUALS) { UsefulTestCase.assertOrderedEquals(stringList, variants); } else if (checkType == CheckType.EQUALS) { UsefulTestCase.assertSameElements(stringList, variants); } else if (checkType == CheckType.INCLUDES) { varList.removeAll(stringList); assertTrue("Missing variants: " + varList, varList.isEmpty()); } else if (checkType == CheckType.EXCLUDES) { varList.retainAll(stringList); assertTrue("Unexpected variants: " + varList, varList.isEmpty()); } }
public static void assertError(PsiFile file) { final String text = file.getText(); try { OtpErlangTuple quotedMessage = Quoter.quote(text); Quoter.assertMessageReceived(quotedMessage); OtpErlangAtom status = (OtpErlangAtom) quotedMessage.elementAt(0); String statusString = status.atomValue(); assertEquals(statusString, "error"); } catch (IOException | OtpErlangDecodeException | OtpErlangExit e) { throw new RuntimeException(e); } }
/** * Handles an action of adding new template. * Ignores action if selected file is not a {@link IgnoreFile} instance, otherwise shows GeneratorDialog. * * @param e action event */ @Override public void actionPerformed(@NotNull AnActionEvent e) { final Project project = e.getData(CommonDataKeys.PROJECT); final PsiFile file = e.getData(CommonDataKeys.PSI_FILE); if (project == null || !(file instanceof IgnoreFile)) { return; } String content = file.getText(); Document document = file.getViewProvider().getDocument(); if (document != null) { Editor[] editors = EditorFactory.getInstance().getEditors(document); if (editors.length > 0) { String selectedText = editors[0].getSelectionModel().getSelectedText(); if (!StringUtil.isEmpty(selectedText)) { content = selectedText; } } } new UserTemplateDialog(project, content).show(); }
private void doTest(@NotNull String text, String... usages) { myFixture.configureByText("foo.go", text); @SuppressWarnings("unchecked") HighlightUsagesHandlerBase<PsiElement> handler = HighlightUsagesHandler.createCustomHandler(myFixture.getEditor(), myFixture.getFile()); assertNotNull(handler); List<PsiElement> targets = handler.getTargets(); assertEquals(1, targets.size()); handler.computeUsages(targets); List<String> textUsages = ContainerUtil.map(handler.getReadUsages(), range -> range.substring(myFixture.getFile().getText())); assertSameElements(textUsages, usages); } }
private void doTest(File resource) { try { String name = resource.getName().replace("." + myFileExt, EMPTY_STRING); // Retrieves relative path of the file since loadFile() uses "myFullDataPath" as the source root. String relativeFilePath = resource.getPath().replace(getTestDataPath(), EMPTY_STRING); String text = loadFile(relativeFilePath); myFile = createPsiFile(name, text); ensureParsed(myFile); assertEquals("light virtual file text mismatch", text, ((LightVirtualFile) myFile.getVirtualFile()).getContent().toString()); assertEquals("virtual file text mismatch", text, LoadTextUtil.loadText(myFile.getVirtualFile())); assertEquals("doc text mismatch", text, myFile.getViewProvider().getDocument().getText()); assertEquals("psi text mismatch", text, myFile.getText()); ensureCorrectReparse(myFile); checkResult(relativeFilePath, myFile); } catch (IOException e) { throw new RuntimeException(e); } }
public static void assertQuotedCorrectly(PsiFile file) { final String text = file.getText(); try { OtpErlangTuple quotedMessage = Quoter.quote(text); Quoter.assertMessageReceived(quotedMessage); OtpErlangAtom status = (OtpErlangAtom) quotedMessage.elementAt(0); String statusString = status.atomValue(); OtpErlangObject expectedQuoted = quotedMessage.elementAt(1); if (statusString.equals("ok")) { OtpErlangObject actualQuoted = ElixirPsiImplUtil.quote(file); assertQuotedCorrectly(expectedQuoted, actualQuoted); } else if (statusString.equals("error")) { OtpErlangTuple error = (OtpErlangTuple) expectedQuoted; OtpErlangLong line = (OtpErlangLong) error.elementAt(0); OtpErlangBinary messageBinary = (OtpErlangBinary) error.elementAt(1); String message = ElixirPsiImplUtil.javaString(messageBinary); OtpErlangBinary tokenBinary = (OtpErlangBinary) error.elementAt(2); String token = ElixirPsiImplUtil.javaString(tokenBinary); throw new AssertionError( "intellij_elixir returned \"" + message + "\" on line " + line + " due to " + token + ", use assertQuotesAroundError if error is expect in Elixir natively, " + "but not in intellij-elixir plugin" ); } } catch (IOException | OtpErlangDecodeException | OtpErlangExit e) { throw new RuntimeException(e); } }
private String convertToJsonIfNecessary(final PsiFile file) throws Exception { if (fileDetector.isMainSwaggerJsonFile(file) || fileDetector.isMainOpenApiJsonFile(file)) { return file.getText(); } final ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); final JsonNode jsonNode = mapper.readTree(file.getText()); return new ObjectMapper().writeValueAsString(jsonNode); } }
@NotNull private PsiFile root() { String name = getTestName(false); PsiFile root; try { String text = loadFile(name + "." + myFileExt); myFile = createPsiFile(name, text); ensureParsed(myFile); assertEquals("light virtual file text mismatch", text, ((LightVirtualFile) myFile.getVirtualFile()).getContent().toString()); assertEquals("virtual file text mismatch", text, LoadTextUtil.loadText(myFile.getVirtualFile())); assertEquals("doc text mismatch", text, myFile.getViewProvider().getDocument().getText()); assertEquals("psi text mismatch", text, myFile.getText()); FileViewProvider fileViewProvider = myFile.getViewProvider(); root = fileViewProvider.getPsi(ElixirLanguage.INSTANCE); assertNotNull(root); } catch (IOException exception) { throw new RuntimeException(exception); } return root; } }
public static CompletionResultSet forValue( final @NotNull CompletionParameters parameters, final @NotNull CompletionResultSet result) { final boolean caseSensitive = false; return getPrefix(parameters.getOffset() - 1, parameters.getOriginalFile().getText()) .map(prefix -> result.withPrefixMatcher(new CamelHumpMatcher(prefix, caseSensitive))) .orElse(result); }
private void writeContentsToFile(final PsiFile file, final File outFile) throws IOException { final String lineSeparator = CodeStyleSettingsManager.getSettings(file.getProject()).getLineSeparator(); final Writer tempFileOut = writerTo(outFile, charSetOf(file)); for (final char character : file.getText().toCharArray()) { if (character == '\n') { // IDEA uses \n internally tempFileOut.write(lineSeparator); } else { tempFileOut.write(character); } } tempFileOut.flush(); tempFileOut.close(); }
Matcher matcher = Pattern.compile("[\\s]*repositoryClass:[\\s]*[\"|']*(.*)[\"|']*").matcher(psiFile.getText()); if (matcher.find()) { return PhpElementsUtil.getClass(PhpIndex.getInstance(project), matcher.group(1));
@NotNull public static PsiElement createYamlPsiFromText(Project p, final IElementType type, @NotNull String text) { final Ref<PsiElement> ret = new Ref<>(); PsiFile dummyFile = createDummyFile(p, text); dummyFile.accept(new PsiRecursiveElementWalkingVisitor() { @Override public void visitElement(PsiElement element) { if(element.getNode() == type) { ret.set(element); } super.visitElement(element); } }); assert !ret.isNull() : "cannot create element from text:\n" + dummyFile.getText(); return ret.get(); }
/** * @see ProfilerUtil#getRenderedElementTwigTemplates */ public void testGetRenderedElementTwigTemplates() { PsiFile psiFile = myFixture.configureByFile("profiler-twig.html"); Map<String, Integer> requests = ProfilerUtil.getRenderedElementTwigTemplates(getProject(), psiFile.getText()); assertEquals(16, requests.get("@Twig/Exception/trace.html.twig").intValue()); assertEquals(1, requests.get("@Twig/Exception/traces.html.twig").intValue()); }
/** * @see ProfilerUtil#getRequestAttributes */ public void testGetRequestValues() { PsiFile psiFile = myFixture.configureByFile("profiler-request.html"); Map<String, String> requests = ProfilerUtil.getRequestAttributes(getProject(), psiFile.getText()); assertEquals("my.controller:latestAction", requests.get("_controller")); assertEquals("foo_route", requests.get("_route")); }
public void testInsertTranslationForYamlFile() { PsiFile dummyFile = YamlPsiElementFactory.createDummyFile(getProject(), "foo.de.yml", "car: 'foo'"); CommandProcessor.getInstance().executeCommand(getProject(), () -> ApplicationManager.getApplication().runWriteAction(() -> { TranslationInsertUtil.invokeTranslation(dummyFile, "foobar", "value"); }), null, null); String text = dummyFile.getText(); assertTrue(text.contains("foobar: 'value'")); } }
/** * @see ProfilerUtil#createRequestsFromIndexHtml */ public void testCreateRequestsFromIndexHtml() { PsiFile psiFile = myFixture.configureByFile("profiler-index.html"); Collection<ProfilerRequestInterface> requests = ProfilerUtil.createRequestsFromIndexHtml(getProject(), psiFile.getText(), "http://127.0.0.1:8000/"); ProfilerRequestInterface request = requests.iterator().next(); assertEquals("a9eaab", request.getHash()); assertEquals("GET", request.getMethod()); assertEquals("http://127.0.0.1:8000/_profiler/search/results?ip=&limit=10", request.getUrl()); assertEquals("http://127.0.0.1:8000/_profiler/a9eaab", request.getProfilerUrl()); assertEquals(404, request.getStatusCode()); }
public void testInsertTranslationForXlf() { PsiFile psiFile = PsiFileFactory.getInstance(getProject()).createFileFromText("foo.xml", XmlFileType.INSTANCE, "" + "<?xml version=\"1.0\"?>\n" + "<xliff version=\"1.2\" xmlns=\"urn:oasis:names:tc:xliff:document:1.2\">\n" + " <file source-language=\"en\" datatype=\"plaintext\" original=\"file.ext\">\n" + " <body>\n" + " <trans-unit id=\"1\">\n" + " <source>This value should be false.</source>\n" + " </trans-unit>\n" + " <trans-unit id=\"foobar\">\n" + " <source>This value should be false.</source>\n" + " </trans-unit>\n" + " </body>\n" + " </file>\n" + "</xliff>\n" ); CommandProcessor.getInstance().executeCommand(getProject(), () -> ApplicationManager.getApplication().runWriteAction(() -> { TranslationInsertUtil.invokeTranslation((XmlFile) psiFile, "foobar", "value"); }), null, null); String text = psiFile.getText(); assertTrue(text.contains("<trans-unit id=\"2\">")); assertTrue(text.contains("<source>foobar</source>")); assertTrue(text.contains("<target>value</target>")); }
public void testInsertTranslationForXlf20Shortcut() { PsiFile xmlFile = PsiFileFactory.getInstance(getProject()).createFileFromText("foo.xml", XmlFileType.INSTANCE, "" + "<xliff xmlns=\"urn:oasis:names:tc:xliff:document:2.0\" version=\"2.0\"\n" + " srcLang=\"en-US\" trgLang=\"ja-JP\">\n" + " <file id=\"f1\" original=\"Graphic Example.psd\">\n" + " <skeleton href=\"Graphic Example.psd.skl\"/>\n" + " <unit id=\"1\">\n" + " <segment>\n" + " <source>foo</source>\n" + " </segment>\n" + " </unit>\n" + " <unit id=\"foobar\">\n" + " <segment>\n" + " <source>foo</source>\n" + " </segment>\n" + " </unit>\n" + " </file>\n" + "</xliff>" ); CommandProcessor.getInstance().executeCommand(getProject(), () -> ApplicationManager.getApplication().runWriteAction(() -> { TranslationInsertUtil.invokeTranslation((XmlFile) xmlFile, "foobar", "value"); }), null, null); String text = xmlFile.getText(); assertTrue(text.contains("<unit id=\"2\">")); assertTrue(text.contains("<source>foobar</source>")); assertTrue(text.contains("<target>value</target>")); }
public void testInsertTranslationForXlf20() { PsiFile xmlFile = PsiFileFactory.getInstance(getProject()).createFileFromText("foo.xml", XmlFileType.INSTANCE, "" + "<?xml version=\"1.0\"?>\n" + "<xliff xmlns=\"urn:oasis:names:tc:xliff:document:2.0\"\n" + " version=\"2.0\" srcLang=\"en-US\" trgLang=\"ja-JP\">\n" + " <file id=\"f1\" original=\"Graphic Example.psd\">\n" + " <skeleton href=\"Graphic Example.psd.skl\"/>\n" + " <group id=\"1\">\n" + " <unit id=\"1\">\n" + " <segment>\n" + " <source>foo</source>\n" + " </segment>\n" + " </unit>\n" + " <unit id=\"foobar\">\n" + " <segment>\n" + " <source>foo</source>\n" + " </segment>\n" + " </unit>\n" + " </group>\n" + " </file>\n" + "</xliff>" ); CommandProcessor.getInstance().executeCommand(getProject(), () -> ApplicationManager.getApplication().runWriteAction(() -> { TranslationInsertUtil.invokeTranslation((XmlFile) xmlFile, "foobar", "value"); }), null, null); String text = xmlFile.getText(); assertTrue(text.contains("<unit id=\"2\">")); assertTrue(text.contains("<source>foobar</source>")); assertTrue(text.contains("<target>value</target>")); }