[nautilus-actions] Refactoring: update src/test/



commit 467a06488d0db213aa0ce54467c2529082dbc434
Author: Pierre Wieser <pwieser trychlos org>
Date:   Mon Feb 15 20:04:03 2010 +0100

    Refactoring: update src/test/

 ChangeLog                     |    1 +
 src/test/Makefile.am          |    9 +++++++++
 src/test/test-iface-base.c    |   24 ++++++++++++------------
 src/test/test-iface-derived.c |   31 ++++++++++++++++++++++++++-----
 src/test/test-iface-derived.h |    3 ++-
 src/test/test-iface.c         |    9 +++++++--
 6 files changed, 57 insertions(+), 20 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index bae898c..ba1b14b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,6 @@
 2009-02-15 Pierre Wieser <pwieser trychlos org>
 
+	Update src/test.
 	Update src/plugin-tracker.
 	Update src/plugin-menu.
 
diff --git a/src/test/Makefile.am b/src/test/Makefile.am
index 896580c..60bfdd4 100644
--- a/src/test/Makefile.am
+++ b/src/test/Makefile.am
@@ -28,6 +28,7 @@
 
 noinst_PROGRAMS = \
 	test-iface													\
+	test-include												\
 	test-parse-uris												\
 	test-virtuals												\
 	test-virtuals-without-test									\
@@ -55,6 +56,14 @@ test_iface_LDADD = \
 	$(NAUTILUS_ACTIONS_LIBS)									\
 	$(NULL)
 
+test_include_SOURCES = \
+	test-include.c												\
+	$(NULL)
+
+test_include_LDADD = \
+	$(NAUTILUS_ACTIONS_LIBS)									\
+	$(NULL)
+
 test_parse_uris_SOURCES = \
 	test-parse-uris.c											\
 	$(NULL)
diff --git a/src/test/test-iface-base.c b/src/test/test-iface-base.c
index 53cdb38..155a7ea 100644
--- a/src/test/test-iface-base.c
+++ b/src/test/test-iface-base.c
@@ -51,11 +51,11 @@ static GObjectClass *st_parent_class = NULL;
 
 static GType register_type( void );
 static void  class_init( TestBaseClass *klass );
-static void  iface_iface_init( TestIFaceInterface *iface );
 static void  instance_init( GTypeInstance *instance, gpointer klass );
 static void  instance_dispose( GObject *object );
 static void  instance_finalize( GObject *object );
 
+static void  iface_iface_init( TestIFaceInterface *iface );
 static void  iface_fna( TestIFace *object );
 static void  iface_fnb( TestIFace *object );
 
@@ -122,17 +122,6 @@ class_init( TestBaseClass *klass )
 }
 
 static void
-iface_iface_init( TestIFaceInterface *iface )
-{
-	static const gchar *thisfn = "test_iface_base_iface_iface_init";
-
-	g_debug( "%s: iface=%p", thisfn, ( void * ) iface );
-
-	iface->fna = iface_fna;
-	iface->fnb = iface_fnb;
-}
-
-static void
 instance_init( GTypeInstance *instance, gpointer klass )
 {
 	static const gchar *thisfn = "test_iface_base_instance_init";
@@ -193,6 +182,17 @@ test_base_new( void )
 }
 
 static void
+iface_iface_init( TestIFaceInterface *iface )
+{
+	static const gchar *thisfn = "test_iface_base_iface_iface_init";
+
+	g_debug( "%s: iface=%p", thisfn, ( void * ) iface );
+
+	iface->fna = iface_fna;
+	iface->fnb = iface_fnb;
+}
+
+static void
 iface_fna( TestIFace *object )
 {
 	static const gchar *thisfn = "test_iface_base_iface_fna";
diff --git a/src/test/test-iface-derived.c b/src/test/test-iface-derived.c
index 9ad1210..b1b5de8 100644
--- a/src/test/test-iface-derived.c
+++ b/src/test/test-iface-derived.c
@@ -111,10 +111,6 @@ class_init( TestDerivedClass *klass )
 
 	klass->private = g_new0( TestDerivedClassPrivate, 1 );
 
-	if( 1 ){
-		iface_iface_init( klass );
-	}
-
 	/* there is no error message but this has no effect
 	 * event in a TestDerived object, these are TestBase functions which are called
 	 */
@@ -122,6 +118,17 @@ class_init( TestDerivedClass *klass )
 		(( TestIFaceInterface * ) klass )->fna = iface_fna;
 		(( TestIFaceInterface * ) klass )->fnb = iface_fnb;
 	}
