# frozen_string_literal: true shared_context "valid token", token: :valid do let(:token_string) { "1A2B3C4D" } let :token do double( Doorkeeper::AccessToken, accessible?: true, includes_scope?: true, acceptable?: true, previous_refresh_token: "", revoke_previous_refresh_token!: true, ) end before :each do allow( Doorkeeper::AccessToken, ).to receive(:by_token).with(token_string).and_return(token) end end shared_context "invalid token", token: :invalid do let(:token_string) { "1A2B3C4D" } let :token do double( Doorkeeper::AccessToken, accessible?: false, revoked?: false, expired?: false, includes_scope?: false, acceptable?: false, previous_refresh_token: "", revoke_previous_refresh_token!: true, ) end before :each do allow( Doorkeeper::AccessToken, ).to receive(:by_token).with(token_string).and_return(token) end end shared_context "authenticated resource owner" do before do user = double(:resource, id: 1) allow(Doorkeeper.config).to receive(:authenticate_resource_owner) { proc { user } } end end shared_context "not authenticated resource owner" do before do allow(Doorkeeper.config).to receive(:authenticate_resource_owner) { proc { redirect_to "/" } } end end shared_context "valid authorization request" do let :authorization do double(:authorization, valid?: true, authorize: true, success_redirect_uri: "http://something.com/cb?code=token") end before do allow(controller).to receive(:authorization) { authorization } end end shared_context "invalid authorization request" do let :authorization do double(:authorization, valid?: false, authorize: false, redirect_on_error?: false) end before do allow(controller).to receive(:authorization) { authorization } end end shared_context "expired token", token: :expired do let :token_string do "1A2B3C4DEXP" end let :token do double( Doorkeeper::AccessToken, accessible?: false, revoked?: false, expired?: true, includes_scope?: false, acceptable?: false, previous_refresh_token: "", revoke_previous_refresh_token!: true, ) end before :each do allow( Doorkeeper::AccessToken, ).to receive(:by_token).with(token_string).and_return(token) end end shared_context "revoked token", token: :revoked do let :token_string do "1A2B3C4DREV" end let :token do double( Doorkeeper::AccessToken, accessible?: false, revoked?: true, expired?: false, includes_scope?: false, acceptable?: false, previous_refresh_token: "", revoke_previous_refresh_token!: true, ) end before :each do allow( Doorkeeper::AccessToken, ).to receive(:by_token).with(token_string).and_return(token) end end shared_context "forbidden token", token: :forbidden do let :token_string do "1A2B3C4DFORB" end let :token do double( Doorkeeper::AccessToken, accessible?: true, includes_scope?: true, acceptable?: false, previous_refresh_token: "", revoke_previous_refresh_token!: true, ) end before :each do allow( Doorkeeper::AccessToken, ).to receive(:by_token).with(token_string).and_return(token) end end