diff options
author | José Valim and Mikel Lindsaar <pair@programming.com> | 2010-01-23 10:23:06 +0100 |
---|---|---|
committer | José Valim and Mikel Lindsaar <pair@programming.com> | 2010-01-23 10:23:06 +0100 |
commit | ddfc0725a062880131745a1c529e94541d4c9ee0 (patch) | |
tree | afe137e595afea7830bb233eb777e72353c9a3ac /actionpack/test/abstract | |
parent | 1ea84c38ea5b40642f3dcdb5ffca1c6fc9cc604d (diff) | |
download | rails-ddfc0725a062880131745a1c529e94541d4c9ee0.tar.gz rails-ddfc0725a062880131745a1c529e94541d4c9ee0.tar.bz2 rails-ddfc0725a062880131745a1c529e94541d4c9ee0.zip |
Added AbstractController::Collector.
Diffstat (limited to 'actionpack/test/abstract')
-rw-r--r-- | actionpack/test/abstract/collector_test.rb | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/actionpack/test/abstract/collector_test.rb b/actionpack/test/abstract/collector_test.rb new file mode 100644 index 0000000000..2ebcebbbb7 --- /dev/null +++ b/actionpack/test/abstract/collector_test.rb @@ -0,0 +1,57 @@ +require 'abstract_unit' + +module AbstractController + module Testing + class MyCollector + include Collector + attr_accessor :responses + + def initialize + @responses = [] + end + + def custom(mime, *args, &block) + @responses << [mime, args, block] + end + end + + class TestCollector < ActiveSupport::TestCase + test "responds to default mime types" do + collector = MyCollector.new + assert_respond_to collector, :html + assert_respond_to collector, :text + end + + test "does not respond to unknown mime types" do + collector = MyCollector.new + assert !collector.respond_to?(:unknown) + end + + test "register mime types on method missing" do + AbstractController::Collector.send(:remove_method, :js) + collector = MyCollector.new + assert !collector.respond_to?(:js) + collector.js + assert_respond_to collector, :js + end + + test "does not register unknown mime types" do + collector = MyCollector.new + assert_raise NameError do + collector.unknown + end + end + + test "generated methods call custom with args received" do + collector = MyCollector.new + collector.html + collector.text(:foo) + collector.js(:bar) { :baz } + assert_equal [Mime::HTML, [], nil], collector.responses[0] + assert_equal [Mime::TEXT, [:foo], nil], collector.responses[1] + assert_equal [Mime::JS, [:bar]], collector.responses[2][0,2] + assert_equal :baz, collector.responses[2][2].call + end + end + end +end
\ No newline at end of file |