diff options
author | Nick Thomas <nick@gitlab.com> | 2016-09-22 13:56:43 +0100 |
---|---|---|
committer | Nick Thomas <nick@gitlab.com> | 2016-09-23 12:21:47 +0100 |
commit | fd51f19c978023160ad759676a0363c12aea3fc8 (patch) | |
tree | 06ca61ae539d3432aadda0a45f95295bd8ad9186 /spec/requests/api | |
parent | 294482f38388542b43b908dcb427759544a7486f (diff) | |
download | gitlab-ce-fd51f19c978023160ad759676a0363c12aea3fc8.tar.gz |
API: disable rails session auth for non-GET/HEAD requests
Diffstat (limited to 'spec/requests/api')
-rw-r--r-- | spec/requests/api/api_helpers_spec.rb | 39 |
1 files changed, 33 insertions, 6 deletions
diff --git a/spec/requests/api/api_helpers_spec.rb b/spec/requests/api/api_helpers_spec.rb index e66faeed705..0f41f8dc7f1 100644 --- a/spec/requests/api/api_helpers_spec.rb +++ b/spec/requests/api/api_helpers_spec.rb @@ -10,7 +10,8 @@ describe API::Helpers, api: true do let(:key) { create(:key, user: user) } let(:params) { {} } - let(:env) { {} } + let(:env) { { 'REQUEST_METHOD' => 'GET' } } + let(:request) { Rack::Request.new(env) } def set_env(token_usr, identifier) clear_env @@ -52,17 +53,43 @@ describe API::Helpers, api: true do describe ".current_user" do subject { current_user } - describe "when authenticating via Warden" do + describe "Warden authentication" do before { doorkeeper_guard_returns false } - context "fails" do - it { is_expected.to be_nil } + context "with invalid credentials" do + context "GET request" do + before { env['REQUEST_METHOD'] = 'GET' } + it { is_expected.to be_nil } + end end - context "succeeds" do + context "with valid credentials" do before { warden_authenticate_returns user } - it { is_expected.to eq(user) } + context "GET request" do + before { env['REQUEST_METHOD'] = 'GET' } + it { is_expected.to eq(user) } + end + + context "HEAD request" do + before { env['REQUEST_METHOD'] = 'HEAD' } + it { is_expected.to eq(user) } + end + + context "PUT request" do + before { env['REQUEST_METHOD'] = 'PUT' } + it { is_expected.to be_nil } + end + + context "POST request" do + before { env['REQUEST_METHOD'] = 'POST' } + it { is_expected.to be_nil } + end + + context "DELETE request" do + before { env['REQUEST_METHOD'] = 'DELETE' } + it { is_expected.to be_nil } + end end end |