public void testMultiplePackages() { myFixture.addFileToProject("a.go", "package a"); myFixture.configureByText("b.go", "<error>package b</error>"); myFixture.checkHighlighting(); }
public void testNoLocalResolveForTest() { myFixture.configureByText("a.go", "package i; type P struct { v1 int }"); myFixture .configureByText("b_test.go", "package i_test; import ( \".\" ); func <warning>f</warning>() { print(i.P{}.<error>v1</error>) }"); myFixture.checkHighlighting(); }
public void testNoDuplicateMethodsInOnePackage() { myFixture.configureByText("a.go", "package main; type Foo int; func (f Foo) bar() {}"); myFixture.configureByText("b.go", "package main; type Baz int; func (f Baz) bar() {}"); myFixture.checkHighlighting(); }
public void testImportMainPackageInTest() { myFixture.addFileToProject("foo/main/main.go", "package main"); myFixture.configureByText("a_test.go", "package a\nimport `foo/main`"); myFixture.checkHighlighting(); }
public void testTestPackage() { myFixture.addFileToProject("a.go", "package a"); myFixture.configureByText("a_test.go", "package a_test"); myFixture.checkHighlighting(); }
public void testDoNotConsiderImportFromTestPackageAsSelfImport() { PsiFile file = myFixture.addFileToProject("path/a_test.go", "package pack_test; import <caret>\"path\""); myFixture.configureFromExistingVirtualFile(file.getVirtualFile()); myFixture.checkHighlighting(); }
public void testVendoringSelfImport() { PsiFile file = myFixture.addFileToProject("vendor/vendorPackage/a.go", "package vendorPackage;" + "import <error descr=\"Self import is not allowed\"><caret>\"vendorPackage\"</error>"); myFixture.configureFromExistingVirtualFile(file.getVirtualFile()); myFixture.checkHighlighting(); } }
public void testDuplicateFunctionsInOnePackage() { myFixture.configureByText("a.go", "package foo; func init() {bar()}; func bar() {};"); myFixture.configureByText("b.go", "//+build appengine\n\npackage foo; func init() {buzz()}; func buzz() {}"); myFixture.configureByText("c.go", "package foo; func init() {bar(); buzz();}; func <error descr=\"Duplicate function name\">bar</error>() {}; func buzz() {}"); myFixture.checkHighlighting(); }
public void testDoNotResolveReceiverTypeToFunction() { myFixture.addFileToProject("pack1/a.go", "package foo; func functionInCurrentPackage() {}"); PsiFile file = myFixture.addFileToProject("pack1/b.go", "package foo; func (<error descr=\"Unresolved type 'functionInCurrentPackage'\">functionInCurrentPackage</error>) method() {}"); myFixture.configureFromExistingVirtualFile(file.getVirtualFile()); myFixture.checkHighlighting(); }
public void testImportWithSlashAtTheEnd() { myFixture.addFileToProject("a/pack/pack.go", "package pack; func Foo() {}"); PsiFile file = myFixture.addFileToProject("pack2/pack2.go", "package main; import \"a/pack/<error descr=\"Cannot resolve file ''\"></error>\"; import \"../a/pack/\"; func main() { pack.Foo() }"); myFixture.configureFromExistingVirtualFile(file.getVirtualFile()); myFixture.checkHighlighting(); }
public void testPackageWithTestPrefixNotInsideTestFile() { myFixture.addFileToProject("pack1/pack1.go", "package pack1_test; func Test() {}"); PsiFile file = myFixture.addFileToProject("pack2/pack2_test.go", "package pack2_test; import `pack1`; import \"testing\"; func TestTest(*testing.T) {pack1_test.Test()}"); myFixture.configureFromExistingVirtualFile(file.getVirtualFile()); myFixture.checkHighlighting(); }
public void testWithDisabledVendoring() { disableVendoring(); myFixture.addFileToProject("pack/vendor/foo/a.go", "package foo"); myFixture.addFileToProject("vendor/foo/a.go", "package foo"); myFixture.configureByText("a.go", "package pack\n" + "import _ `pack/vendor/unresolved`\n" + "import _ `pack/vendor/foo/a`\n" + "import _ `vendor/foo/a`"); myFixture.checkHighlighting(); }
public void testMethodOnNonLocalTypeInTheSameDirectory() { myFixture.addFileToProject("method/foo.go", "package a; type H struct {}"); PsiFile psiFile = myFixture.addFileToProject("method/foo_test.go", "package a_test;\n" + "func (<error descr=\"Unresolved type 'H'\">H</error>) Hello() {}"); myFixture.configureFromExistingVirtualFile(psiFile.getVirtualFile()); myFixture.checkHighlighting(); }
public void testDuplicatePackageImport() { myFixture.addFileToProject("pack/pack1.go", "package pack; func Foo() {}"); PsiFile file = myFixture.addFileToProject("pack3/pack3.go", "package main; import \"pack\"; import <error>\"pack\"</error>; func main() { pack.Foo() }"); myFixture.configureFromExistingVirtualFile(file.getVirtualFile()); myFixture.checkHighlighting(); }
@Override protected void doTest() { PsiFile file = myFixture.configureByText("a.go", "package main\n func foo(i interface{}, j interface{}){}\n" + vars + "\n func _(){\n fo<caret>o(" + left + ", " + right + ")\n}"); myFixture.checkHighlighting(); GoCallExpr call = PsiTreeUtil.getParentOfType(file.findElementAt(myFixture.getCaretOffset()), GoCallExpr.class); assert call != null; List<GoExpression> expressions = call.getArgumentList().getExpressionList(); assertTrue(left + " should " + (ok ? "" : "not ") + "be identical " + right, ok == GoExpressionUtil.identical(expressions.get(0), expressions.get(1))); } }
public void testInternalPackageOn1_4_SDK() { GoSdkService.setTestingSdkVersion("1.4", getTestRootDisposable()); myFixture.addFileToProject("internal/internal.go", "package internalPackage; func InternalFunction() {}"); myFixture.addFileToProject("sub/internal/internal.go", "package subInternalPackage; func InternalFunction() {}"); myFixture.configureByText("a.go", "package src\n" + "import (\n" + " `internal`\n" + " `sub/internal`\n" + " <error descr=\"Use of internal package is not allowed\">`net/internal`</error>\n" + ")"); myFixture.checkHighlighting(); }
public void testImportUnreachableVendoredPackage() { myFixture.addFileToProject("pack/vendor/foo/a.go", "package foo"); myFixture.configureByText("a.go", "package bar\n" + "import _ `pack/vendor/unresolved`\n" + "import <error descr=\"Use of vendored package is not allowed\">_ `pack/ve<caret>ndor/foo`</error>"); myFixture.checkHighlighting(); assertContainsElements(getIntentionNames(), "Disable vendoring experiment support in module 'light_idea_test_case'", "Delete import"); assertDoesntContain(getIntentionNames(), "Replace with `foo`"); }
public void testReplaceImportWithVendoredPath() { myFixture.addFileToProject("vendor/foo/a.go", "package foo"); myFixture.configureByText("a.go", "package pack\n" + "import _ `pack/vendor/unresolved`\n" + "import <error descr=\"Must be imported as 'foo'\">_ `vend<caret>or/foo`</error>"); myFixture.checkHighlighting(); assertContainsElements(getIntentionNames(), "Disable vendoring experiment support in module 'light_idea_test_case'", "Delete import"); myFixture.launchAction(myFixture.findSingleIntention("Replace with 'foo'")); myFixture.checkResult("package pack\n" + "import _ `pack/vendor/unresolved`\n" + "import _ `foo`"); }
public void testIgnoredBuildTag() { myFixture.addFileToProject("a/pack1.go", "package a; func Foo() {}"); myFixture.addFileToProject("a/pack2.go", "// +build ignored\n\npackage main"); myFixture.addFileToProject("b/pack1.go", "package b; func Bar() {}"); myFixture.addFileToProject("b/pack2.go", "// +build ignored\n\npackage main"); // There should be no errors: package main exists in the a/ and b/ // directories, but it is not imported as it has a non-matching build tag. // For more details see https://github.com/go-lang-plugin-org/go-lang-idea-plugin/issues/1858#issuecomment-139794391. PsiFile file = myFixture.addFileToProject("c/pack1.go", "package main; import \"a\"; import \"b\"; func main() { a.Foo(); b.Bar(); }"); myFixture.configureFromExistingVirtualFile(file.getVirtualFile()); myFixture.checkHighlighting(); }
public void testImportUnderscore() { myFixture.addFileToProject("a/pack/pack1.go", "package pack; func Foo() {}"); myFixture.addFileToProject("b/pack/pack2.go", "package pack"); myFixture.addFileToProject("c/pack/pack3.go", "package whatever; func Bar() {}"); myFixture.addFileToProject("d/pack/pack4.go", "package another; func Baz() {}"); PsiFile file = myFixture.addFileToProject("pack3/pack3.go", "package main; import _ \"a/pack\"; import _ \"b/pack\"; import . \"c/pack\"; import . \"d/pack\"; func main() { Bar(); Baz() }"); myFixture.configureFromExistingVirtualFile(file.getVirtualFile()); myFixture.checkHighlighting(); } }