Eobj: Added some more test scenarios.
authortasn <tasn>
Thu, 12 Apr 2012 14:37:57 +0000 (14:37 +0000)
committertasn <tasn@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 12 Apr 2012 14:37:57 +0000 (14:37 +0000)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/PROTO/eobj@70147 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

examples/composite_objects/comp.c
examples/composite_objects/main.c
tests/eobj_test_general.c

index 48fabd1..073d584 100644 (file)
@@ -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);
 }
 
index 531bfe5..7830b0b 100644 (file)
@@ -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();
index 2f89e29..17b0954 100644 (file)
@@ -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();
 }