test/event_methods_test.rb in apotomo-1.2.3 vs test/event_methods_test.rb in apotomo-1.2.4
- old
+ new
@@ -1,152 +1,152 @@
require 'test_helper'
-
-class EventMethodsTest < Test::Unit::TestCase
+
+class EventMethodsTest < MiniTest::Spec
include Apotomo::TestCaseMethods::TestController
-
+
def handler(id, state)
Apotomo::InvokeEventHandler.new(:widget_id => id, :state => state)
end
-
-
- context "#respond_to_event and #fire" do
- setup do
+
+
+ describe "#respond_to_event and #fire" do
+ before do
mum_and_kid!
end
-
- should "alert @mum first, then make her squeak when @kid squeaks" do
+
+ it "alert @mum first, then make her squeak when @kid squeaks" do
@kid.fire :squeak
assert_equal ['be alerted', 'answer squeak'], @mum.list
end
-
- should "make @mum just squeak back when jerry squeaks" do
+
+ it "make @mum just squeak back when jerry squeaks" do
@mum << mouse_mock(:jerry)
@mum[:jerry].fire :squeak
assert_equal ['answer squeak'], @mum.list
end
-
-
- should "make @mum run away while @kid keeps watching" do
+
+
+ it "make @mum run away while @kid keeps watching" do
@kid.fire :footsteps
assert_equal ['peek', 'escape'], @mum.list
end
-
- should "by default add a handler only once" do
+
+ it "by default add a handler only once" do
@mum.respond_to_event :peep, :with => :answer_squeak
@mum.respond_to_event :peep, :with => :answer_squeak
@mum.fire :peep
assert_equal ['answer squeak'], @mum.list
end
-
- should "squeak back twice when using the :once => false option" do
+
+ it "squeak back twice when using the :once => false option" do
@mum.respond_to_event :peep, :with => :answer_squeak
@mum.respond_to_event :peep, :with => :answer_squeak, :once => false
@mum.fire :peep
assert_equal ['answer squeak', 'answer squeak'], @mum.list
end
-
- should "also accept an event argument only" do
+
+ it "also accept an event argument only" do
@mum.respond_to_event :answer_squeak
@mum.fire :answer_squeak
assert_equal ['answer squeak'], @mum.list
- end
-
- should "make pass the event into the triggered state" do
+ end
+
+ it "make pass the event into the triggered state" do
@mum.instance_eval do
respond_to_event :footsteps
-
+
def footsteps(evt)
list << evt
end
end
-
+
@mum.trigger :footsteps, "near"
assert_kind_of Apotomo::Event, @mum.list.last
end
-
- should "accept payload data for the event" do
+
+ it "accept payload data for the event" do
@mum.respond_to_event :answer_squeak
@mum.instance_eval do
def answer_squeak(evt)
list << evt.data
end
end
-
+
@mum.fire :answer_squeak, :volume => 9
assert_equal [{:volume => 9}], @mum.list
end
-
-
- context "#responds_to_event with :passing" do
- setup do
+
+
+ describe "#responds_to_event with :passing" do
+ before do
class AdolescentMouse < MouseWidget
responds_to_event :squeak, :passing => :root
end
-
+
@root = mouse(:root)
end
-
- should "add handlers to root when called with :passing" do
+
+ it "add handlers to root when called with :passing" do
AdolescentMouse.new(@root, 'jerry')
-
+
assert_equal [handler('jerry', :squeak)], @root.event_table.all_handlers_for(:squeak, 'jerry')
end
-
- should "inherit :passing handlers" do
+
+ it "inherit :passing handlers" do
Class.new(AdolescentMouse).new(@root, 'jerry')
-
+
assert_equal [handler('jerry', :squeak)], @root.event_table.all_handlers_for(:squeak, 'jerry')
end
-
+
end
-
- context "#responds_to_event in class context" do
+
+ describe "#responds_to_event in class context" do
class AdultMouse < Apotomo::Widget
responds_to_event :peep, :with => :answer_squeak
end
class BabyMouse < AdultMouse
responds_to_event :peep
responds_to_event :footsteps, :with => :squeak
end
-
- setup do
+
+ before do
@mum = AdultMouse.new(parent_controller, 'mum')
end
-
- should "add the handlers at creation time" do
+
+ it "add the handlers at creation time" do
assert_equal [handler('mum', :answer_squeak)], @mum.event_table.all_handlers_for(:peep, 'mum')
end
-
- should "inherit handlers" do
+
+ it "inherit handlers" do
assert_equal [[:peep, {:with=>:answer_squeak}]], AdultMouse.responds_to_event_options
assert_equal [[:peep, {:with=>:answer_squeak}], [:peep], [:footsteps, {:with=>:squeak}]], BabyMouse.responds_to_event_options
end
-
- should "not share responds_to_event options between different instances" do
+
+ it "not share responds_to_event options between different instances" do
assert_equal [handler('mum', :answer_squeak)], @mum.event_table.all_handlers_for(:peep, 'mum')
-
+
assert_equal [handler('dad', :answer_squeak)], AdultMouse.new(parent_controller, 'dad', :show).event_table.all_handlers_for(:peep, 'dad')
end
end
-
- context "#trigger" do
- should "be an alias for #fire" do
+
+ describe "#trigger" do
+ it "be an alias for #fire" do
@kid.trigger :footsteps
assert_equal ['peek', 'escape'], @mum.list
end
end
-
-
- context "page_updates" do
- should "expose a simple Array for now" do
+
+
+ describe "page_updates" do
+ it "expose a simple Array for now" do
assert_kind_of Array, @mum.page_updates
assert_equal 0, @mum.page_updates.size
end
-
- should "be queued in root#page_updates after #fire" do
+
+ it "be queued in root#page_updates after #fire" do
@mum.fire :footsteps
assert_equal ["escape"], @mum.page_updates
end
end
-
- end
+
+ end
end