package source import ( "testing" ) type data struct { input, want string } func TestImportPrefix(t *testing.T) { var tdata = []data{ {"package foo", "package foo"}, {"package foo\n", "package foo\n"}, {"package foo\n\nfunc f(){}\n", "package foo\n"}, {"package foo\n\nimport \"fmt\"\n", "package foo\n\nimport \"fmt\""}, {"package foo\nimport (\n\"fmt\"\n)\n", "package foo\nimport (\n\"fmt\"\n)"}, {"\n\n\npackage foo\n", "\n\n\npackage foo\n"}, {"// hi \n\npackage foo //xx\nfunc _(){}\n", "// hi \n\npackage foo //xx\n"}, {"package foo //hi\n", "package foo //hi\n"}, {"//hi\npackage foo\n//a\n\n//b\n", "//hi\npackage foo\n//a\n\n//b\n"}, {"package a\n\nimport (\n \"fmt\"\n)\n//hi\n", "package a\n\nimport (\n \"fmt\"\n)\n//hi\n"}, } for i, x := range tdata { got := importPrefix([]byte(x.input)) if got != x.want { t.Errorf("%d: got\n%q, wanted\n%q for %q", i, got, x.want, x.input) } } }