diff options
author | Ian Lance Taylor <iant@golang.org> | 2020-07-27 22:27:54 -0700 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2020-08-01 11:21:40 -0700 |
commit | f75af8c1464e948b5e166cf5ab09ebf0d82fc253 (patch) | |
tree | 3ba3299859b504bdeb477727471216bd094a0191 /libgo/go/mime | |
parent | 75a23e59031fe673fc3b2e60fd1fe5f4c70ecb85 (diff) | |
download | gcc-f75af8c1464e948b5e166cf5ab09ebf0d82fc253.zip gcc-f75af8c1464e948b5e166cf5ab09ebf0d82fc253.tar.gz gcc-f75af8c1464e948b5e166cf5ab09ebf0d82fc253.tar.bz2 |
libgo: update to go1.15rc1
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/245157
Diffstat (limited to 'libgo/go/mime')
-rw-r--r-- | libgo/go/mime/type.go | 8 | ||||
-rw-r--r-- | libgo/go/mime/type_test.go | 27 |
2 files changed, 33 insertions, 2 deletions
diff --git a/libgo/go/mime/type.go b/libgo/go/mime/type.go index aa05077..6d2b89e 100644 --- a/libgo/go/mime/type.go +++ b/libgo/go/mime/type.go @@ -7,6 +7,7 @@ package mime import ( "fmt" + "sort" "strings" "sync" ) @@ -49,7 +50,7 @@ func setMimeTypes(lowerExt, mixExt map[string]string) { panic(err) } var exts []string - if ei, ok := extensions.Load(k); ok { + if ei, ok := extensions.Load(justType); ok { exts = ei.([]string) } extensions.Store(justType, append(exts, k)) @@ -64,6 +65,7 @@ var builtinTypesLower = map[string]string{ ".jpeg": "image/jpeg", ".jpg": "image/jpeg", ".js": "text/javascript; charset=utf-8", + ".json": "application/json", ".mjs": "text/javascript; charset=utf-8", ".pdf": "application/pdf", ".png": "image/png", @@ -151,7 +153,9 @@ func ExtensionsByType(typ string) ([]string, error) { if !ok { return nil, nil } - return append([]string{}, s.([]string)...), nil + ret := append([]string(nil), s.([]string)...) + sort.Strings(ret) + return ret, nil } // AddExtensionType sets the MIME type associated with diff --git a/libgo/go/mime/type_test.go b/libgo/go/mime/type_test.go index de5c700..5e4d25c 100644 --- a/libgo/go/mime/type_test.go +++ b/libgo/go/mime/type_test.go @@ -189,3 +189,30 @@ func BenchmarkExtensionsByType(b *testing.B) { }) } } + +func TestExtensionsByType2(t *testing.T) { + cleanup := setMimeInit(func() { + clearMimeTypes() + // Initialize built-in types like in type.go before osInitMime. + setMimeTypes(builtinTypesLower, builtinTypesLower) + }) + defer cleanup() + + tests := []struct { + typ string + want []string + }{ + {typ: "image/jpeg", want: []string{".jpeg", ".jpg"}}, + } + + for _, tt := range tests { + got, err := ExtensionsByType(tt.typ) + if err != nil { + t.Errorf("ExtensionsByType(%q): %v", tt.typ, err) + continue + } + if !reflect.DeepEqual(got, tt.want) { + t.Errorf("ExtensionsByType(%q) = %q; want %q", tt.typ, got, tt.want) + } + } +} |