[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