| // Copyright 2013 The Gorilla WebSocket Authors. 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) |
| } |
| } |
| } |