aboutsummaryrefslogtreecommitdiff
path: root/libgo/go/mime
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2020-07-27 22:27:54 -0700
committerIan Lance Taylor <iant@golang.org>2020-08-01 11:21:40 -0700
commitf75af8c1464e948b5e166cf5ab09ebf0d82fc253 (patch)
tree3ba3299859b504bdeb477727471216bd094a0191 /libgo/go/mime
parent75a23e59031fe673fc3b2e60fd1fe5f4c70ecb85 (diff)
downloadgcc-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.go8
-rw-r--r--libgo/go/mime/type_test.go27
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)
+ }
+ }
+}