projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
9427: Add limits for connections, subscriptions, queued notifications, and
[arvados.git]
/
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 ef24f559fb8d34aa6ad5911737ad4f45ccf94a41..25e7592c39577bdbf64be90a03d286b05f0120e4 100644
(file)
--- a/
services/api/test/integration/websocket_test.rb
+++ b/
services/api/test/integration/websocket_test.rb
@@
-31,7
+31,7
@@
class WebsocketTest < ActionDispatch::IntegrationTest
ws.on :open do |event|
opened = true
if timeout
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
too_long = true if close_status.nil?
EM.stop_event_loop
end
@@
-56,7
+56,7
@@
class WebsocketTest < ActionDispatch::IntegrationTest
ws_helper do |ws|
ws.on :message do |event|
ws_helper do |ws|
ws.on :message do |event|
- d = Oj.load event.data
+ d = Oj.
strict_
load event.data
status = d["status"]
ws.close
end
status = d["status"]
ws.close
end
@@
-75,7
+75,7
@@
class WebsocketTest < ActionDispatch::IntegrationTest
end
ws.on :message do |event|
end
ws.on :message do |event|
- d = Oj.load event.data
+ d = Oj.
strict_
load event.data
status = d["status"]
ws.close
end
status = d["status"]
ws.close
end
@@
-84,7
+84,7
@@
class WebsocketTest < ActionDispatch::IntegrationTest
assert_equal 200, status
end
assert_equal 200, status
end
- test "connect, subscribe, get event" do
+ def subscribe_test
state = 1
spec = nil
ev_uuid = nil
state = 1
spec = nil
ev_uuid = nil
@@
-97,7
+97,7
@@
class WebsocketTest < ActionDispatch::IntegrationTest
end
ws.on :message do |event|
end
ws.on :message do |event|
- d = Oj.load event.data
+ d = Oj.
strict_
load event.data
case state
when 1
assert_equal 200, d["status"]
case state
when 1
assert_equal 200, d["status"]
@@
-115,6
+115,10
@@
class WebsocketTest < ActionDispatch::IntegrationTest
assert_equal spec.uuid, ev_uuid
end
assert_equal spec.uuid, ev_uuid
end
+ test "connect, subscribe, get event" do
+ subscribe_test()
+ end
+
test "connect, subscribe, get two events" do
state = 1
spec = nil
test "connect, subscribe, get two events" do
state = 1
spec = nil
@@
-130,7
+134,7
@@
class WebsocketTest < ActionDispatch::IntegrationTest
end
ws.on :message do |event|
end
ws.on :message do |event|
- d = Oj.load event.data
+ d = Oj.
strict_
load event.data
case state
when 1
assert_equal 200, d["status"]
case state
when 1
assert_equal 200, d["status"]
@@
-170,7
+174,7
@@
class WebsocketTest < ActionDispatch::IntegrationTest
end
ws.on :message do |event|
end
ws.on :message do |event|
- d = Oj.load event.data
+ d = Oj.
strict_
load event.data
case state
when 1
assert_equal 200, d["status"]
case state
when 1
assert_equal 200, d["status"]
@@
-209,7
+213,7
@@
class WebsocketTest < ActionDispatch::IntegrationTest
end
ws.on :message do |event|
end
ws.on :message do |event|
- d = Oj.load event.data
+ d = Oj.
strict_
load event.data
case state
when 1
assert_equal 200, d["status"]
case state
when 1
assert_equal 200, d["status"]
@@
-253,7
+257,7
@@
class WebsocketTest < ActionDispatch::IntegrationTest
end
ws.on :message do |event|
end
ws.on :message do |event|
- d = Oj.load event.data
+ d = Oj.
strict_
load event.data
case state
when 1
assert_equal 200, d["status"]
case state
when 1
assert_equal 200, d["status"]
@@
-293,7
+297,7
@@
class WebsocketTest < ActionDispatch::IntegrationTest
end
ws.on :message do |event|
end
ws.on :message do |event|
- d = Oj.load event.data
+ d = Oj.
strict_
load event.data
case state
when 1
assert_equal 200, d["status"]
case state
when 1
assert_equal 200, d["status"]
@@
-319,6
+323,7
@@
class WebsocketTest < ActionDispatch::IntegrationTest
end
test "connect, subscribe, get event, unsubscribe" do
end
test "connect, subscribe, get event, unsubscribe" do
+ slow_test
state = 1
spec = nil
spec_ev_uuid = nil
state = 1
spec = nil
spec_ev_uuid = nil
@@
-338,7
+343,7
@@
class WebsocketTest < ActionDispatch::IntegrationTest
end
ws.on :message do |event|
end
ws.on :message do |event|
- d = Oj.load event.data
+ d = Oj.
strict_
load event.data
case state
when 1
assert_equal 200, d["status"]
case state
when 1
assert_equal 200, d["status"]
@@
-368,6
+373,7
@@
class WebsocketTest < ActionDispatch::IntegrationTest
end
test "connect, subscribe, get event, unsubscribe with filter" do
end
test "connect, subscribe, get event, unsubscribe with filter" do
+ slow_test
state = 1
spec = nil
spec_ev_uuid = nil
state = 1
spec = nil
spec_ev_uuid = nil
@@
-386,7
+392,7
@@
class WebsocketTest < ActionDispatch::IntegrationTest
end
ws.on :message do |event|
end
ws.on :message do |event|
- d = Oj.load event.data
+ d = Oj.
strict_
load event.data
case state
when 1
assert_equal 200, d["status"]
case state
when 1
assert_equal 200, d["status"]
@@
-417,6
+423,7
@@
class WebsocketTest < ActionDispatch::IntegrationTest
test "connect, subscribe, get event, try to unsubscribe with bogus filter" do
test "connect, subscribe, get event, try to unsubscribe with bogus filter" do
+ slow_test
state = 1
spec = nil
spec_ev_uuid = nil
state = 1
spec = nil
spec_ev_uuid = nil
@@
-431,7
+438,7
@@
class WebsocketTest < ActionDispatch::IntegrationTest
end
ws.on :message do |event|
end
ws.on :message do |event|
- d = Oj.load event.data
+ d = Oj.
strict_
load event.data
case state
when 1
assert_equal 200, d["status"]
case state
when 1
assert_equal 200, d["status"]
@@
-469,6
+476,7
@@
class WebsocketTest < ActionDispatch::IntegrationTest
test "connected, not subscribed, no event" do
test "connected, not subscribed, no event" do
+ slow_test
authorize_with :admin
ws_helper :admin, false do |ws|
authorize_with :admin
ws_helper :admin, false do |ws|
@@
-489,6
+497,7
@@
class WebsocketTest < ActionDispatch::IntegrationTest
end
test "connected, not authorized to see event" do
end
test "connected, not authorized to see event" do
+ slow_test
state = 1
authorize_with :admin
state = 1
authorize_with :admin
@@
-503,7
+512,7
@@
class WebsocketTest < ActionDispatch::IntegrationTest
end
ws.on :message do |event|
end
ws.on :message do |event|
- d = Oj.load event.data
+ d = Oj.
strict_
load event.data
case state
when 1
assert_equal 200, d["status"]
case state
when 1
assert_equal 200, d["status"]
@@
-527,7
+536,7
@@
class WebsocketTest < ActionDispatch::IntegrationTest
end
ws.on :message do |event|
end
ws.on :message do |event|
- d = Oj.load event.data
+ d = Oj.
strict_
load event.data
status = d["status"]
ws.close
end
status = d["status"]
ws.close
end
@@
-545,7
+554,7
@@
class WebsocketTest < ActionDispatch::IntegrationTest
end
ws.on :message do |event|
end
ws.on :message do |event|
- d = Oj.load event.data
+ d = Oj.
strict_
load event.data
status = d["status"]
ws.close
end
status = d["status"]
ws.close
end
@@
-563,7
+572,7
@@
class WebsocketTest < ActionDispatch::IntegrationTest
end
ws.on :message do |event|
end
ws.on :message do |event|
- d = Oj.load event.data
+ d = Oj.
strict_
load event.data
status = d["status"]
ws.close
end
status = d["status"]
ws.close
end
@@
-586,12
+595,12
@@
class WebsocketTest < ActionDispatch::IntegrationTest
end
ws.on :message do |event|
end
ws.on :message do |event|
- d = Oj.load event.data
+ d = Oj.
strict_
load event.data
case state
case state
- when (1..
EventBus::MAX_FILTERS
)
+ when (1..
Rails.configuration.websocket_max_filters
)
assert_equal 200, d["status"]
state += 1
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
assert_equal 403, d["status"]
ws.close
end
@@
-599,11
+608,12
@@
class WebsocketTest < ActionDispatch::IntegrationTest
end
end
- assert_equal
17
, state
+ assert_equal
Rails.configuration.websocket_max_filters+1
, state
end
test "connect, subscribe, lots of events" do
end
test "connect, subscribe, lots of events" do
+ slow_test
state = 1
event_count = 0
log_start = Log.order(:id).last.id
state = 1
event_count = 0
log_start = Log.order(:id).last.id
@@
-621,7
+631,7
@@
class WebsocketTest < ActionDispatch::IntegrationTest
end
ws.on :message do |event|
end
ws.on :message do |event|
- d = Oj.load event.data
+ d = Oj.
strict_
load event.data
case state
when 1
assert_equal 200, d["status"]
case state
when 1
assert_equal 200, d["status"]
@@
-660,7
+670,7
@@
class WebsocketTest < ActionDispatch::IntegrationTest
end
ws.on :message do |event|
end
ws.on :message do |event|
- d = Oj.load event.data
+ d = Oj.
strict_
load event.data
case state
when 1
assert_equal 200, d["status"]
case state
when 1
assert_equal 200, d["status"]
@@
-682,20
+692,7
@@
class WebsocketTest < ActionDispatch::IntegrationTest
# Try connecting again, ensure that websockets server is still running and
# didn't crash per #6451
# Try connecting again, ensure that websockets server is still running and
# didn't crash per #6451
- status = nil
- ws_helper :admin do |ws|
- ws.on :open do |event|
- ws.send ({method: 'subscribe'}.to_json)
- end
-
- ws.on :message do |event|
- d = Oj.load event.data
- status = d["status"]
- ws.close
- end
- end
-
- assert_equal 200, status
+ subscribe_test()
end
end