From fbc21b197a0ad7e1ffdc2ef59ec48e7f9398162a Mon Sep 17 00:00:00 2001 From: Sdogruyol Date: Tue, 22 Dec 2015 20:51:27 +0200 Subject: [PATCH] Rename to Kemal::WebSocketHandler --- spec/kemal_ws_handler_spec.cr | 29 +++++++++++++++++++++++++---- src/kemal/dsl.cr | 2 +- src/kemal/websocket_handler.cr | 4 ++-- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/spec/kemal_ws_handler_spec.cr b/spec/kemal_ws_handler_spec.cr index 2058f42..876d39a 100644 --- a/spec/kemal_ws_handler_spec.cr +++ b/spec/kemal_ws_handler_spec.cr @@ -1,8 +1,8 @@ require "./spec_helper" -describe "Kemal::WebsocketHandler" do +describe "Kemal::WebSocketHandler" do it "doesn't match on wrong route" do - handler = Kemal::WebsocketHandler.new "/" { } + handler = Kemal::WebSocketHandler.new "/" { } headers = HTTP::Headers{ "Upgrade": "websocket", "Connection": "Upgrade", @@ -14,7 +14,7 @@ describe "Kemal::WebsocketHandler" do end it "matches on given route" do - handler = Kemal::WebsocketHandler.new "/" { } + handler = Kemal::WebSocketHandler.new "/" { } headers = HTTP::Headers{ "Upgrade": "websocket", "Connection": "Upgrade", @@ -35,7 +35,7 @@ describe "Kemal::WebsocketHandler" do "hello #{env.params["message"]}" end - ws_handler = Kemal::WebsocketHandler.new "/" { } + ws_handler = Kemal::WebSocketHandler.new "/" { } headers = HTTP::Headers{ "Upgrade": "websocket", "Connection": "Upgrade", @@ -56,4 +56,25 @@ describe "Kemal::WebsocketHandler" do response.headers["Sec-WebSocket-Accept"].should eq("s3pPLMBiTxaQ9kYGzzhZRbK+xOo=") response.upgrade_handler.should_not be_nil end + + it "has a sockets array" do + + ws_handler = Kemal::WebSocketHandler.new "/" do |socket| + + end + headers = HTTP::Headers{ + "Upgrade": "websocket", + "Connection": "Upgrade", + "Sec-WebSocket-Key": "dGhlIHNhbXBsZSBub25jZQ==", + } + + # Websocket request + request = HTTP::Request.new("GET", "/", headers) + response = ws_handler.call request + response.status_code.should eq(101) + response.headers["Upgrade"].should eq("websocket") + response.headers["Connection"].should eq("Upgrade") + response.headers["Sec-WebSocket-Accept"].should eq("s3pPLMBiTxaQ9kYGzzhZRbK+xOo=") + response.upgrade_handler.should_not be_nil + end end diff --git a/src/kemal/dsl.cr b/src/kemal/dsl.cr index 3e9685f..58100db 100644 --- a/src/kemal/dsl.cr +++ b/src/kemal/dsl.cr @@ -7,5 +7,5 @@ HTTP_METHODS = %w(get post put patch delete) {% end %} def ws(path, &block : HTTP::WebSocketHandler::WebSocketSession -> _) - Kemal::WebsocketHandler.new path, &block + Kemal::WebSocketHandler.new path, &block end diff --git a/src/kemal/websocket_handler.cr b/src/kemal/websocket_handler.cr index b9ba544..b40d526 100644 --- a/src/kemal/websocket_handler.cr +++ b/src/kemal/websocket_handler.cr @@ -1,7 +1,7 @@ -# Kemal::WebsocketHandler is used for each define WebSocket route. +# Kemal::WebSocketHandler is used for each define WebSocket route. # For each WebSocket route a new handler is created and registered to global handlers. -class Kemal::WebsocketHandler < HTTP::WebSocketHandler +class Kemal::WebSocketHandler < HTTP::WebSocketHandler def initialize(@path, &@proc : WebSocketSession ->) Kemal.config.add_ws_handler self end