Sha256: eb41fe705db5cc12213ff8c27fce4772a37cee70f0b751fb346ad39175f1b278

Contents?: true

Size: 1.29 KB

Versions: 5

Compression:

Stored size: 1.29 KB

Contents

#          Copyright (c) 2006 Michael Fellinger m.fellinger@gmail.com
# All files in this distribution are subject to the terms of the Ruby license.

require 'spec/helper'

class TCStackHelperController < Ramaze::Controller
  map :/
  helper :stack, :aspect

  def index
    session.inspect
  end

  def foo
    call Rs(:login) unless logged_in?
    "logged in"
  end

  def bar
    call Rs(:login) unless logged_in?
    request.params.inspect
  end

  def secure
    logged_in? ? 'secret content' : 'please login'
  end

  def login
    session[:logged_in] = true
    answer
  end

  def logout
    session.clear
  end

  private

  def logged_in?
    session[:logged_in]
  end
end

describe "StackHelper" do
  ramaze(:adapter => :webrick)

  it "conventional login" do
    browser do
      get('/secure').should == 'please login'
      get('/login')
      get('/secure').should == 'secret content'
      get('/logout')
    end
  end

  it "indirect login" do
    browser do
      get('/foo').should == 'logged in'
      get('/foo').should == 'logged in'
      eget('/').should == {:logged_in => true, :STACK => []}
    end
  end

  it "indirect login with params" do
    browser do
      eget('/bar', 'x' => 'y').should == {'x' => 'y'}
      eget('/').should == {:logged_in => true, :STACK => []}
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
ramaze-0.1.3 spec/ramaze/helper/stack.rb
ramaze-0.1.1 spec/ramaze/helper/stack.rb
ramaze-0.1.0 spec/ramaze/helper/stack.rb
ramaze-0.1.2 spec/ramaze/helper/stack.rb
ramaze-0.1.4 spec/ramaze/helper/stack.rb