Sha256: ceda4e6686404311adcad87214c7667999f3abb85915f143b72e13d8f2b8bd84

Contents?: true

Size: 1.57 KB

Versions: 6

Compression:

Stored size: 1.57 KB

Contents

require "authlogic/test_case"
class ForumReadersDataset < Dataset::Base
  datasets = [:users]
  datasets << :forum_sites if defined? Site
  uses *datasets

  def load
    create_reader "Normal"
    create_reader "Idle"
    create_reader "Activated"
    create_reader "User", :user_id => user_id(:existing)
    create_reader "Admin", :user_id => user_id(:admin)
    create_reader "Inactive", :activated_at => nil
  end
  
  helpers do
    def create_reader(name, attributes={})
      attributes = reader_attributes(attributes.update(:name => name))
      reader = create_model Reader, name.symbolize, attributes
    end
    
    def reader_attributes(attributes={})
      name = attributes[:name] || "John Doe"
      symbol = name.symbolize
      attributes = { 
        :name => name,
        :email => "#{symbol}@spanner.org", 
        :password => "password", 
        :password_confirmation => "password",
        :activated_at => Time.now.utc
      }.merge(attributes)
      attributes[:site_id] ||= site_id(:test) if Reader.reflect_on_association(:site)
      attributes
    end
    
    def reader_params(attributes={})
      password = attributes[:password] || "password"
      reader_attributes(attributes).update(:password => password, :password_confirmation => password)
    end
    
    def login_as_reader(reader)
      activate_authlogic
      login_reader = reader.is_a?(Reader) ? reader : readers(reader)
      ReaderSession.create(login_reader)
      login_reader
    end
    
    def logout_reader
      if session = ReaderSession.find
        session.destroy
      end
    end
  end
 
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
radiant-forum-extension-1.2.1 spec/datasets/forum_readers_dataset.rb
radiant-forum-extension-1.1.2 spec/datasets/forum_readers_dataset.rb
radiant-forum-extension-1.1.1 spec/datasets/forum_readers_dataset.rb
radiant-forum-extension-1.1.0 spec/datasets/forum_readers_dataset.rb
radiant-forum-extension-0.6.1 spec/datasets/forum_readers_dataset.rb
radiant-forum-extension-0.6.0 spec/datasets/forum_readers_dataset.rb