|
1 | 1 | # frozen_string_literal: true |
2 | 2 |
|
3 | 3 | require_relative '../../lib/omniauth_open_id_connect' |
4 | | - |
5 | | -require 'webmock/rspec' |
6 | | -WebMock.disable_net_connect! |
| 4 | +require 'rails_helper' |
7 | 5 |
|
8 | 6 | describe OmniAuth::Strategies::OpenIDConnect do |
9 | 7 | # let(:request) { double('Request', params: {}, cookies: {}, env: {}) } |
|
30 | 28 | } |
31 | 29 |
|
32 | 30 | ).tap do |strategy| |
33 | | - # allow(strategy).to receive(:request) do |
34 | | - # request |
35 | | - # end |
36 | 31 | end |
37 | 32 | end |
38 | 33 |
|
|
73 | 68 | "userinfo_endpoint": "https://id.example.com/userinfo", |
74 | 69 | }.to_json) |
75 | 70 |
|
76 | | - allow(subject).to receive(:request) do |
77 | | - double("Request", params: { "p" => "someallowedvalue", "somethingelse" => "notallowed" }) |
78 | | - end |
| 71 | + subject.stubs(:request).returns(mock('object')) |
| 72 | + subject.request.stubs(:params).returns("p" => "someallowedvalue", "somethingelse" => "notallowed") |
79 | 73 |
|
80 | 74 | subject.discover! |
81 | 75 | end |
|
104 | 98 | describe "token parameters" do |
105 | 99 | it "passes through parameters from authorize phase" do |
106 | 100 | expect(subject.authorize_params[:p]).to eq("someallowedvalue") |
107 | | - allow(subject).to receive(:request) { double("Request", params: {}) } |
| 101 | + subject.stubs(:request).returns(mock()) |
| 102 | + subject.request.stubs(:params).returns({}) |
108 | 103 | expect(subject.token_params[:p]).to eq("someallowedvalue") |
109 | 104 | end |
110 | 105 | end |
|
113 | 108 | before do |
114 | 109 | auth_params = subject.authorize_params |
115 | 110 |
|
116 | | - allow(subject).to receive(:full_host).and_return("https://example.com") |
| 111 | + subject.stubs(:full_host).returns("https://example.com") |
117 | 112 |
|
118 | | - allow(subject).to receive(:request) do |
119 | | - double("Request", params: { "state" => auth_params[:state], "code" => "supersecretcode" }) |
120 | | - end |
| 113 | + subject.stubs(:request).returns(mock()) |
| 114 | + subject.request.stubs(:params).returns("state" => auth_params[:state], "code" => "supersecretcode") |
121 | 115 |
|
122 | 116 | payload = { |
123 | 117 | iss: "https://id.example.com/", |
|
133 | 127 | end |
134 | 128 |
|
135 | 129 | it "handles error redirects correctly" do |
136 | | - allow(subject).to receive(:request) do |
137 | | - double("Request", params: { "error" => true, "error_description" => "User forgot password" }) |
138 | | - end |
| 130 | + subject.stubs(:request).returns(mock()) |
| 131 | + subject.request.stubs(:params).returns("error" => true, "error_description" => "User forgot password") |
139 | 132 | subject.options.error_handler = lambda { |error, message| return "https://example.com/error_redirect" if message.include?("forgot password") } |
140 | 133 | expect(subject.callback_phase[0]).to eq(302) |
141 | 134 | expect(subject.callback_phase[1]["Location"]).to eq("https://example.com/error_redirect") |
|
0 commit comments