diff --git a/test/phpunit/BuildDocTest.php b/test/phpunit/BuildDocTest.php
index ea49eef46c9dfcfdd653d34004922c67047f2a12..e7b6431b3f2843474c23466f18f8cdf2a30b6957 100644
--- a/test/phpunit/BuildDocTest.php
+++ b/test/phpunit/BuildDocTest.php
@@ -53,6 +53,12 @@ $conf->global->MAIN_DISABLE_ALL_MAILS=1;
  * @covers Translate
  * @covers Conf
  * @covers CommonObject
+ * @covers Facture
+ * @covers Commande
+ * @covers Propal
+ * @covers Expedition
+ * @covers Fichinter
+ * @covers Project
  * @remarks	backupGlobals must be disabled to have db,conf,user and lang not erased.
  */
 class BuildDocTest extends PHPUnit_Framework_TestCase
diff --git a/test/phpunit/CategorieTest.php b/test/phpunit/CategorieTest.php
new file mode 100755
index 0000000000000000000000000000000000000000..2e1144a2d461a320c522c3f9984794f9dcbad83e
--- /dev/null
+++ b/test/phpunit/CategorieTest.php
@@ -0,0 +1,264 @@
+<?php
+/* Copyright (C) 2010 Laurent Destailleur  <eldy@users.sourceforge.net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/**
+ *      \file       test/phpunit/CategorieTest.php
+ *		\ingroup    test
+ *      \brief      PHPUnit test
+ *      \version    $Id$
+ *		\remarks	To run this script as CLI:  phpunit filename.php
+ */
+
+global $conf,$user,$langs,$db;
+//define('TEST_DB_FORCE_TYPE','mysql');	// This is to force using mysql driver
+require_once 'PHPUnit/Framework.php';
+require_once dirname(__FILE__).'/../../htdocs/master.inc.php';
+require_once dirname(__FILE__).'/../../htdocs/categories/class/categorie.class.php';
+
+if (empty($user->id))
+{
+	print "Load permissions for admin user nb 1\n";
+	$user->fetch(1);
+	$user->getrights();
+}
+$conf->global->MAIN_DISABLE_ALL_MAILS=1;
+
+
+/**
+ * @backupGlobals disabled
+ * @backupStaticAttributes enabled
+ * @covers DoliDb
+ * @covers Translate
+ * @covers Conf
+ * @covers Interfaces
+ * @covers CommonObject
+ * @covers Categorie
+ * @remarks	backupGlobals must be disabled to have db,conf,user and lang not erased.
+ */
+class CategorieTest extends PHPUnit_Framework_TestCase
+{
+	protected $savconf;
+	protected $savuser;
+	protected $savlangs;
+	protected $savdb;
+
+	/**
+	 * Constructor
+	 * We save global variables into local variables
+	 *
+	 * @return CategorieTest
+	 */
+	function CategorieTest()
+	{
+		//$this->sharedFixture
+		global $conf,$user,$langs,$db;
+		$this->savconf=$conf;
+		$this->savuser=$user;
+		$this->savlangs=$langs;
+		$this->savdb=$db;
+
+		print __METHOD__." db->type=".$db->type." user->id=".$user->id;
+		//print " - db ".$db->db;
+		print "\n";
+	}
+
+	// Static methods
+  	public static function setUpBeforeClass()
+    {
+    	global $conf,$user,$langs,$db;
+		$db->begin();	// This is to have all actions inside a transaction even if test launched without suite.
+
+    	print __METHOD__."\n";
+    }
+    public static function tearDownAfterClass()
+    {
+    	global $conf,$user,$langs,$db;
+		$db->rollback();
+
+		print __METHOD__."\n";
+    }
+
+	/**
+	 */
+    protected function setUp()
+    {
+    	global $conf,$user,$langs,$db;
+		$conf=$this->savconf;
+		$user=$this->savuser;
+		$langs=$this->savlangs;
+		$db=$this->savdb;
+
+		print __METHOD__."\n";
+    }
+	/**
+	 */
+    protected function tearDown()
+    {
+    	print __METHOD__."\n";
+    }
+
+    /**
+     */
+    public function testCategorieCreate()
+    {
+    	global $conf,$user,$langs,$db;
+		$conf=$this->savconf;
+		$user=$this->savuser;
+		$langs=$this->savlangs;
+		$db=$this->savdb;
+
+		$localobject=new Categorie($this->savdb);
+    	$localobject->initAsSpecimen();
+    	$result=$localobject->create($user);
+
+    	$this->assertLessThan($result, 0);
+    	print __METHOD__." result=".$result."\n";
+    	return $result;
+    }
+
+    /**
+     * @depends	testCategorieCreate
+     * The depends says test is run only if previous is ok
+     */
+    public function testCategorieFetch($id)
+    {
+    	global $conf,$user,$langs,$db;
+		$conf=$this->savconf;
+		$user=$this->savuser;
+		$langs=$this->savlangs;
+		$db=$this->savdb;
+
+		$localobject=new Categorie($this->savdb);
+    	$result=$localobject->fetch($id);
+
+    	$this->assertLessThan($result, 0);
+    	print __METHOD__." id=".$id." result=".$result."\n";
+    	return $localobject;
+    }
+
+    /**
+     * @depends	testCategorieFetch
+     * The depends says test is run only if previous is ok
+     */
+    public function testCategorieUpdate($localobject)
+    {
+    	global $conf,$user,$langs,$db;
+		$conf=$this->savconf;
+		$user=$this->savuser;
+		$langs=$this->savlangs;
+		$db=$this->savdb;
+
+		$localobject->note='New note after update';
+    	$result=$localobject->update($user);
+
+    	print __METHOD__." id=".$localobject->id." result=".$result."\n";
+    	$this->assertLessThan($result, 0);
+    	return $localobject;
+    }
+
+    /**
+     * @depends	testCategorieUpdate
+     * The depends says test is run only if previous is ok
+     */
+    /*public function testCategorieXXX($localobject)
+    {
+    	global $conf,$user,$langs,$db;
+		$conf=$this->savconf;
+		$user=$this->savuser;
+		$langs=$this->savlangs;
+		$db=$this->savdb;
+
+    	$result=$localobject->delete(0);
+    	print __METHOD__." id=".$localobject->id." result=".$result."\n";
+
+    	$this->assertLessThan($result, 0);
+    	return $localobject;
+    }*/
+
+    /**
+     * @depends testCategorieUpdate
+     * The depends says test is run only if previous is ok
+     */
+    public function testCategorieOther($localobject)
+    {
+        global $conf,$user,$langs,$db;
+        $conf=$this->savconf;
+        $user=$this->savuser;
+        $langs=$this->savlangs;
+        $db=$this->savdb;
+
+        /*$result=$localobject->setstatus(0);
+        print __METHOD__." id=".$localobject->id." result=".$result."\n";
+        $this->assertLessThan($result, 0);
+        */
+        $localobject2=new Categorie($db);
+        $localobject2->initAsSpecimen();
+
+        $retarray=$localobject->liste_photos('/');
+        print __METHOD__." retarry size=".sizeof($rearray)."\n";
+        $this->assertTrue(is_array($retarray));
+
+        $ret=$localobject->is_fille($localobject2);
+        print __METHOD__." retarry size=".sizeof($rearray)."\n";
+        $this->assertFalse($ret);
+
+        return $localobject->id;
+    }
+
+    /**
+     * @depends	testCategorieOther
+     * The depends says test is run only if previous is ok
+     */
+    public function testCategorieDelete($id)
+    {
+    	global $conf,$user,$langs,$db;
+		$conf=$this->savconf;
+		$user=$this->savuser;
+		$langs=$this->savlangs;
+		$db=$this->savdb;
+
+		$localobject=new Categorie($this->savdb);
+    	$result=$localobject->fetch($id);
+		$result=$localobject->remove($id);
+
+		print __METHOD__." id=".$id." result=".$result."\n";
+    	$this->assertLessThan($result, 0);
+    	return $result;
+    }
+
+    /**
+     * @depends  testCategorieDelete
+     */
+    public function testCategorieStatic()
+    {
+    	global $conf,$user,$langs,$db;
+		$conf=$this->savconf;
+		$user=$this->savuser;
+		$langs=$this->savlangs;
+		$db=$this->savdb;
+
+		$localobject=new Categorie($this->savdb);
+        $retarray=$localobject->get_full_arbo(3);
+
+		print __METHOD__." retarray size=".sizeof($retarray)."\n";
+    	$this->assertTrue(is_array($retarray));
+    	return $result;
+    }
+
+}
+?>
\ No newline at end of file
diff --git a/test/phpunit/FactureTest.php b/test/phpunit/FactureTest.php
index e9204ef1ce74aa2196f1f99663d4ba9f1340bb0d..7bc52f0c5bcc4637e38feb30f162aacc85bbde94 100644
--- a/test/phpunit/FactureTest.php
+++ b/test/phpunit/FactureTest.php
@@ -51,6 +51,13 @@ $conf->global->MAIN_DISABLE_ALL_MAILS=1;
  * @covers Facture
  * @covers FactureLigne
  * @covers ModeleNumRefFactures
