/* * Copyright (C) 2010 Canonical Ltd * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * Authored by * Mikkel Kamstrup Erlandsen * */ #include "config.h" #include #include #include #include static void row_added (DeeModel *model, DeeModelIter *iter, gpointer data) { gint *num_added = (gint*) data; (*num_added)++; } /* Expects a clone with 3 rows in it */ gint main (gint argc, gchar *argv[]) { DeeModel *model; DeeModelIter *iter; gint num_added; #if !GLIB_CHECK_VERSION(2, 35, 1) g_type_init (); #endif g_set_prgname ("model-helper"); if (argc == 2) model = dee_shared_model_new (argv[1]); else model = dee_shared_model_new_for_peer ((DeePeer*) dee_client_new (argv[1])); num_added = 0; g_signal_connect (model, "row-added", G_CALLBACK (row_added), &num_added); if (gtx_wait_for_signal (G_OBJECT (model), 100000, "notify::synchronized", NULL)) g_error ("Helper model timed out waiting for 'ready' signal"); g_assert_cmpint (dee_model_get_n_rows (model), ==, 3); iter = dee_model_get_iter_at_row (model, 0); g_assert_cmpint (dee_model_get_int32 (model, iter, 0), == , 0); g_assert_cmpstr (dee_model_get_string (model, iter, 1), == , "zero"); iter = dee_model_get_iter_at_row (model, 1); g_assert_cmpint (dee_model_get_int32 (model, iter, 0), == , 1); g_assert_cmpstr (dee_model_get_string (model, iter, 1), == , "one"); iter = dee_model_get_iter_at_row (model, 2); g_assert_cmpint (dee_model_get_int32 (model, iter, 0), == , 2); g_assert_cmpstr (dee_model_get_string (model, iter, 1), == , "two"); gtx_assert_last_unref (model); g_assert_cmpint (num_added, ==, 3); return 0; }