diff options
author | Matthias Clasen <mclasen@redhat.com> | 2020-06-10 11:48:52 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2020-06-10 11:48:52 +0000 |
commit | e6b03b9f097552829acd7c54ce222c5dc7eb2b65 (patch) | |
tree | 2a0c1c637f078118cd884d956e139048d8ab22f2 /tests/testattributes.c | |
parent | 7abe91c208ce7f0c1f6e6c4b13df4de7a664ffa5 (diff) | |
parent | 1bb4e61c3285f95e01f13d70354716c11c27ce39 (diff) | |
download | pango-e6b03b9f097552829acd7c54ce222c5dc7eb2b65.tar.gz |
Merge branch 'wip/baedert/for-master' into 'master'
Wip/baedert/for master
See merge request GNOME/pango!194
Diffstat (limited to 'tests/testattributes.c')
-rw-r--r-- | tests/testattributes.c | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/tests/testattributes.c b/tests/testattributes.c index 6b5e849b..4eea97da 100644 --- a/tests/testattributes.c +++ b/tests/testattributes.c @@ -618,6 +618,76 @@ test_list_update (void) pango_attr_list_unref (list); } +static void +test_list_equal (void) +{ + PangoAttrList *list1, *list2; + PangoAttribute *attr; + + list1 = pango_attr_list_new (); + list2 = pango_attr_list_new (); + + attr = pango_attr_size_new (10 * PANGO_SCALE); + attr->start_index = 0; + attr->end_index = 7; + pango_attr_list_insert (list1, pango_attribute_copy (attr)); + pango_attr_list_insert (list2, pango_attribute_copy (attr)); + pango_attribute_destroy (attr); + + g_assert_true (pango_attr_list_equal (list1, list2)); + + attr = pango_attr_stretch_new (PANGO_STRETCH_CONDENSED); + attr->start_index = 0; + attr->end_index = 1; + pango_attr_list_insert (list1, pango_attribute_copy (attr)); + g_assert_true (!pango_attr_list_equal (list1, list2)); + + pango_attr_list_insert (list2, pango_attribute_copy (attr)); + g_assert_true (pango_attr_list_equal (list1, list2)); + pango_attribute_destroy (attr); + + attr = pango_attr_size_new (30 * PANGO_SCALE); + /* Same range as the first attribute */ + attr->start_index = 0; + attr->end_index = 7; + pango_attr_list_insert (list2, pango_attribute_copy (attr)); + g_assert_true (!pango_attr_list_equal (list1, list2)); + pango_attr_list_insert (list1, pango_attribute_copy (attr)); + g_assert_true (pango_attr_list_equal (list1, list2)); + pango_attribute_destroy (attr); + + pango_attr_list_unref (list1); + pango_attr_list_unref (list2); + + + /* Same range but different order */ + { + PangoAttrList *list1, *list2; + PangoAttribute *attr1, *attr2; + + list1 = pango_attr_list_new (); + list2 = pango_attr_list_new (); + + attr1 = pango_attr_size_new (10 * PANGO_SCALE); + attr2 = pango_attr_stretch_new (PANGO_STRETCH_CONDENSED); + + pango_attr_list_insert (list1, pango_attribute_copy (attr1)); + pango_attr_list_insert (list1, pango_attribute_copy (attr2)); + + pango_attr_list_insert (list2, pango_attribute_copy (attr2)); + pango_attr_list_insert (list2, pango_attribute_copy (attr1)); + + pango_attribute_destroy (attr1); + pango_attribute_destroy (attr2); + + g_assert_true (pango_attr_list_equal (list1, list2)); + g_assert_true (pango_attr_list_equal (list2, list1)); + + pango_attr_list_unref (list1); + pango_attr_list_unref (list2); + } +} + int main (int argc, char *argv[]) { @@ -630,6 +700,7 @@ main (int argc, char *argv[]) g_test_add_func ("/attributes/list/splice", test_list_splice); g_test_add_func ("/attributes/list/filter", test_list_filter); g_test_add_func ("/attributes/list/update", test_list_update); + g_test_add_func ("/attributes/list/equal", test_list_equal); g_test_add_func ("/attributes/iter/basic", test_iter); g_test_add_func ("/attributes/iter/get", test_iter_get); g_test_add_func ("/attributes/iter/get_font", test_iter_get_font); |