123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- // 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)
- }
- }
- }
- var isWebSocketUpgradeTests = []struct {
- ok bool
- h http.Header
- }{
- {false, http.Header{"Upgrade": {"websocket"}}},
- {false, http.Header{"Connection": {"upgrade"}}},
- {true, http.Header{"Connection": {"upgRade"}, "Upgrade": {"WebSocket"}}},
- }
- func TestIsWebSocketUpgrade(t *testing.T) {
- for _, tt := range isWebSocketUpgradeTests {
- ok := IsWebSocketUpgrade(&http.Request{Header: tt.h})
- if tt.ok != ok {
- t.Errorf("IsWebSocketUpgrade(%v) returned %v, want %v", tt.h, ok, tt.ok)
- }
- }
- }
- var checkSameOriginTests = []struct {
- ok bool
- r *http.Request
- }{
- {false, &http.Request{Host: "example.org", Header: map[string][]string{"Origin": []string{"https://other.org"}}}},
- {true, &http.Request{Host: "example.org", Header: map[string][]string{"Origin": []string{"https://example.org"}}}},
- {true, &http.Request{Host: "Example.org", Header: map[string][]string{"Origin": []string{"https://example.org"}}}},
- }
- func TestCheckSameOrigin(t *testing.T) {
- for _, tt := range checkSameOriginTests {
- ok := checkSameOrigin(tt.r)
- if tt.ok != ok {
- t.Errorf("checkSameOrigin(%+v) returned %v, want %v", tt.r, ok, tt.ok)
- }
- }
- }
|