Sha256: 99cedc71565ceb2c324a8d4a06d8c9be3737363bf7eff25308e552bf7c36b9ee

Contents?: true

Size: 1.79 KB

Versions: 4

Compression:

Stored size: 1.79 KB

Contents

require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
require "active_fedora"

describe User do
  
  describe "superuser" do
    before(:each) do
      @user = User.create(:email=> "testuser@example.com", :password=> "password", :password_confirmation => "password")
    end
    it "should know if a user can be a superuser" do
      superuser = Superuser.new()
      superuser.id = 20
      superuser.user_id = @user.id
      superuser.save!
      @user.extend(Hydra::SuperuserAttributes)
      @user.can_be_superuser?.should be_true
    end

    it "should know if a user shouldn't be a superuser" do
      @user.extend(Hydra::SuperuserAttributes)
      @user.can_be_superuser?.should be_false
    end

    it "should know if the user is being a superuser" do
      superuser = Superuser.new()
      superuser.id = 50
      superuser.user_id = @user.id
      superuser.save!
      @user.extend(Hydra::SuperuserAttributes)
      session = { :superuser_mode => true }
      @user.is_being_superuser?(session).should be_true
    end

    it "should not let a non-superuser be a superuser" do
      @user.extend(Hydra::SuperuserAttributes)
      session = {}
      @user.is_being_superuser?(session).should be_false
    end

    it "should know if the user is not being a superuser even if the user can be a superuser" do
      superuser = Superuser.new()
      superuser.id = 60
      superuser.user_id = @user.id
      superuser.save!
      @user.extend(Hydra::SuperuserAttributes)
      @user.can_be_superuser?.should be_true
      session = {}
      @user.is_being_superuser?(session).should be_false
    end
  end
end

module UserTestAttributes
  ['first_name','last_name','full_name','affiliation','photo'].each do |attr|
    class_eval <<-EOM
      def #{attr}
        "test_#{attr}"
      end
    EOM
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
hydra-head-4.0.1 test_support/spec/models/user_spec.rb
hydra-head-4.0.0 test_support/spec/models/user_spec.rb
hydra-head-4.0.0.rc6 test_support/spec/models/user_spec.rb
hydra-head-4.0.0.rc5 test_support/spec/models/user_spec.rb