From 739441afeb52669bf759ed855ac7211ead8fced9 Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Thu, 12 Apr 2012 14:37:57 +0000 Subject: [PATCH] Eobj: Added some more test scenarios. SVN revision: 70147 --- legacy/eobj/examples/composite_objects/comp.c | 2 ++ legacy/eobj/examples/composite_objects/main.c | 16 ++++++++++++++++ legacy/eobj/tests/eobj_test_general.c | 14 ++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/legacy/eobj/examples/composite_objects/comp.c b/legacy/eobj/examples/composite_objects/comp.c index 48fabd14cb..073d58490d 100644 --- a/legacy/eobj/examples/composite_objects/comp.c +++ b/legacy/eobj/examples/composite_objects/comp.c @@ -30,6 +30,8 @@ _constructor(Eobj *obj, void *class_data __UNUSED__) fail_if(eobj_composite_is(obj)); fail_if(!eobj_composite_is(simple)); + eobj_generic_data_set(obj, "simple-obj", simple); + eobj_unref(simple); } diff --git a/legacy/eobj/examples/composite_objects/main.c b/legacy/eobj/examples/composite_objects/main.c index 531bfe50a7..7830b0b689 100644 --- a/legacy/eobj/examples/composite_objects/main.c +++ b/legacy/eobj/examples/composite_objects/main.c @@ -36,6 +36,22 @@ main(int argc, char *argv[]) eobj_do(obj, SIMPLE_A_GET(&a)); fail_if(a != 1); + /* disable the callback forwarder, and fail if it's still called. */ + Eobj *simple = eobj_generic_data_get(obj, "simple-obj"); + eobj_ref(simple); + eobj_event_callback_forwarder_del(simple, SIG_A_CHANGED, obj); + + cb_called = EINA_FALSE; + eobj_do(obj, SIMPLE_A_SET(2)); + fail_if(cb_called); + + fail_if(!eobj_composite_is(simple)); + eobj_composite_object_detach(obj, simple); + fail_if(eobj_composite_is(simple)); + eobj_composite_object_attach(obj, simple); + fail_if(!eobj_composite_is(simple)); + + eobj_unref(simple); eobj_unref(obj); eobj_shutdown(); diff --git a/legacy/eobj/tests/eobj_test_general.c b/legacy/eobj/tests/eobj_test_general.c index 2f89e29f4d..17b095478d 100644 --- a/legacy/eobj/tests/eobj_test_general.c +++ b/legacy/eobj/tests/eobj_test_general.c @@ -30,6 +30,20 @@ START_TEST(eobj_op_errors) /* Ilegal class. */ fail_if(eobj_do(obj, 0x0F010111)); + fail_if(eobj_ref_get(obj) != 1); + + eobj_ref(obj); + fail_if(eobj_ref_get(obj) != 2); + + eobj_ref(obj); + fail_if(eobj_ref_get(obj) != 3); + + eobj_unref(obj); + fail_if(eobj_ref_get(obj) != 2); + + eobj_unref(obj); + fail_if(eobj_ref_get(obj) != 1); + eobj_unref(obj); eobj_shutdown(); }