diff options
author | Marius Balteanu <marius.balteanu@zitec.com> | 2025-06-16 21:32:45 +0000 |
---|---|---|
committer | Marius Balteanu <marius.balteanu@zitec.com> | 2025-06-16 21:32:45 +0000 |
commit | 9186b8e64db22f6e917ce5946793517080be2913 (patch) | |
tree | 9db77b9cb205c889d5f3f1d086a8f61dcbc69953 | |
parent | eb1fcac5e44c468c1fec5fc116b9132a4da77a21 (diff) | |
download | redmine-9186b8e64db22f6e917ce5946793517080be2913.tar.gz redmine-9186b8e64db22f6e917ce5946793517080be2913.zip |
Replaces webrick server used in @OauthProviderSystemTest@ with puma (#24808).
git-svn-id: https://svn.redmine.org/redmine/trunk@23840 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r-- | Gemfile | 1 | ||||
-rw-r--r-- | test/system/oauth_provider_test.rb | 22 |
2 files changed, 14 insertions, 9 deletions
@@ -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 a80963096..364ed4c94 100644 --- a/test/system/oauth_provider_test.rb +++ b/test/system/oauth_provider_test.rb @@ -2,7 +2,8 @@ require_relative '../application_system_test_case' require 'oauth2' -require 'webrick' +require 'rack' +require 'puma' class OauthProviderSystemTest < ApplicationSystemTestCase fixtures :projects, :users, :email_addresses, :roles, :members, :member_roles, @@ -61,10 +62,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 = "<html><body><p>Authorization succeeded, you may close this window now.</p></body></html>" + res.body = ["<html><body><p>Authorization succeeded, you may close this window now.</p></body></html>"] end end @@ -118,11 +119,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 |