diff options
Diffstat (limited to 'actionpack/test/new_base/test_helper.rb')
-rw-r--r-- | actionpack/test/new_base/test_helper.rb | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/actionpack/test/new_base/test_helper.rb b/actionpack/test/new_base/test_helper.rb new file mode 100644 index 0000000000..7a1adc3755 --- /dev/null +++ b/actionpack/test/new_base/test_helper.rb @@ -0,0 +1,133 @@ +$:.unshift(File.dirname(__FILE__) + '/../../lib') +$:.unshift(File.dirname(__FILE__) + '/../../../activesupport/lib') + +require 'test/unit' +require 'active_support' +require 'active_support/test_case' +require 'action_controller' +require 'action_view/base' + +begin + require 'ruby-debug' + Debugger.settings[:autoeval] = true + Debugger.start +rescue LoadError + # Debugging disabled. `gem install ruby-debug` to enable. +end + +require 'action_controller/abstract' +require 'action_controller/new_base' +require 'pp' # require 'pp' early to prevent hidden_methods from not picking up the pretty-print methods until too late + +require 'rubygems' +require 'rack/test' + +module ActionController + class Base2 < AbstractBase + include AbstractController::Callbacks + include AbstractController::Renderer + include AbstractController::Helpers + include AbstractController::Layouts + include AbstractController::Logger + + include ActionController::HideActions + include ActionController::UrlFor + include ActionController::Renderer + + def self.inherited(klass) + @subclasses ||= [] + @subclasses << klass.to_s + end + + def self.subclasses + @subclasses + end + + append_view_path File.join(File.dirname(__FILE__), '..', 'fixtures') + + CORE_METHODS = self.public_instance_methods + end +end + +# Temporary base class +class Rack::TestCase < ActiveSupport::TestCase + include Rack::Test::Methods + + setup do + ActionController::Base.session_options[:key] = "abc" + ActionController::Base.session_options[:secret] = ("*" * 30) + + controllers = ActionController::Base2.subclasses.map do |k| + k.underscore.sub(/_controller$/, '') + end + + ActionController::Routing.use_controllers!(controllers) + end + + def self.describe(text) + class_eval <<-RUBY_EVAL + def self.name + "#{text}" + end + RUBY_EVAL + end + + def app + @app ||= ActionController::Dispatcher.new + end + + def self.get(url) + setup do |test| + test.get url + end + end + + def assert_body(body) + assert_equal [body], last_response.body + end + + def self.assert_body(body) + test "body is set to '#{body}'" do + assert_body body + end + end + + def assert_status(code) + assert_equal code, last_response.status + end + + def self.assert_status(code) + test "status code is set to #{code}" do + assert_status code + end + end + + def assert_content_type(type) + assert_equal type, last_response.headers["Content-Type"] + end + + def self.assert_content_type(type) + test "content type is set to #{type}" do + assert_content_type(type) + end + end + + def assert_header(name, value) + assert_equal value, last_response.headers[name] + end + + def self.assert_header(name, value) + test "'#{name}' header is set to #{value.inspect}" do + assert_header(name, value) + end + end + +end + +class SimpleRouteCase < Rack::TestCase + setup do + ActionController::Routing::Routes.draw do |map| + map.connect ':controller/:action/:id' + end + end +end
\ No newline at end of file |