X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/09a2e88c51e5432e607f2a38466e55b4ba15e887..8be16cfc7e163cc96995be891e53050febfb1fca:/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 8fd9685765..549bbc6f99 100644 --- a/services/api/test/integration/websocket_test.rb +++ b/services/api/test/integration/websocket_test.rb @@ -1,6 +1,6 @@ -require 'test_helper' -require 'oj' require 'database_cleaner' +require 'safe_json' +require 'test_helper' DatabaseCleaner.strategy = :deletion @@ -19,19 +19,20 @@ class WebsocketTest < ActionDispatch::IntegrationTest s = TCPServer.new('0.0.0.0', 0) @@port = s.addr[1] s.close - pidfile = "tmp/pids/passenger.#{@@port}.pid" + @@pidfile = "tmp/pids/passenger.#{@@port}.pid" DatabaseCleaner.start Dir.chdir(Rails.root) do |apidir| # Only passenger seems to be able to run the websockets server # successfully. _system('passenger', 'start', '-d', "-p#{@@port}", - "--log-file", "/dev/stderr") + "--log-file", "/dev/stderr", + "--pid-file", @@pidfile) timeout = Time.now.tv_sec + 10 begin sleep 0.2 begin - server_pid = IO.read(pidfile).to_i + server_pid = IO.read(@@pidfile).to_i good_pid = (server_pid > 0) and (Process.kill(0, pid) rescue false) rescue Errno::ENOENT good_pid = false @@ -46,7 +47,8 @@ class WebsocketTest < ActionDispatch::IntegrationTest def self.shutdown Dir.chdir(Rails.root) do - _system('passenger', 'stop', "-p#{@@port}") + _system('passenger', 'stop', "-p#{@@port}", + "--pid-file", @@pidfile) end # DatabaseCleaner leaves the database empty. Prefer to leave it full. dc = DatabaseController.new @@ -110,7 +112,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest ws_helper do |ws| ws.on :message do |event| - d = Oj.strict_load event.data + d = SafeJSON.load event.data status = d["status"] ws.close end @@ -128,7 +130,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest end ws.on :message do |event| - d = Oj.strict_load event.data + d = SafeJSON.load event.data status = d["status"] ws.close end @@ -150,7 +152,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest end ws.on :message do |event| - d = Oj.strict_load event.data + d = SafeJSON.load event.data case state when 1 assert_equal 200, d["status"] @@ -187,7 +189,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest end ws.on :message do |event| - d = Oj.strict_load event.data + d = SafeJSON.load event.data case state when 1 assert_equal 200, d["status"] @@ -227,7 +229,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest end ws.on :message do |event| - d = Oj.strict_load event.data + d = SafeJSON.load event.data case state when 1 assert_equal 200, d["status"] @@ -266,7 +268,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest end ws.on :message do |event| - d = Oj.strict_load event.data + d = SafeJSON.load event.data case state when 1 assert_equal 200, d["status"] @@ -310,7 +312,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest end ws.on :message do |event| - d = Oj.strict_load event.data + d = SafeJSON.load event.data case state when 1 assert_equal 200, d["status"] @@ -335,8 +337,6 @@ class WebsocketTest < ActionDispatch::IntegrationTest test "connect, subscribe, ask events starting at seq num" do state = 1 - human = nil - human_ev_uuid = nil authorize_with :active @@ -350,7 +350,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest end ws.on :message do |event| - d = Oj.strict_load event.data + d = SafeJSON.load event.data case state when 1 assert_equal 200, d["status"] @@ -379,7 +379,6 @@ class WebsocketTest < ActionDispatch::IntegrationTest state = 1 spec = nil spec_ev_uuid = nil - filter_id = nil authorize_with :active @@ -395,7 +394,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest end ws.on :message do |event| - d = Oj.strict_load event.data + d = SafeJSON.load event.data case state when 1 assert_equal 200, d["status"] @@ -443,7 +442,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest end ws.on :message do |event| - d = Oj.strict_load event.data + d = SafeJSON.load event.data case state when 1 assert_equal 200, d["status"] @@ -488,7 +487,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest end ws.on :message do |event| - d = Oj.strict_load event.data + d = SafeJSON.load event.data case state when 1 assert_equal 200, d["status"] @@ -558,7 +557,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest end ws.on :message do |event| - d = Oj.strict_load event.data + d = SafeJSON.load event.data case state when 1 assert_equal 200, d["status"] @@ -582,7 +581,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest end ws.on :message do |event| - d = Oj.strict_load event.data + d = SafeJSON.load event.data status = d["status"] ws.close end @@ -600,7 +599,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest end ws.on :message do |event| - d = Oj.strict_load event.data + d = SafeJSON.load event.data status = d["status"] ws.close end @@ -618,7 +617,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest end ws.on :message do |event| - d = Oj.strict_load event.data + d = SafeJSON.load event.data status = d["status"] ws.close end @@ -641,7 +640,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest end ws.on :message do |event| - d = Oj.strict_load event.data + d = SafeJSON.load event.data case state when (1..Rails.configuration.websocket_max_filters) assert_equal 200, d["status"] @@ -676,13 +675,13 @@ class WebsocketTest < ActionDispatch::IntegrationTest end ws.on :message do |event| - d = Oj.strict_load event.data + d = SafeJSON.load event.data case state when 1 assert_equal 200, d["status"] ActiveRecord::Base.transaction do (1..202).each do - spec = Specimen.create + Specimen.create end end state = 2 @@ -703,8 +702,6 @@ class WebsocketTest < ActionDispatch::IntegrationTest test "connect, subscribe with invalid filter" do state = 1 - human = nil - human_ev_uuid = nil authorize_with :active @@ -715,12 +712,12 @@ class WebsocketTest < ActionDispatch::IntegrationTest end ws.on :message do |event| - d = Oj.strict_load event.data + d = SafeJSON.load event.data case state when 1 assert_equal 200, d["status"] Specimen.create - human = Human.create + Human.create state = 2 when 2 assert_equal 500, d["status"]