78
89
setup, test_any, teardown);
79
90
g_test_add (DOMAIN"/Regex", FilterFixture, 0,
80
91
setup, test_regex, teardown);
92
g_test_add (DOMAIN"/Changesets", FilterFixture, 0,
93
setup_empty, test_changesets, teardown);
84
setup (FilterFixture *fix, gconstpointer data)
97
setup_empty (FilterFixture *fix, gconstpointer data)
86
99
fix->model = dee_sequence_model_new ();
87
100
dee_model_set_schema (fix->model, "i", "s", NULL);
89
dee_model_append (fix->model, 0, "Zero");
90
dee_model_append (fix->model, 1, "One");
91
dee_model_append (fix->model, 2, "Two");
93
102
g_assert (DEE_IS_SEQUENCE_MODEL (fix->model));
106
add_3rows(DeeModel *model)
108
dee_model_append (model, 0, "Zero");
109
dee_model_append (model, 1, "One");
110
dee_model_append (model, 2, "Two");
114
setup (FilterFixture *fix, gconstpointer data)
116
setup_empty (fix, data);
117
add_3rows (fix->model);
97
121
teardown (FilterFixture *fix, gconstpointer data)
99
123
g_object_unref (fix->model);
282
306
g_assert_cmpint (27, ==, dee_model_get_int32 (fix->model, iter, 0));
283
307
g_assert_cmpstr ("TwentySeven", ==, dee_model_get_string (m, iter, 1));
284
308
g_assert_cmpstr ("TwentySeven", ==, dee_model_get_string (fix->model, iter, 1));
310
/* And append two more rows to the filtered model, to ensure the order */
311
dee_model_prepend (m, -1, "MinusOne");
312
dee_model_append (m, 39, "ThirtyNine");
313
g_assert_cmpint (3, ==, filter_add_count);
314
g_assert_cmpint (5, ==, orig_add_count);
315
g_assert_cmpint (3, ==, dee_model_get_n_rows (m));
316
g_assert_cmpint (8, ==, dee_model_get_n_rows (fix->model));
317
g_assert_cmpuint (3, ==, dee_serializable_model_get_seqnum (m));
318
iter = dee_model_prev (m, dee_model_get_last_iter (m));
319
g_assert_cmpint (39, ==, dee_model_get_int32 (m, iter, 0));
320
g_assert_cmpstr ("ThirtyNine", ==, dee_model_get_string (m, iter, 1));
321
iter = dee_model_prev (m, iter);
322
g_assert_cmpint (27, ==, dee_model_get_int32 (m, iter, 0));
323
g_assert_cmpstr ("TwentySeven", ==, dee_model_get_string (m, iter, 1));
324
iter = dee_model_prev (m, iter);
325
g_assert_cmpint (-1, ==, dee_model_get_int32 (m, iter, 0));
326
g_assert_cmpstr ("MinusOne", ==, dee_model_get_string (m, iter, 1));
327
iter = dee_model_prev (fix->model, dee_model_get_last_iter (fix->model));
328
g_assert_cmpint (39, ==, dee_model_get_int32 (fix->model, iter, 0));
329
g_assert_cmpstr ("ThirtyNine", ==, dee_model_get_string (fix->model, iter, 1));
286
331
g_object_unref (m);
616
661
_test_orig_ordering (fix, &filter);
617
662
g_regex_unref (regex);
666
increment_first (TwoIntsTuple *tuple)
669
// first always has to be incremented before second
670
g_assert (tuple->first > tuple->second);
674
increment_second (TwoIntsTuple *tuple)
677
// second needs to be incremented after first
678
g_assert (tuple->second == tuple->first);
682
test_changesets (FilterFixture *fix, gconstpointer data)
690
regex = g_regex_new ("^..[eo]", 0, 0, NULL);
691
dee_filter_new_regex (1, regex, &filter);
692
filter_m1 = dee_filter_model_new (fix->model, &filter);
693
g_regex_unref (regex);
695
regex = g_regex_new ("^Z", 0, 0, NULL);
696
dee_filter_new_regex (1, regex, &filter);
697
filter_m2 = dee_filter_model_new (fix->model, &filter);
698
g_regex_unref (regex);
700
regex = g_regex_new ("^X", 0, 0, NULL);
701
dee_filter_new_regex (1, regex, &filter);
702
filter_m3 = dee_filter_model_new (fix->model, &filter);
703
g_regex_unref (regex);
705
g_assert_cmpuint (0, ==, dee_model_get_n_rows (fix->model));
706
g_assert_cmpuint (0, ==, dee_model_get_n_rows (filter_m1));
707
g_assert_cmpuint (0, ==, dee_model_get_n_rows (filter_m2));
708
g_assert_cmpuint (0, ==, dee_model_get_n_rows (filter_m3));
710
TwoIntsTuple tuple_m0 = { 0, 0 };
711
TwoIntsTuple tuple_m1 = { 0, 0 };
712
TwoIntsTuple tuple_m2 = { 0, 0 };
713
TwoIntsTuple tuple_m3 = { 0, 0 };
715
g_signal_connect_swapped (fix->model, "changeset-started",
716
G_CALLBACK (increment_first), &tuple_m0);
717
g_signal_connect_swapped (fix->model, "changeset-finished",
718
G_CALLBACK (increment_second), &tuple_m0);
719
g_signal_connect_swapped (filter_m1, "changeset-started",
720
G_CALLBACK (increment_first), &tuple_m1);
721
g_signal_connect_swapped (filter_m1, "changeset-finished",
722
G_CALLBACK (increment_second), &tuple_m1);
723
g_signal_connect_swapped (filter_m2, "changeset-started",
724
G_CALLBACK (increment_first), &tuple_m2);
725
g_signal_connect_swapped (filter_m2, "changeset-finished",
726
G_CALLBACK (increment_second), &tuple_m2);
727
g_signal_connect_swapped (filter_m3, "changeset-started",
728
G_CALLBACK (increment_first), &tuple_m3);
729
g_signal_connect_swapped (filter_m3, "changeset-finished",
730
G_CALLBACK (increment_second), &tuple_m3);
732
dee_model_begin_changeset (fix->model);
733
add_3rows (fix->model);
734
dee_model_end_changeset (fix->model);
736
g_assert_cmpuint (3, ==, dee_model_get_n_rows (fix->model));
737
g_assert_cmpuint (2, ==, dee_model_get_n_rows (filter_m1));
738
g_assert_cmpuint (1, ==, dee_model_get_n_rows (filter_m2));
739
g_assert_cmpuint (0, ==, dee_model_get_n_rows (filter_m3));
740
g_assert_cmpint (tuple_m0.first, ==, 1);
741
g_assert_cmpint (tuple_m0.second, ==, 1);
742
g_assert_cmpint (tuple_m1.first, ==, 1);
743
g_assert_cmpint (tuple_m1.second, ==, 1);
744
g_assert_cmpint (tuple_m2.first, ==, 1);
745
g_assert_cmpint (tuple_m2.second, ==, 1);
746
g_assert_cmpint (tuple_m3.first, ==, 1);
747
g_assert_cmpint (tuple_m3.second, ==, 1);