rails_info_controller_test.rb 1.4 KB
Newer Older
1
require 'abstract_unit'
2 3
require 'action_controller'

J
Jeremy Kemper 已提交
4 5 6
require 'rails/info'
require 'rails/info_controller'

7 8 9 10 11 12
module ActionController
  class Base
    include ActionController::Testing
  end
end

13 14 15
class InfoControllerTest < ActionController::TestCase
  tests Rails::InfoController

16
  def setup
17
    Rails.application.routes.draw do |map|
18
      match ':controller/:action'
19
    end
20
    @controller.stubs(:consider_all_requests_local? => false, :local_request? => true)
C
Carlhuda 已提交
21 22
    @router = Rails.application.routes

23
    Rails::InfoController.send(:include, @router.url_helpers)
24 25 26
  end

  test "info controller does not allow remote requests" do
27
    @controller.stubs(:consider_all_requests_local? => false, :local_request? => false)
28 29 30
    get :properties
    assert_response :forbidden
  end
31

32
  test "info controller renders an error message when request was forbidden" do
33
    @controller.stubs(:consider_all_requests_local? => false, :local_request? => false)
34 35 36 37 38
    get :properties
    assert_select 'p'
  end

  test "info controller allows requests when all requests are considered local" do
39
    @controller.stubs(:consider_all_requests_local? => true, :local_request? => false)
40 41
    get :properties
    assert_response :success
42 43
  end

44
  test "info controller allows local requests" do
45 46 47
    get :properties
    assert_response :success
  end
48

49
  test "info controller renders a table with properties" do
50
    get :properties
51
    assert_select 'table'
52 53
  end
end