Evas tests: Add callback_del order test
authorJean-Philippe Andre <jp.andre@samsung.com>
Mon, 20 Apr 2015 06:15:34 +0000 (15:15 +0900)
committerJean-Philippe Andre <jp.andre@samsung.com>
Mon, 20 Apr 2015 07:51:00 +0000 (16:51 +0900)
src/tests/evas/evas_test_callbacks.c

index 164851e..f424435 100644 (file)
@@ -70,9 +70,26 @@ START_TEST(evas_object_event_callbacks_priority)
          _obj_event_cb, (void *) 3);
    evas_object_move(rect, 3, 3);
 
-   /* Make sure we got through all the callbacks */
+   /* Make sure we got through all the callbacks in priority order */
    fail_if(counter != 4);
 
+   /* Verify order of dels (must be reverse order of adds) */
+   counter = 1;
+   evas_object_event_callback_del(rect, EVAS_CALLBACK_MOVE, _obj_event_cb);
+   evas_object_event_callback_del(rect, EVAS_CALLBACK_MOVE, _obj_event_cb);
+   evas_object_event_callback_del(rect, EVAS_CALLBACK_MOVE, _obj_event_cb);
+   evas_object_event_callback_priority_add(rect, EVAS_CALLBACK_MOVE, 10,
+         _obj_event_cb, (void *) 2);
+   evas_object_event_callback_priority_add(rect, EVAS_CALLBACK_MOVE, 0,
+         _obj_event_cb, (void *) 1);
+   evas_object_event_callback_priority_add(rect, EVAS_CALLBACK_MOVE, -10,
+         _obj_event_cb, (void *) 3);
+   evas_object_event_callback_del(rect, EVAS_CALLBACK_MOVE, _obj_event_cb);
+   evas_object_move(rect, 2, 2);
+
+   /* Make sure we got through only the 2 first callbacks (in priority order) */
+   fail_if(counter != 3);
+
    END_CALLBACK_TEST();
 }
 END_TEST