Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

57 lines (49 sloc) 1.606 kb
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
Jump to Line
Something went wrong with that request. Please try again.