+ * @covers InterfaceLogevents
+ * @covers InterfaceActionsAuto
+ * @covers InterfaceLdapsynchro
+ * @covers InterfaceNotification
+ * @covers InterfacePhenixsynchro
+ * @covers InterfacePropalWorkflow
+ * @covers InterfaceWebcalsynchro
  * @remarks	backupGlobals must be disabled to have db,conf,user and lang not erased.
  */
 class FactureTest extends PHPUnit_Framework_TestCase
diff --git a/test/phpunit/MyTestSuite.php b/test/phpunit/MyTestSuite.php
index 37ddb7de717bbb8b0de1d87e7de0ea0c6526a33e..413430c6ffd073815ac28524e7717c63965e7828 100644
--- a/test/phpunit/MyTestSuite.php
+++ b/test/phpunit/MyTestSuite.php
@@ -70,7 +70,7 @@ class MyTestSuite
         require_once dirname(__FILE__).'/ContratTest.php';
         $suite->addTestSuite('ContratTest');
         require_once dirname(__FILE__).'/FactureTest.php';
-        $suite->addTestSuite('FactureTest');
+        $suite->addTestSuite('FactureTest');    // This one covers also triggers
         require_once dirname(__FILE__).'/FactureFournisseurTest.php';
         $suite->addTestSuite('FactureFournisseurTest');
         require_once dirname(__FILE__).'/PropalTest.php';
@@ -84,6 +84,9 @@ class MyTestSuite
         require_once dirname(__FILE__).'/ChargeSocialesTest.php';
         $suite->addTestSuite('ChargeSocialesTest');
 
+        require_once dirname(__FILE__).'/CategorieTest.php';
+        $suite->addTestSuite('CategorieTest');
+
         require_once dirname(__FILE__).'/ModulesTest.php';
         $suite->addTestSuite('ModulesTest');
 
diff --git a/test/phpunit/UserGroupTest.php b/test/phpunit/UserGroupTest.php
index a45798b81985ec3a88db2d8105bfb0bb4be64f92..f6b74cb8bc0e5e0f721c840001546fd64c4a0025 100644
--- a/test/phpunit/UserGroupTest.php
+++ b/test/phpunit/UserGroupTest.php
@@ -234,7 +234,7 @@ class UserGroupTest extends PHPUnit_Framework_TestCase
     }
 
     /**
-     * @depends	testUserOther
+     * @depends	testUserGroupOther
      * The depends says test is run only if previous is ok
      */
     public function testUserGroupDelete($id)