test/rails/controller_methods_test.rb in apotomo-1.2.3 vs test/rails/controller_methods_test.rb in apotomo-1.2.4
- old
+ new
@@ -1,134 +1,140 @@
require 'test_helper'
-
-class ControllerMethodsTest < ActionController::TestCase
+
+class ControllerMethodsTest < MiniTest::Spec
include Apotomo::TestCaseMethods::TestController
-
- context "A Rails controller" do
- context "responding to #apotomo_root" do
- should "initially return a root widget" do
+
+ describe "A Rails controller" do
+ describe "responding to #apotomo_root" do
+ it "initially return a root widget" do
assert_equal 1, @controller.apotomo_root.size
end
-
- should "allow tree modifications" do
+
+ it "allow tree modifications" do
@controller.apotomo_root << mouse_mock
assert_equal 2, @controller.apotomo_root.size
end
end
-
- context "responding to #apotomo_request_processor" do
- should "initially return the processor which has an empty root" do
+
+ describe "responding to #apotomo_request_processor" do
+ it "initially return the processor which has an empty root" do
assert_kind_of Apotomo::RequestProcessor, @controller.apotomo_request_processor
assert_equal 1, @controller.apotomo_request_processor.root.size
end
end
-
- context "invoking #has_widgets" do
- setup do
+
+ describe "invoking #has_widgets" do
+ before do
@controller.class.has_widgets do |root|
root << widget(:mouse, 'mum')
end
end
-
- should "add the widgets to apotomo_root" do
+
+ it "add the widgets to apotomo_root" do
assert_equal 'mum', @controller.apotomo_root['mum'].name
end
-
- should "add the widgets only once in apotomo_root" do
+
+ it "add the widgets only once in apotomo_root" do
@controller.apotomo_root
assert @controller.apotomo_root['mum']
end
-
- should "allow multiple calls to has_widgets" do
+
+ it "allow multiple calls to has_widgets" do
@controller.class.has_widgets do |root|
root << widget(:mouse, 'kid')
end
-
+
assert @controller.apotomo_root['mum']
assert @controller.apotomo_root['kid']
end
-
- should "inherit has_widgets blocks to sub-controllers" do
+
+ it "inherit has_widgets blocks to sub-controllers" do
berry = widget(:mouse, 'berry')
@sub_controller = Class.new(@controller.class) do
has_widgets { |root| root << berry }
end.new
@sub_controller.params = {}
-
+
assert @sub_controller.apotomo_root['mum']
assert @sub_controller.apotomo_root['berry']
end
-
- should "be executed in controller context" do
+
+ it "be executed in controller describe" do
@controller.instance_eval do
def roomies; ['mice', 'cows']; end
end
-
+
@controller.class.has_widgets do |root|
root << widget(:mouse, 'kid', :display, :roomies => roomies)
end
-
+
assert_equal ['mice', 'cows'], @controller.apotomo_root['kid'].options[:roomies]
end
end
-
-
-
- context "invoking #url_for_event" do
- should "compute an url for any widget" do
+
+
+
+ describe "invoking #url_for_event" do
+ it "compute an url for any widget" do
assert_equal "/barn/render_event_response?source=mouse&type=footsteps&volume=9", @controller.url_for_event(:footsteps, :source => :mouse, :volume => 9)
end
end
end
-
- context "invoking #render_widget" do
- setup do
+
+ describe "invoking #render_widget" do
+ before do
@mum = mouse_mock('mum', 'eating')
end
-
- should "render the widget" do
+
+ it "render the widget" do
@controller.apotomo_root << @mum
assert_equal "<div id=\"mum\">burp!</div>\n", @controller.render_widget('mum', :eat)
end
end
-
-
- context "processing an event request" do
- setup do
- @mum = mouse_mock('mum', :eating)
- @mum << @kid = mouse_mock('kid', :squeak)
-
+
+
+ describe "processing an event request" do
+ before do
+ @mum = mouse
+ @mum << mouse_mock(:kid)
+ @kid = @mum[:kid]
+
@kid.respond_to_event :doorSlam, :with => :eating, :on => 'mum'
@kid.respond_to_event :doorSlam, :with => :squeak
@mum.respond_to_event :doorSlam, :with => :squeak
-
+
@mum.instance_eval do
def squeak; render :js => 'squeak();'; end
end
@kid.instance_eval do
def squeak; render :text => 'squeak!', :update => :true; end
end
end
-
+
### DISCUSS: needed?
- context "in event mode" do
- should_eventually "set the MIME type to text/javascript" do
+ ### FIXME: could somebody get that working?
+ describe "in event mode" do
+ it "set the MIME type to text/javascript" do
+ skip
+
@controller.apotomo_root << @mum
-
+
get :render_event_response, :source => :kid, :type => :doorSlam
-
+
assert_equal Mime::JS, @response.content_type
- assert_equal "$(\"mum\").replace(\"<div id=\\\"mum\\\">burp!<\\/div>\")\n$(\"kid\").update(\"squeak!\")\nsqueak();", @response.body
+ assert_equal "jQuery(\"mum\").replace(\"<div id=\\\"mum\\\">burp!<\\/div>\")\njQuery(\"kid\").update(\"squeak!\")\nsqueak();", @response.body
end
end
end
-
+
### FIXME: could somebody get that working?
- context "Routing" do
- should_eventually "generate routes to the render_event_response action" do
+ describe "Routing" do
+ it "generate routes to the render_event_response action" do
+ skip
+
assert_generates "/barn/render_event_response?type=squeak", { :controller => "barn", :action => "render_event_response", :type => "squeak" }
-
+
assert_recognizes({ :controller => "apotomo", :action => "render_event_response", :type => "squeak" }, "/apotomo/render_event_response?type=squeak")
end
end
-
+
end