private void failOnFileLoading() { ((PsiManagerImpl)myFixture.getPsiManager()).setAssertOnFileLoadingFilter(VirtualFileFilter.ALL, getTestRootDisposable()); } }
private void failOnFileLoading() { ((PsiManagerImpl)myFixture.getPsiManager()).setAssertOnFileLoadingFilter(VirtualFileFilter.ALL, getTestRootDisposable()); }
private void doTestInEmptyDirectory(@NotNull String directoryName, @NotNull String newFileName, @NotNull String expectedPackage, @NotNull String expectedPackageWithTestSuffix) { try { PsiDirectory dir = myFixture.getPsiManager().findDirectory(myFixture.getTempDirFixture().findOrCreateDir(directoryName)); assertNotNull(dir); doTest(dir, newFileName, expectedPackage, expectedPackageWithTestSuffix); } catch (IOException e) { throw new RuntimeException(e); } }
private void doDirectoryTest(@NotNull VirtualFile file) { VfsUtilCore.processFilesRecursively(file, new FilteringProcessor<>( virtualFile -> !virtualFile.isDirectory() && virtualFile.getName().endsWith(".go"), virtualFile -> { PsiFile goFile = myFixture.getPsiManager().findFile(virtualFile); assert goFile instanceof GoFile; processPsiFile((GoFile)goFile); return true; } )); doResolveTest(); } }
private void doTest() { myFixture.configureByFile(getTestName(true) + ".go"); Editor editor = myFixture.getEditor(); PsiFile file = myFixture.getFile(); PsiElement originalElement = file.findElementAt(editor.getCaretModel().getOffset()); assertNotNull(originalElement); PsiElement docElement = DocumentationManager.getInstance(getProject()).findTargetElement(editor, file); DocumentationProvider documentationProvider = DocumentationManager.getProviderFromElement(originalElement); String actualDoc = StringUtil.notNullize(documentationProvider.generateDoc(docElement, originalElement)); String quickNavigateInfo = documentationProvider.getQuickNavigateInfo(docElement, originalElement); actualDoc += "\n=====\n" + StringUtil.notNullize(quickNavigateInfo, "No navigation info"); List<String> urls = documentationProvider.getUrlFor(docElement, originalElement); actualDoc += "\n=====\n" + (urls != null ? StringUtil.join(urls, "\n") : "No urls"); String localUrl = GoDocumentationProvider.getLocalUrlToElement(docElement); actualDoc += "\n=====\n" + StringUtil.notNullize(localUrl, "No local urls"); assertSameLinesWithFile(getTestDataPath() + "/" + getTestName(true) + ".txt", actualDoc); if (localUrl != null) { PsiElement elementForLink = documentationProvider.getDocumentationElementForLink(myFixture.getPsiManager(), localUrl, originalElement); assertNotNull("Link '" + localUrl + "' wasn't resolved", elementForLink); assertEquals("Link was resolved to unexpected element.\nExpected: " + docElement.getText() + "\n" + "Actual: " + elementForLink.getText(), docElement, elementForLink); } } }
private void doMove(String[] checkedFiles, String movedFileSource, String moveTargetDir) { myFixture.setTestDataPath(getTestDataPath() + getTestName(true)); Set<String> filenames = Sets.newHashSet(checkedFiles); filenames.add(movedFileSource); myFixture.configureByFiles(filenames.toArray(new String[filenames.size()])); VirtualFile sourceVirtualFile = myFixture.findFileInTempDir(movedFileSource); Assert.assertNotNull(sourceVirtualFile); PsiFile sourceFile = myFixture.getPsiManager().findFile(sourceVirtualFile); moveFile(moveTargetDir, sourceFile); for (String filename : checkedFiles) { myFixture.checkResultByFile(filename, FileUtil.getNameWithoutExtension(filename) + "_after." + FileUtilRt.getExtension(filename), false); } myFixture.checkResultByFile(moveTargetDir + "/" + movedFileSource, moveTargetDir + "/" + FileUtil.getNameWithoutExtension(movedFileSource) + "_after." + FileUtilRt.getExtension(movedFileSource), false); }
@Test public void testInvokeDialog() throws IOException { ActionManager actionManager = ActionManager.getInstance(); final NewBashFileAction action = (NewBashFileAction) actionManager.getAction("Bash.NewBashScript"); VirtualFile directoryVirtualFile = myFixture.getTempDirFixture().findOrCreateDir(""); final PsiDirectory directory = myFixture.getPsiManager().findDirectory(directoryVirtualFile); try { action.invokeDialog(directory.getProject(), directory); Assert.fail("dialog wasn't invoked"); } catch (Throwable e) { //the dialog invocation is raised as an exception in test mode Assert.assertTrue(e.getMessage().contains("Create a new Bash file")); } } }
private void moveFile(String moveTargetDir, PsiFile sourceFile) { final VirtualFile dir = myFixture.findFileInTempDir(moveTargetDir); assert dir != null : "Directory " + moveTargetDir + " not found"; assert dir.isDirectory() : moveTargetDir + " is not a directory"; final PsiDirectory psiTargetDir = myFixture.getPsiManager().findDirectory(dir); new MoveFilesOrDirectoriesProcessor( myFixture.getProject(), new PsiElement[]{sourceFile}, psiTargetDir, false, false, null, null ).run(); PsiDocumentManager.getInstance(myFixture.getProject()).commitAllDocuments(); FileDocumentManager.getInstance().saveAllDocuments(); } }
@Test public void testNewFile() throws Exception { ActionManager actionManager = ActionManager.getInstance(); final NewBashFileAction action = (NewBashFileAction) actionManager.getAction("Bash.NewBashScript"); // @see https://devnet.jetbrains.com/message/5539349#5539349 VirtualFile directoryVirtualFile = myFixture.getTempDirFixture().findOrCreateDir(""); final PsiDirectory directory = myFixture.getPsiManager().findDirectory(directoryVirtualFile); Assert.assertEquals(BashStrings.message("newfile.command.name"), action.getCommandName()); Assert.assertEquals(BashStrings.message("newfile.menu.action.text"), action.getActionName(directory, "")); PsiElement result = ApplicationManager.getApplication().runWriteAction(new Computable<PsiElement>() { @Override public PsiElement compute() { try { PsiElement[] elements = action.create("bash_file", directory); return elements.length >= 1 ? elements[0] : null; //the firet element is the BashFile } catch (Exception e) { return null; } } }); assertNotNull("Expected a newly created bash file", result); assertTrue("Expected a newly created bash file", result instanceof BashFile); VirtualFile vFile = ((BashFile) result).getVirtualFile(); File ioFile = VfsUtilCore.virtualToIoFile(vFile); assertTrue("Expected that the new file is executable", ioFile.canExecute()); Assert.assertEquals("Expected default bash file template content", "#!/usr/bin/env bash", result.getText()); }