|
|
@@ -0,0 +1,33 @@
|
|
|
+// Copyright 2013 Gary Burd. All rights reserved.
|
|
|
+// Use of this source code is governed by a BSD-style
|
|
|
+// license that can be found in the LICENSE file.
|
|
|
+
|
|
|
+package websocket
|
|
|
+
|
|
|
+import (
|
|
|
+ "net/http"
|
|
|
+ "reflect"
|
|
|
+ "testing"
|
|
|
+)
|
|
|
+
|
|
|
+var subprotocolTests = []struct {
|
|
|
+ h string
|
|
|
+ protocols []string
|
|
|
+}{
|
|
|
+ {"", nil},
|
|
|
+ {"foo", []string{"foo"}},
|
|
|
+ {"foo,bar", []string{"foo", "bar"}},
|
|
|
+ {"foo, bar", []string{"foo", "bar"}},
|
|
|
+ {" foo, bar", []string{"foo", "bar"}},
|
|
|
+ {" foo, bar ", []string{"foo", "bar"}},
|
|
|
+}
|
|
|
+
|
|
|
+func TestSubprotocols(t *testing.T) {
|
|
|
+ for _, st := range subprotocolTests {
|
|
|
+ r := http.Request{Header: http.Header{"Sec-Websocket-Protocol": {st.h}}}
|
|
|
+ protocols := Subprotocols(&r)
|
|
|
+ if !reflect.DeepEqual(st.protocols, protocols) {
|
|
|
+ t.Errorf("SubProtocols(%q) returned %#v, want %#v", st.h, protocols, st.protocols)
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|