X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/44f0e83d50f688bf73c336747402d490346f5c34..8ffceeb0bddd457cee62586d405afd8e082e1d6f:/services/api/test/integration/websocket_test.rb diff --git a/services/api/test/integration/websocket_test.rb b/services/api/test/integration/websocket_test.rb index d1b8c34a43..99ca7ac960 100644 --- a/services/api/test/integration/websocket_test.rb +++ b/services/api/test/integration/websocket_test.rb @@ -23,15 +23,15 @@ class WebsocketTest < ActionDispatch::IntegrationTest EM.run { if token - ws = Faye::WebSocket::Client.new("ws://localhost:3002/websocket?api_token=#{api_client_authorizations(token).api_token}") + ws = Faye::WebSocket::Client.new("ws://localhost:#{WEBSOCKET_PORT}/websocket?api_token=#{api_client_authorizations(token).api_token}") else - ws = Faye::WebSocket::Client.new("ws://localhost:3002/websocket") + ws = Faye::WebSocket::Client.new("ws://localhost:#{WEBSOCKET_PORT}/websocket") end ws.on :open do |event| opened = true if timeout - EM::Timer.new 4 do + EM::Timer.new 8 do too_long = true if close_status.nil? EM.stop_event_loop end @@ -69,7 +69,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest test "connect, subscribe and get response" do status = nil - ws_helper :admin do |ws| + ws_helper :active do |ws| ws.on :open do |event| ws.send ({method: 'subscribe'}.to_json) end @@ -89,9 +89,9 @@ class WebsocketTest < ActionDispatch::IntegrationTest spec = nil ev_uuid = nil - authorize_with :admin + authorize_with :active - ws_helper :admin do |ws| + ws_helper :active do |ws| ws.on :open do |event| ws.send ({method: 'subscribe'}.to_json) end @@ -126,9 +126,9 @@ class WebsocketTest < ActionDispatch::IntegrationTest spec_ev_uuid = nil human_ev_uuid = nil - authorize_with :admin + authorize_with :active - ws_helper :admin do |ws| + ws_helper :active do |ws| ws.on :open do |event| ws.send ({method: 'subscribe'}.to_json) end @@ -166,9 +166,9 @@ class WebsocketTest < ActionDispatch::IntegrationTest human = nil human_ev_uuid = nil - authorize_with :admin + authorize_with :active - ws_helper :admin do |ws| + ws_helper :active do |ws| ws.on :open do |event| ws.send ({method: 'subscribe', filters: [['object_uuid', 'is_a', 'arvados#human']]}.to_json) end @@ -204,9 +204,9 @@ class WebsocketTest < ActionDispatch::IntegrationTest spec_ev_uuid = nil human_ev_uuid = nil - authorize_with :admin + authorize_with :active - ws_helper :admin do |ws| + ws_helper :active do |ws| ws.on :open do |event| ws.send ({method: 'subscribe', filters: [['object_uuid', 'is_a', 'arvados#human']]}.to_json) ws.send ({method: 'subscribe', filters: [['object_uuid', 'is_a', 'arvados#specimen']]}.to_json) @@ -249,9 +249,9 @@ class WebsocketTest < ActionDispatch::IntegrationTest state = 1 t1 = nil - authorize_with :admin + authorize_with :active - ws_helper :admin do |ws| + ws_helper :active do |ws| ws.on :open do |event| ws.send ({method: 'subscribe', filters: [['object_uuid', 'is_a', 'arvados#trait'], ['event_type', '=', 'update']]}.to_json) end @@ -285,13 +285,13 @@ class WebsocketTest < ActionDispatch::IntegrationTest human = nil human_ev_uuid = nil - authorize_with :admin + authorize_with :active lastid = logs(:admin_changes_specimen).id l1 = nil l2 = nil - ws_helper :admin do |ws| + ws_helper :active do |ws| ws.on :open do |event| ws.send ({method: 'subscribe', last_log_id: lastid}.to_json) end @@ -329,9 +329,9 @@ class WebsocketTest < ActionDispatch::IntegrationTest spec_ev_uuid = nil filter_id = nil - authorize_with :admin + authorize_with :active - ws_helper :admin, false do |ws| + ws_helper :active, false do |ws| ws.on :open do |event| ws.send ({method: 'subscribe'}.to_json) EM::Timer.new 3 do @@ -378,12 +378,12 @@ class WebsocketTest < ActionDispatch::IntegrationTest spec = nil spec_ev_uuid = nil - authorize_with :admin + authorize_with :active - ws_helper :admin, false do |ws| + ws_helper :active, false do |ws| ws.on :open do |event| ws.send ({method: 'subscribe', filters: [['object_uuid', 'is_a', 'arvados#human']]}.to_json) - EM::Timer.new 3 do + EM::Timer.new 6 do # Set a time limit on the test because after unsubscribing the server # still has to process the next event (and then hopefully correctly # decides not to send it because we unsubscribed.) @@ -430,9 +430,9 @@ class WebsocketTest < ActionDispatch::IntegrationTest human = nil human_ev_uuid = nil - authorize_with :admin + authorize_with :active - ws_helper :admin do |ws| + ws_helper :active do |ws| ws.on :open do |event| ws.send ({method: 'subscribe'}.to_json) end @@ -477,9 +477,9 @@ class WebsocketTest < ActionDispatch::IntegrationTest test "connected, not subscribed, no event" do slow_test - authorize_with :admin + authorize_with :active - ws_helper :admin, false do |ws| + ws_helper :active, false do |ws| ws.on :open do |event| EM::Timer.new 1 do Specimen.create @@ -530,7 +530,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest test "connect, try bogus method" do status = nil - ws_helper :admin do |ws| + ws_helper :active do |ws| ws.on :open do |event| ws.send ({method: 'frobnabble'}.to_json) end @@ -548,7 +548,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest test "connect, missing method" do status = nil - ws_helper :admin do |ws| + ws_helper :active do |ws| ws.on :open do |event| ws.send ({fizzbuzz: 'frobnabble'}.to_json) end @@ -566,7 +566,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest test "connect, send malformed request" do status = nil - ws_helper :admin do |ws| + ws_helper :active do |ws| ws.on :open do |event| ws.send '' end @@ -585,9 +585,9 @@ class WebsocketTest < ActionDispatch::IntegrationTest test "connect, try subscribe too many filters" do state = 1 - authorize_with :admin + authorize_with :active - ws_helper :admin do |ws| + ws_helper :active do |ws| ws.on :open do |event| (1..17).each do |i| ws.send ({method: 'subscribe', filters: [['object_uuid', '=', i]]}.to_json) @@ -597,10 +597,10 @@ class WebsocketTest < ActionDispatch::IntegrationTest ws.on :message do |event| d = Oj.strict_load event.data case state - when (1..EventBus::MAX_FILTERS) + when (1..Rails.configuration.websocket_max_filters) assert_equal 200, d["status"] state += 1 - when (EventBus::MAX_FILTERS+1) + when (Rails.configuration.websocket_max_filters+1) assert_equal 403, d["status"] ws.close end @@ -608,7 +608,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest end - assert_equal 17, state + assert_equal Rails.configuration.websocket_max_filters+1, state end @@ -618,9 +618,9 @@ class WebsocketTest < ActionDispatch::IntegrationTest event_count = 0 log_start = Log.order(:id).last.id - authorize_with :admin + authorize_with :active - ws_helper :admin, false do |ws| + ws_helper :active, false do |ws| EM::Timer.new 45 do # Needs a longer timeout than the default ws.close @@ -661,9 +661,9 @@ class WebsocketTest < ActionDispatch::IntegrationTest human = nil human_ev_uuid = nil - authorize_with :admin + authorize_with :active - ws_helper :admin do |ws| + ws_helper :active do |ws| ws.on :open do |event| # test that #6451 is fixed (invalid filter crashes websockets) ws.send ({method: 'subscribe', filters: [['object_blarg', 'is_a', 'arvados#human']]}.to_json)