+
+	/* idem
+	 */
+	if( 0 ){
+		(( TestIFaceInterface * ) st_parent_class )->fna = iface_fna;
+		(( TestIFaceInterface * ) st_parent_class )->fnb = iface_fnb;
+	}
+
+	if( 1 ){
+		iface_iface_init( klass );
+	}
 }
 
 static void
@@ -138,6 +145,9 @@ iface_iface_init( TestDerivedClass *klass )
 	(( TestIFaceInterface * ) iface )->fna = iface_fna;
 	(( TestIFaceInterface * ) iface )->fnb = iface_fnb;*/
 
+	/* this segfault
+	 */
+	/*
 	GTypeInterface *iface;
 	iface = g_type_interface_peek( klass, TEST_IFACE_TYPE );
 	g_debug( "%s: iface=%p", thisfn, ( void * ) iface );
@@ -145,7 +155,18 @@ iface_iface_init( TestDerivedClass *klass )
 	g_debug( "%s: iface=%p", thisfn, ( void * ) iface );
 	g_debug( "%s: iface=%s at %p", thisfn, g_type_name( G_TYPE_FROM_INTERFACE( iface )), ( void * ) iface );
 	(( TestIFaceInterface * ) iface )->fna = iface_fna;
-	(( TestIFaceInterface * ) iface )->fnb = iface_fnb;
+	(( TestIFaceInterface * ) iface )->fnb = iface_fnb;*/
+
+	/* this has the effect of totally overriding the interface api
+	 * and both TestBase and TestDerived objects will only call TestDerived functions
+	 */
+	if( 0 ){
+		GTypeInterface *iface;
+		iface = g_type_interface_peek( st_parent_class, TEST_IFACE_TYPE );
+		g_debug( "%s: iface=%s at %p", thisfn, g_type_name( G_TYPE_FROM_INTERFACE( iface )), ( void * ) iface );
+		(( TestIFaceInterface * ) iface )->fna = iface_fna;
+		(( TestIFaceInterface * ) iface )->fnb = iface_fnb;
+	}
 }
 
 static void
diff --git a/src/test/test-iface-derived.h b/src/test/test-iface-derived.h
index ac2f488..9954515 100644
--- a/src/test/test-iface-derived.h
+++ b/src/test/test-iface-derived.h
@@ -36,8 +36,9 @@
  * @short_description: #TestDerived class definition.
  * @include: test-iface-derived.h
  *
- * Derivation of TestDerived class.
+ * Derivation of TestBae class.
  * Are we able to define our own implementation of testIFace interface ?
+ * Also, the derived class is it recognized as implementing the interface ?
  */
 
 #include "test-iface-base.h"
diff --git a/src/test/test-iface.c b/src/test/test-iface.c
index 40ba232..db1a2d0 100755
--- a/src/test/test-iface.c
+++ b/src/test/test-iface.c
@@ -54,6 +54,11 @@ main( int argc, char **argv )
 
 	g_debug( "allocating TestDerived ----------------------------------" );
 	derived = test_derived_new();
+	if( TEST_IS_IFACE( derived )){
+		g_debug( "Derived is also an IFace" );
+	} else {
+		g_debug( "Derived is NOT an IFace" );
+	}
 	g_debug( "calling test_iface_fna on Derived object ----------------" );
 	test_iface_fna( TEST_IFACE( derived ));
 	g_debug( "calling test_iface_fnb on Derived object ----------------" );
@@ -61,9 +66,9 @@ main( int argc, char **argv )
 
 	g_debug( "allocating TestBase -------------------------------------" );
 	base2 = test_base_new();
-	g_debug( "calling test_iface_fna on Base object -------------------" );
+	g_debug( "calling test_iface_fna on another Base object -------------------" );
 	test_iface_fna( TEST_IFACE( base2 ));
-	g_debug( "calling test_iface_fnb on Base object -------------------" );
+	g_debug( "calling test_iface_fnb on another Base object -------------------" );
 	test_iface_fnb( TEST_IFACE( base2 ));
 
 	g_debug( "end -----------------------------------------------------" );



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]