blob: 35f0396ed1692a5fe685540f50596db0993f08c8 [file] [log] [blame]
Subject: GstObject
Areas to test
=============
Creation
Refcounting
Destruction
Flags
Locking
Parentage
Path string
Tests
=====
Creation
--------
Create an object
Does it return !NULL
GST_IS_OBJECT() ?
Refcounting
-----------
Create new object
object->refcount == 1, GTK_OBJECT_FLOATING(object) == TRUE
Increment refcount
object->refcount == 2
Sink object
object->refcount == 1, GTK_OBJECT_FLOATING(object) == FALSE
Increment refcount
object->refcount == 2
Decrement refcount
object->refcount == 1
Destruction
-----------
???
Flags (start with new object)
-----
Create new object
Verify that all flags are unset
Set a flag
Verify it's set
Unset a flag
Verify it's not set
Locking (start with new object)
-------
Lock an object
Try to lock, get false
Parentage (start with new object, check refcount == 1)
---------
gst_object_set_parent: (start with new parent object)
Pass NULL...
Pass !NULL, but not Object...
Pass NULL parent...
Pass !NULL parent, but not Object...
Pass valid Object, and parent == object
object->refcount == 1
GTK_OBJECT_FLOATING(object) == TRUE
object->parent == NULL
Pass valid Object
object->refcount == 1
GTK_OBJECT_FLOATING(object) == FALSE
object->parent == parent
The "parent_set" signal should fire with the object and parent as args
Pass Object with parent already set
object->parent should not equal new parent
object->refcount == 1
gst_object_get_parent:
Pass NULL...
Pass !NULL, not Object...
Pass valid object with no parent
Get NULL
Pass valid object with parent
Get parent pointer
gst_object_unparent:
Pass NULL, with no parent
no effect
Pass !NULL, not Object, NULL parent
pointer not mangled
Pass valid object, with no parent
object->parent == NULL
object->refcount = 1
Pass NULL, with valid parent
no effect
Pass !NULL, not Object, with valid object as parent
pointer not mangled
Pass valid object, with valid parent
object->parent == NULL
object->refcount == 0