Sha256: a9b7cf1a0b5c899d47836b3acf15a7f0e72ab1e2f5320b75b170fd815f4bc8b2

Contents?: true

Size: 1.87 KB

Versions: 31

Compression:

Stored size: 1.87 KB

Contents

require 'spec_helper'
require 'active_support/core_ext/string'
require 'doorkeeper/oauth/helpers/scope_checker'
require 'doorkeeper/oauth/scopes'

module Doorkeeper::OAuth::Helpers
  describe ScopeChecker, '.valid?' do
    let(:server_scopes) { Doorkeeper::OAuth::Scopes.new }

    it 'is valid if scope is present' do
      server_scopes.add :scope
      expect(ScopeChecker.valid?('scope', server_scopes)).to be_truthy
    end

    it 'is invalid if includes tabs space' do
      expect(ScopeChecker.valid?("\tsomething", server_scopes)).to be_falsey
    end

    it 'is invalid if scope is not present' do
      expect(ScopeChecker.valid?(nil, server_scopes)).to be_falsey
    end

    it 'is invalid if scope is blank' do
      expect(ScopeChecker.valid?(' ', server_scopes)).to be_falsey
    end

    it 'is invalid if includes return space' do
      expect(ScopeChecker.valid?("scope\r", server_scopes)).to be_falsey
    end

    it 'is invalid if includes new lines' do
      expect(ScopeChecker.valid?("scope\nanother", server_scopes)).to be_falsey
    end

    it 'is invalid if any scope is not included in server scopes' do
      expect(ScopeChecker.valid?('scope another', server_scopes)).to be_falsey
    end

    context 'with application_scopes' do
      let(:server_scopes) do
        Doorkeeper::OAuth::Scopes.from_string 'common svr'
      end
      let(:application_scopes) do
        Doorkeeper::OAuth::Scopes.from_string 'app123'
      end

      it 'is valid if scope is included in the application scope list' do
        expect(ScopeChecker.valid?(
          'app123',
          server_scopes,
          application_scopes
        )).to be_truthy
      end

      it 'is invalid if any scope is not included in the application' do
        expect(ScopeChecker.valid?(
          'svr',
          server_scopes,
          application_scopes
        )).to be_falsey
      end
    end
  end
end

Version data entries

31 entries across 31 versions & 3 rubygems

Version Path
doorkeeper-mongodb-4.2.0 spec/lib/oauth/helpers/scope_checker_spec.rb
doorkeeper-sequel-1.5.0 spec/lib/oauth/helpers/scope_checker_spec.rb
doorkeeper-4.4.3 spec/lib/oauth/helpers/scope_checker_spec.rb
doorkeeper-4.4.2 spec/lib/oauth/helpers/scope_checker_spec.rb
doorkeeper-4.4.1 spec/lib/oauth/helpers/scope_checker_spec.rb
doorkeeper-4.4.0 spec/lib/oauth/helpers/scope_checker_spec.rb
doorkeeper-mongodb-4.1.0 spec/lib/oauth/helpers/scope_checker_spec.rb
doorkeeper-4.3.2 spec/lib/oauth/helpers/scope_checker_spec.rb
doorkeeper-4.3.1 spec/lib/oauth/helpers/scope_checker_spec.rb
doorkeeper-4.3.0 spec/lib/oauth/helpers/scope_checker_spec.rb
doorkeeper-sequel-1.4.0 spec/lib/oauth/helpers/scope_checker_spec.rb
doorkeeper-mongodb-4.0.1 spec/lib/oauth/helpers/scope_checker_spec.rb
doorkeeper-mongodb-4.0.0 spec/lib/oauth/helpers/scope_checker_spec.rb
doorkeeper-sequel-1.3.1 spec/lib/oauth/helpers/scope_checker_spec.rb
doorkeeper-sequel-1.3.0 spec/lib/oauth/helpers/scope_checker_spec.rb
doorkeeper-sequel-1.2.3 spec/lib/oauth/helpers/scope_checker_spec.rb
doorkeeper-sequel-1.2.2 spec/lib/oauth/helpers/scope_checker_spec.rb
doorkeeper-4.2.6 spec/lib/oauth/helpers/scope_checker_spec.rb
doorkeeper-4.2.5 spec/lib/oauth/helpers/scope_checker_spec.rb
doorkeeper-sequel-1.2.1 spec/lib/oauth/helpers/scope_checker_spec.rb