[MacRuby-devel] My MiniTest extensions for macruby

Ryan Davis ryand-ruby at zenspider.com
Wed Jun 23 12:21:03 PDT 2010


> class MiniTest::Unit
>   def self.run_macruby_tests
> 
> module MiniTest::Assertions
>   def find_ui_menu(*path)
>   def find_ui_menu_items menu
>   def assert_ui_menu menu, *items
>   def find_ui_menu_item(*path)
>   def assert_ui_action obj, target, action, key = nil
>   def assert_ui_binding item, binding_name, target, path

Allowing me to write tests like:

>   def test_ui_wirings
>     app = NSApplication.sharedApplication
>     delegate = app.delegate
> 
>     assert_kind_of AppController,    delegate
>     assert_kind_of NSWindow,         delegate.window
>     assert_kind_of NSOutlineView,    delegate.sidebar
>     assert_kind_of NSTextField,      delegate.label
>     assert_kind_of NSCollectionView, delegate.files
> 
>     assert_ui_menu("File",
>                    "Restart Triage",
>                    "Empty Triage",
>                    "Update",
>                    "",
>                    "Reveal",
>                    "Group",
>                    "Ungroup",
>                    "Move to Triage",
>                    "Move to Trash")
> 
>     has_selection = "sidebar.numberOfSelectedRows"
> 
>     restart, empty, update, _, reveal, group, ungroup, triage, trash =
>       find_ui_menu_items "File"
> 
>     assert_ui_action restart, delegate, "restart:", ""
> 
>     assert_ui_action empty, delegate, "empty:"
> 
>     assert_ui_action update, delegate, "update:", "u"
> 
>     assert_ui_action  reveal, delegate, "reveal:", "r"
>     assert_ui_binding reveal, :enabled, delegate, has_selection
> 
>     assert_ui_action  triage, delegate, "triage:", "t"
>     assert_ui_binding triage, :enabled, delegate, has_selection
> 
>     assert_ui_action group, delegate, "group:"
>     assert_ui_binding group,  :enabled, delegate, has_selection
> 
>     # TODO: make it properly toggle later
>     assert_ui_action ungroup, delegate, "ungroup:"
>     assert_ui_binding ungroup, :enabled, delegate, has_selection
> 
>     assert_ui_action  trash, delegate, "trash:"
>     assert_ui_binding trash,  :enabled, delegate, has_selection
>   end
> 


More information about the MacRuby-devel mailing list