public void testAnonymousStructField() { myFixture.configureByText("a.go", TYPE + "var baz = []*WaitGroup{{<caret>}}"); myFixture.completeBasic(); myFixture.assertPreferredCompletionItems(0, "counter", "sema", "waiters"); }
protected void doCheckResult(@NotNull String before, @NotNull String after, @NotNull String selectItem) { myFixture.configureByText(getDefaultFileName(), before); failOnFileLoading(); myFixture.completeBasic(); selectLookupItem(selectItem); myFixture.checkResult(after); }
private void doTestExcluded(@NotNull String initial, @NotNull String after, String... excludedPaths) { GoExcludedPathsSettings.getInstance(getProject()).setExcludedPackages(excludedPaths); myFixture.configureByText("a.go", initial); myFixture.completeBasic(); myFixture.checkResult(after); }
public void testImportedFunctionsPriority() { myFixture.configureByText("a.go", "package main; \n" + "import `io`\n" + "func test(){ReadA<caret>}"); failOnFileLoading(); myFixture.completeBasic(); myFixture.assertPreferredCompletionItems(0, "io.ReadAtLeast", "io.ReaderAt", "idea_io.ReadAtLeastCustom", "idea_io.ReaderAtCustom"); }
public void testCompleteFromTestsDefinedInCurrentPackage() { myFixture.addFileToProject("my_test.go", "package mytest; func MyFunction() {}"); myFixture.configureByText("current_test.go", "package mytest; func TestSomething() { MyFunc<caret> }"); myFixture.completeBasic(); myFixture.checkResult("package mytest; func TestSomething() { MyFunction() }"); }
public void testDoNotImportOwnPathFromNonTestPackage() throws IOException { PsiFile testFile = myFixture.addFileToProject("fuzz/fuzy_test.go", "package fuzy; import \"<caret>\""); myFixture.configureFromExistingVirtualFile(testFile.getVirtualFile()); myFixture.completeBasic(); List<String> strings = myFixture.getLookupElementStrings(); assertTrue(strings != null && !strings.contains("fuzz")); }
public void testCompleteTestBenchmarkExamplesFromNonTestFiles() throws IOException { myFixture.addFileToProject("pack/pack.go", "package pack; func TestFoo() {} func BenchmarkFoo() {} func ExampleFoo() {}"); myFixture.configureByText("my_test.go", "package a; func main() { _ = Foo<caret>"); myFixture.completeBasic(); //noinspection ConstantConditions assertContainsElements(myFixture.getLookupElementStrings(), "pack.TestFoo", "pack.BenchmarkFoo", "pack.ExampleFoo"); }
public void testDoNotCompleteSymbolsFromShadowedPackages() { myFixture.addFileToProject("foo/foo.go", "package foo; func ShadowedFunction() {}"); myFixture.addFileToProject("vendor/foo/foo.go", "package bar; func ShadowedFunction() {}"); myFixture.configureByText("a.go", "package src; func _() { ShadowF<caret> }"); myFixture.completeBasic(); //noinspection ConstantConditions assertSameElements(myFixture.getLookupElementStrings(), "bar.ShadowedFunction"); }
public void testDoNotHidePopupOnSlash() { myFixture.addFileToProject("package1/pack/test.go", "package foo"); myFixture.addFileToProject("package2/pack/test.go", "package bar"); myFixture.configureByText("test.go", "package foo; import `<caret>`"); myFixture.completeBasic(); myFixture.type("package1/\n"); myFixture.checkResult("package foo; import `package1/pack<caret>`"); }
public void testDoNotCompletePackagesShadowedBySdkDirectories() { myFixture.addFileToProject("fmt/subdir/fmt.go", "package subdir; func Println() {}"); myFixture.addFileToProject("fmt/fmt.go", "package shadowed; func Println() {}"); myFixture.configureByText("a.go", "package src; import `fmt<caret>`"); myFixture.completeBasic(); //noinspection ConstantConditions assertSameElements(myFixture.getLookupElementStrings(), "fmt", "fmt/subdir"); }
public void testNoFieldNamesInStructLiteralWithValueInitializers() { String source = "package test; " + "type A struct { field_in_a string }; " + "type B struct { A; field_in_b string }; " + "func Test() B { a := A{}; s := \"\"; return B{ A{}, <caret>}; }"; myFixture.configureByText("test.go", source); myFixture.completeBasic(); List<String> variants = myFixture.getLookupElementStrings(); assertNotNull(variants); assertContainsElements(variants, "s"); assertDoesntContain(variants, "field_in_b"); }
public void testDoNotCompleteTestFunctions() throws IOException { myFixture.addFileToProject("pack/pack_test.go", "package pack; func TestFoo() {}"); myFixture.configureByText("my_test.go", "package a; func main() { _ = TestF<caret>"); myFixture.completeBasic(); assertNull(myFixture.getLookup()); myFixture.checkResult("package a; func main() { _ = TestF<caret>"); }
public void testImportOwnPathFromTestFile() throws IOException { PsiFile testFile = myFixture.addFileToProject("fuzz/fuzy_test.go", "package fuzy_test; import \"<caret>\""); myFixture.configureFromExistingVirtualFile(testFile.getVirtualFile()); myFixture.completeBasic(); //noinspection ConstantConditions assertContainsElements(myFixture.getLookupElementStrings(), "fuzz"); }
public void testAutoImportOwnImportPathFromTest() throws IOException { myFixture.addFileToProject("pack/a.go", "package myPack; func Func() {}"); PsiFile testFile = myFixture.addFileToProject("pack/a_test.go", "package myPack_test; func TestFunc() { myPack.Fun<caret> }"); myFixture.configureFromExistingVirtualFile(testFile.getVirtualFile()); myFixture.completeBasic(); myFixture.checkResult("package myPack_test;\n\nimport \"pack\"\n\nfunc TestFunc() { myPack.Func() }"); }
public void testDoNotAutoImportWithTheSameImportPath() throws IOException { myFixture.addFileToProject("pack1/file2.go", "package pack1; func MyFunctionFromSamePath() {}"); myFixture.addFileToProject("pack2/file2.go", "package pack1; func MyFunctionFromOtherPath() {}"); PsiFile file = myFixture.addFileToProject("pack1/file1.go", "package pack1; func test() { pack1.MyFunc<caret> }"); myFixture.configureFromExistingVirtualFile(file.getVirtualFile()); myFixture.completeBasic(); myFixture.checkResult("package pack1;\n\nimport \"pack2\"\n\nfunc test() { pack1.MyFunctionFromOtherPath() }"); }
public void testPackageNamesInEmptyDirectory() { PsiFile file = myFixture.addFileToProject("my-directory-name/test.go", "package m<caret>"); myFixture.configureFromExistingVirtualFile(file.getVirtualFile()); myFixture.completeBasic(); List<String> strings = myFixture.getLookupElementStrings(); assertNotNull(strings); assertSameElements(strings, "my_directory_name", "main"); }
public void testDoNotAutoImportDifferentPackageInSamePathFromTest() throws IOException { String text = "package foo_test; func TestFunc() { bar.Fun<caret> }"; myFixture.addFileToProject("pack/a.go", "package bar; func Func() {}"); PsiFile file = myFixture.addFileToProject("pack/a_test.go", text); myFixture.configureFromExistingVirtualFile(file.getVirtualFile()); myFixture.completeBasic(); assertNull(myFixture.getLookup()); myFixture.checkResult(text); }
public void testDoNotCompleteFunctionsFromPackagesShadowedBySdkDirectories() { myFixture.addFileToProject("fmt/subdir/fmt.go", "package subdir; func Println() {}"); myFixture.addFileToProject("fmt/fmt.go", "package shadowed; func Println() {}"); myFixture.configureByText("a.go", "package src; func _() { Printl<caret> }"); myFixture.completeBasic(); List<String> elementStrings = myFixture.getLookupElementStrings(); assertNotNull(elementStrings); assertContainsElements(elementStrings, "subdir.Println"); assertDoesntContain(elementStrings, "shadowed.Println"); }
public void testImportsPriority() { myFixture.addFileToProject("package/long/but/similar/path/test.go", "package pack"); myFixture.addFileToProject("package/very/long/path/test.go", "package pack"); myFixture.addFileToProject("package/middle/path/test.go", "package pack"); myFixture.addFileToProject("package/short/test.go", "package pack"); PsiFile testFile = myFixture.addFileToProject("package/long/but/similar/test.go", "package pack; import `package/<caret>`"); myFixture.configureFromExistingVirtualFile(testFile.getVirtualFile()); myFixture.completeBasic(); myFixture.assertPreferredCompletionItems(0, "package/long/but/similar/path", "package/short", "package/middle/path", "package/very/long/path"); }
public void testPointerSpecType() { myFixture.configureByText("foo.go", "package main; type a struct{};" + "func main() {q1, q2:=&a{};q<caret>}"); myFixture.completeBasic(); LookupElement first = ArrayUtil.getFirstElement(myFixture.getLookupElements()); assertNotNull(first); LookupElementPresentation presentation = new LookupElementPresentation(); first.renderElement(presentation); assertEquals("*main.a", presentation.getTypeText()); }