/* * Copyright 2013 (c) Anna Schumaker. */ #include #include #include static unsigned int i; void schedule_test(bool (*func)()) { i = 0; Glib::signal_timeout().connect(sigc::ptr_fun(func), 500); } void end_test() { Gtk::Main::quit(); } void click_button(const std::string &name) { print("Clicking button: %s\n", name.c_str()); get_button(name)->clicked(); } void select_treeview_row(const std::string &tv_name, const std::string &path) { Gtk::TreeView *treeview; get_builder()->get_widget(tv_name, treeview); treeview->set_cursor(Gtk::TreePath(path)); } void activate_treeview_row(const std::string &tv_name, const std::string &path) { Gtk::TreeView *treeview; Gtk::TreeViewColumn col("2"); get_builder()->get_widget(tv_name, treeview); treeview->row_activated(Gtk::TreePath(path), col); } /* Collection manager tests */ bool test_0() { switch (i) { case 0: print("Test 0\n"); click_button("o_collection_import"); break; case 1: case 4: case 6: /* Wait for idle queue to finish */ if (idle::get_progress() == 1) break; return true; case 2: /* Select filepath */ Gtk::FileChooserWidget *chooser; get_builder()->get_widget("o_collection_chooser", chooser); chooser->set_filename("/tmp/library/0"); break; case 3: click_button("o_collection_ok"); break; case 5: click_button("o_collection_update"); break; case 7: select_treeview_row("o_collection_treeview", "0"); activate_treeview_row("o_collection_treeview", "0"); break; case 8: select_treeview_row("o_collection_treeview", "1"); activate_treeview_row("o_collection_treeview", "1"); break; case 9: select_treeview_row("o_collection_treeview", "2"); activate_treeview_row("o_collection_treeview", "2"); break; case 10: case 12: on_collection_toggled("0"); break; case 11: case 13: on_collection_toggled("2"); break; case 14: select_treeview_row("o_collection_treeview", "1"); break; case 15: do_collection_delete(); break; case 16: select_treeview_row("o_collection_treeview", "2"); break; case 17: do_collection_delete(); break; case 18: click_button("o_collection_import"); break; case 19: break; default: end_test(); return false; } i++; return true; } int main(int argc, char **argv) { Gtk::Window *window; Gtk::Main ocarina(argc, argv); window = connect_wires(); schedule_test(test_0); Gtk::Main::run(*window); return 0; }