summaryrefslogtreecommitdiffstats
path: root/vendor/plugins/engines/test/lib/engines_test_helper.rb
blob: 47bd2bbfd189983b98dd5ec31da334fcc2d5bc59 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
module TestHelper
  def self.report_location(path)
    [RAILS_ROOT + '/', 'vendor/plugins/'].each { |part| path.sub! part, ''}
    path = path.split('/')
    location, subject = path.first, path.last
    if subject.sub! '.rb', ''
      subject = subject.classify
    else 
      subject.sub! '.html.erb', ''
    end
    "#{subject} (from #{location})"
  end
  
  def self.view_path_for path
    [RAILS_ROOT + '/', 'vendor/plugins/', '.html.erb'].each { |part| path.sub! part, ''}
    parts = path.split('/')
    parts[(parts.index('views')+1)..-1].join('/')
  end
end

class Test::Unit::TestCase
  # Add more helper methods to be used by all tests here...  
  def get_action_on_controller(*args)
    action = args.shift
    with_controller *args
    get action
  end
  
  def with_controller(controller, namespace = nil)
    classname = controller.to_s.classify + 'Controller'
    classname = namespace.to_s.classify + '::' + classname unless namespace.nil?
    @controller = classname.constantize.new
  end
  
  def assert_response_body(expected)
    assert_equal expected, @response.body
  end
end

# Because we're testing this behaviour, we actually want these features on!
Engines.disable_application_view_loading = false
Engines.disable_application_code_loading = false