require "#{File.dirname(__FILE__)}/../test_helper"

class ReportViewerTest < ActionController::IntegrationTest
  fixtures :users

  def test_user_authenticates_to_view_report

    get "/reports/show_sales"
    assert_response :redirect
    assert_equal "You must be logged in.", flash[:notice]

    follow_redirect!

    assert_template "login/index"
    assert_equal "/reports/show_sales", session["initial_uri"]
 
    log_in_user(:sara)
    assert session["user_id"]

    assert_template session["initial_uri"].sub!('/','')

    log_out_user
    assert_nil session["user_id"]
  end

  private 
    def log_in_user(user)
      post "/login", :user => { "username" => users(user).username,
                                "password" => users(user).password }
      assert_response :redirect
      follow_redirect!
      assert_response :success
    end

    def log_out_user
      post "/logout"
      assert_response :redirect
      follow_redirect!
      assert_response :success
    end
end