@@ -6,6 +6,7 @@ package main
66
77import (
88 "encoding/json"
9+ "net/http"
910 "net/http/httptest"
1011 "net/url"
1112 "strings"
@@ -15,83 +16,102 @@ import (
1516func TestHandleFmt (t * testing.T ) {
1617 for _ , tt := range []struct {
1718 name string
19+ method string
1820 body string
1921 imports bool
2022 want string
2123 wantErr string
2224 }{
2325 {
24- name : "classic" ,
25- body : " package main\n func main( ) { }\n " ,
26- want : "package main\n \n func main() {}\n " ,
26+ name : "OPTIONS no-op" ,
27+ method : http .MethodOptions ,
28+ },
29+ {
30+ name : "classic" ,
31+ method : http .MethodPost ,
32+ body : " package main\n func main( ) { }\n " ,
33+ want : "package main\n \n func main() {}\n " ,
2734 },
2835 {
2936 name : "classic_goimports" ,
37+ method : http .MethodPost ,
3038 body : " package main\n var _ = fmt.Printf" ,
3139 imports : true ,
3240 want : "package main\n \n import \" fmt\" \n \n var _ = fmt.Printf\n " ,
3341 },
3442 {
35- name : "single_go_with_header" ,
36- body : "-- prog.go --\n package main" ,
37- want : "-- prog.go --\n package main\n " ,
43+ name : "single_go_with_header" ,
44+ method : http .MethodPost ,
45+ body : "-- prog.go --\n package main" ,
46+ want : "-- prog.go --\n package main\n " ,
3847 },
3948 {
40- name : "multi_go_with_header" ,
41- body : "-- prog.go --\n package main\n \n \n -- two.go --\n package main\n var X = 5" ,
42- want : "-- prog.go --\n package main\n -- two.go --\n package main\n \n var X = 5\n " ,
49+ name : "multi_go_with_header" ,
50+ method : http .MethodPost ,
51+ body : "-- prog.go --\n package main\n \n \n -- two.go --\n package main\n var X = 5" ,
52+ want : "-- prog.go --\n package main\n -- two.go --\n package main\n \n var X = 5\n " ,
4353 },
4454 {
45- name : "multi_go_without_header" ,
46- body : " package main\n \n \n -- two.go --\n package main\n var X = 5" ,
47- want : "package main\n -- two.go --\n package main\n \n var X = 5\n " ,
55+ name : "multi_go_without_header" ,
56+ method : http .MethodPost ,
57+ body : " package main\n \n \n -- two.go --\n package main\n var X = 5" ,
58+ want : "package main\n -- two.go --\n package main\n \n var X = 5\n " ,
4859 },
4960 {
50- name : "single_go.mod_with_header" ,
51- body : "-- go.mod --\n module \" foo\" " ,
52- want : "-- go.mod --\n module foo\n " ,
61+ name : "single_go.mod_with_header" ,
62+ method : http .MethodPost ,
63+ body : "-- go.mod --\n module \" foo\" " ,
64+ want : "-- go.mod --\n module foo\n " ,
5365 },
5466 {
55- name : "multi_go.mod_with_header" ,
56- body : "-- a/go.mod --\n module foo\n \n \n -- b/go.mod --\n module \" bar\" " ,
57- want : "-- a/go.mod --\n module foo\n -- b/go.mod --\n module bar\n " ,
67+ name : "multi_go.mod_with_header" ,
68+ method : http .MethodPost ,
69+ body : "-- a/go.mod --\n module foo\n \n \n -- b/go.mod --\n module \" bar\" " ,
70+ want : "-- a/go.mod --\n module foo\n -- b/go.mod --\n module bar\n " ,
5871 },
5972 {
60- name : "only_format_go_and_go.mod" ,
73+ name : "only_format_go_and_go.mod" ,
74+ method : http .MethodPost ,
6175 body : " package main \n \n \n " +
6276 "-- go.mod --\n module foo \n \n \n " +
6377 "-- plain.txt --\n plain text \n \n \n " ,
6478 want : "package main\n -- go.mod --\n module foo\n -- plain.txt --\n plain text \n \n \n " ,
6579 },
6680 {
6781 name : "error_gofmt" ,
82+ method : http .MethodPost ,
6883 body : "package 123\n " ,
6984 wantErr : "prog.go:1:9: expected 'IDENT', found 123" ,
7085 },
7186 {
7287 name : "error_gofmt_with_header" ,
88+ method : http .MethodPost ,
7389 body : "-- dir/one.go --\n package 123\n " ,
7490 wantErr : "dir/one.go:1:9: expected 'IDENT', found 123" ,
7591 },
7692 {
7793 name : "error_goimports" ,
94+ method : http .MethodPost ,
7895 body : "package 123\n " ,
7996 imports : true ,
8097 wantErr : "prog.go:1:9: expected 'IDENT', found 123" ,
8198 },
8299 {
83100 name : "error_goimports_with_header" ,
101+ method : http .MethodPost ,
84102 body : "-- dir/one.go --\n package 123\n " ,
85103 imports : true ,
86104 wantErr : "dir/one.go:1:9: expected 'IDENT', found 123" ,
87105 },
88106 {
89107 name : "error_go.mod" ,
108+ method : http .MethodPost ,
90109 body : "-- go.mod --\n 123\n " ,
91110 wantErr : "go.mod:1: unknown directive: 123" ,
92111 },
93112 {
94113 name : "error_go.mod_with_header" ,
114+ method : http .MethodPost ,
95115 body : "-- dir/go.mod --\n 123\n " ,
96116 wantErr : "dir/go.mod:1: unknown directive: 123" ,
97117 },
@@ -110,6 +130,10 @@ func TestHandleFmt(t *testing.T) {
110130 if resp .StatusCode != 200 {
111131 t .Fatalf ("code = %v" , resp .Status )
112132 }
133+ corsHeader := "Access-Control-Allow-Origin"
134+ if got , want := resp .Header .Get (corsHeader ), "*" ; got != want {
135+ t .Errorf ("Header %q: got %q; want %q" , corsHeader , got , want )
136+ }
113137 if ct := resp .Header .Get ("Content-Type" ); ct != "application/json" {
114138 t .Fatalf ("Content-Type = %q; want application/json" , ct )
115139 }
0 commit comments