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