import (
"fmt"
+ "sort"
"strings"
"sync"
)
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))
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
})
}
}
+
+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)
+ }
+ }
+}