From f3c4d44f3622f7edf62ec80b038ddb7572d28128 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marius=20B=C4=82LTEANU?= Date: Fri, 30 May 2025 20:57:40 +0300 Subject: [PATCH 3/3] Switch server used in oauth_provider test from webrick to puma. --- Gemfile | 1 - test/system/oauth_provider_test.rb | 22 ++++++++++++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/Gemfile b/Gemfile index 2323556a1..3d17c7136 100644 --- a/Gemfile +++ b/Gemfile @@ -121,7 +121,6 @@ group :test do # for testing oauth provider capabilities gem 'oauth2' gem 'rest-client' - gem 'webrick' end local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local") diff --git a/test/system/oauth_provider_test.rb b/test/system/oauth_provider_test.rb index f9224f382..31fad7ebe 100644 --- a/test/system/oauth_provider_test.rb +++ b/test/system/oauth_provider_test.rb @@ -2,7 +2,8 @@ require File.expand_path('../application_system_test_case', __dir__) require 'oauth2' -require 'webrick' +require 'rack' +require 'puma' class OauthProviderSystemTest < ApplicationSystemTestCase fixtures :projects, :users, :email_addresses, :roles, :members, :member_roles, @@ -58,10 +59,10 @@ class OauthProviderSystemTest < ApplicationSystemTestCase # launches webrick, listening for the redirect with the auth code. launch_client_app(port: port) do |req, res| # get access code from code url param - if code = req.query['code'].presence + if code = req.params['code'].presence # exchange it for token token = client.auth_code.get_token(code, redirect_uri: redirect_uri) - res.body = "

Authorization succeeded, you may close this window now.

" + res.body = ["

Authorization succeeded, you may close this window now.

"] end end @@ -115,11 +116,16 @@ class OauthProviderSystemTest < ApplicationSystemTestCase private def launch_client_app(port: 12345, path: '/', &block) - server = WEBrick::HTTPServer.new Port: port - trap('INT') { server.shutdown } - server.mount_proc(path, block) - Thread.new { server.start } - port + app = ->(env) do + req = Rack::Request.new(env) + res = Rack::Response.new + yield(req, res) + res.finish + end + + server = Puma::Server.new app + server.add_tcp_listener '127.0.0.1', port + Thread.new { server.run } end def test_port -- 2.39.5 (Apple Git-154)