| 455 | } |
| 456 | |
| 457 | func TestBadMethod(t *testing.T) { |
| 458 | s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { |
| 459 | ws, err := cstUpgrader.Upgrade(w, r, nil) |
| 460 | if err == nil { |
| 461 | t.Errorf("handshake succeeded, expect fail") |
| 462 | ws.Close() |
| 463 | } |
| 464 | })) |
| 465 | defer s.Close() |
| 466 | |
| 467 | req, err := http.NewRequest(http.MethodPost, s.URL, strings.NewReader("")) |
| 468 | if err != nil { |
| 469 | t.Fatalf("NewRequest returned error %v", err) |
| 470 | } |
| 471 | req.Header.Set("Connection", "upgrade") |
| 472 | req.Header.Set("Upgrade", "websocket") |
| 473 | req.Header.Set("Sec-Websocket-Version", "13") |
| 474 | |
| 475 | resp, err := http.DefaultClient.Do(req) |
| 476 | if err != nil { |
| 477 | t.Fatalf("Do returned error %v", err) |
| 478 | } |
| 479 | resp.Body.Close() |
| 480 | if resp.StatusCode != http.StatusMethodNotAllowed { |
| 481 | t.Errorf("Status = %d, want %d", resp.StatusCode, http.StatusMethodNotAllowed) |
| 482 | } |
| 483 | } |
| 484 | |
| 485 | func TestDialExtraTokensInRespHeaders(t *testing.T) { |
| 486 | s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { |