private void doTest() { String testName = getTestName(true); myFixture.configureByFile(testName + "_test.go"); myFixture.checkHighlighting(); applySingleQuickFix("Fix signature"); myFixture.checkResultByFile(testName + "_test-after.go"); }
public void testPackage_test() { PsiFile file = myFixture.addFileToProject("import/path/package_test.go", "package ma<caret>in; import `gopkg.in/check.v1`"); myFixture.configureFromExistingVirtualFile(file.getVirtualFile()); doTestProducedConfigurations(myFixture.getFile().findElementAt(myFixture.getCaretOffset())); }
public void testImportVendoringPackageWithDisabledVendoring() { disableVendoring(); myFixture.addFileToProject("vendor/a/b/c.go", "package b"); myFixture.configureByText("a.go", "package a; func a() { b<caret>.Println() }"); myFixture.launchAction(myFixture.findSingleIntention("Import vendor/a/b?")); myFixture.checkResult("package a;\n\nimport \"vendor/a/b\"\n\nfunc a() { b<caret>.Println() }"); }
public void testMultiplePackages() { myFixture.addFileToProject("a.go", "package a"); myFixture.configureByText("b.go", "<error>package b</error>"); myFixture.checkHighlighting(); }
public void testXmlInTagLiteral() { myFixture.configureByText("a.go", "package main; type foo struct { a int `<caret>` }"); myFixture.type("xml\t"); myFixture.checkResult("package main; type foo struct { a int `xml:\"a\"` }"); }
public void testInnerTypesFromOtherPackage() { myFixture.configureByText("main.go", "package main; import \"io\"; type Outer struct { *io.LimitedReader };" + "func main() { _ = &Outer{LimitedReader: &io.LimitedReader{}, } }"); myFixture.checkHighlighting(); }
protected void assertOptions(@NotNull String code, String... expectedOptions) { myFixture.configureByText("a.go", normalizeCode(code)); List<String> actualOptions = ContainerUtil.newArrayList(); UnwrapHandler h = new UnwrapHandler() { @Override protected void selectOption(List<AnAction> options, Editor editor, PsiFile file) { actualOptions.addAll(options.stream().map(each -> each.getTemplatePresentation().getText()).collect(Collectors.toList())); } }; h.invoke(getProject(), myFixture.getEditor(), myFixture.getFile()); assertOrderedEquals(actualOptions, expectedOptions); } }
public void testUndo() { DaemonCodeAnalyzerSettings.getInstance().setImportHintEnabled(true); updateSettings(true); myFixture.configureByText("a.go", "package main\n\nfunc main() { <caret> }"); myFixture.type("fmt."); myFixture.doHighlighting(); myFixture.doHighlighting(); myFixture.checkResult("package main\n\nimport \"fmt\"\n\nfunc main() { fmt. }"); FileEditor editor = FileEditorManager.getInstance(myFixture.getProject()).getSelectedEditor(myFixture.getFile().getVirtualFile()); UndoManager.getInstance(myFixture.getProject()).undo(editor); myFixture.checkResult("package main\n\nfunc main() { <caret> }"); }
public void testAddVarSpec() { myFixture.configureByText("a.go", "package main\n\nvar (\n" + " fo<caret>o int\n" + ")"); GoVarDeclaration declaration = PsiTreeUtil.getNonStrictParentOfType(myFixture.getElementAtCaret(), GoVarDeclaration.class); assertNotNull(declaration); declaration.addSpec("bar", "string", "`1`", null); myFixture.checkResult("package main\n\nvar (\n foo int\nbar string = `1`\n)"); }
private void doTest(boolean replaceAll) { String testName = getTestName(true); myFixture.configureByFile(testName + ".go"); GoIntroduceVariableBase.performAction(new GoIntroduceOperation(getProject(), myFixture.getEditor(), myFixture.getFile(), replaceAll)); myFixture.checkResultByFile(testName + "-after.go"); }
private void doAddImportTest() { myFixture.configureByFile(getTestName(true) + ".go"); WriteCommandAction.runWriteCommandAction(myFixture.getProject(), () -> { ((GoFile)myFixture.getFile()).addImport("package/path", null); }); myFixture.checkResultByFile(getTestName(true) + "_after.go"); }
private void checkMatchFile(@NotNull GoBuildMatcher matcher, boolean expected, @NotNull String fileName, @NotNull String text) { myFixture.configureByText(fileName, text + "\n\n package main\n\n func main() {}"); assertEquals(fileName + ":" + text, expected, matcher.matchFile(myFixture.getFile())); } }
@Override protected void setUp() throws Exception { super.setUp(); myFixture.enableInspections(GoUnusedImportInspection.class); myFixture.enableInspections(GoUnresolvedReferenceInspection.class); myFixture.enableInspections(GoUnusedGlobalVariableInspection.class); myFixture.enableInspections(GoUnusedVariableInspection.class); myFixture.enableInspections(GoMultiplePackagesInspection.class); }
protected void assertUnwrapped(@NotNull String codeBefore, @NotNull String codeAfter, int option) { myFixture.configureByText("a.go", normalizeCode(codeBefore)); UnwrapHandler h = new UnwrapHandler() { @Override protected void selectOption(List<AnAction> options, Editor editor, PsiFile file) { if (options.isEmpty()) return; options.get(option).actionPerformed(null); } }; h.invoke(getProject(), myFixture.getEditor(), myFixture.getFile()); myFixture.checkResult(normalizeCode(codeAfter)); }
private void doTest() { PsiFile file = myFixture.configureByFile(getTestName(true) + ".go"); resolveAllReferences(file); myFixture.checkHighlighting(); ApplicationManager.getApplication().runWriteAction( () -> OptimizeImportsAction.actionPerformedImpl(DataManager.getInstance().getDataContext(myFixture.getEditor().getContentComponent()))); myFixture.checkResultByFile(getTestName(true) + "_after.go"); }
private void doTest(boolean down) { String testName = getTestName(true); myFixture.configureByFile(testName + ".go"); if (down) { myFixture.performEditorAction(IdeActions.ACTION_MOVE_STATEMENT_DOWN_ACTION); myFixture.checkResultByFile(testName + "-afterDown.go", true); } else { myFixture.performEditorAction(IdeActions.ACTION_MOVE_STATEMENT_UP_ACTION); myFixture.checkResultByFile(testName + "-afterUp.go", true); } }
public void testSdkTestDataDirectory() { myFixture.configureByText("a.go", "package a; import `doc/testdata`; func _() { println(pkg.ExportedConst<caret>ant) } "); PsiReference reference = myFixture.getFile().findReferenceAt(myFixture.getCaretOffset()); PsiElement resolve = reference != null ? reference.resolve() : null; assertNotNull(resolve); assertEquals("pkg.go", resolve.getContainingFile().getName()); assertEmpty(myFixture.findUsages(resolve)); }
private void doTest(@NotNull String expressionText, @NotNull ReadWriteAccessDetector.Access expectedAccess) { myFixture.configureByText("a.go", "package main; func _() {\n" + expressionText + "\n}"); PsiElement element = myFixture.getFile().findElementAt(myFixture.getCaretOffset()); GoReferenceExpression expression = PsiTreeUtil.getNonStrictParentOfType(element, GoReferenceExpression.class); assertNotNull(expression); assertEquals(expectedAccess, expression.getReadWriteAccess()); } }
public void testMultiplePackagesQuickFix() { myFixture.configureByFile("c_test.go"); myFixture.configureByFile("b.go"); myFixture.configureByFile("b_test.go"); myFixture.configureByFile("a.go"); GoMultiplePackagesQuickFix.setTestingPackageName("a", getTestRootDisposable()); applySingleQuickFix("Rename packages"); myFixture.checkResultByFile("a.go", "a-after.go", true); myFixture.checkResultByFile("b.go", "b-after.go", true); myFixture.checkResultByFile("b_test.go", "b_test-after.go", true); myFixture.checkResultByFile("c_test.go", "c_test-after.go", true); } }
private void configure(boolean checkHighlighting, String testName) { if (checkHighlighting) { myFixture.testHighlighting(testName + ".go"); } else { myFixture.configureByFile(testName + ".go"); myFixture.doHighlighting(); } } }