diff --git a/cosmogramme/cosmozend/tests/bootstrap.php b/cosmogramme/cosmozend/tests/bootstrap.php
index 42ef07542e9f48174da7e7f14b4d5a6684b3e006..8c1584a12e6b5cdfc2d934fe32b4767bd0c53734 100644
--- a/cosmogramme/cosmozend/tests/bootstrap.php
+++ b/cosmogramme/cosmozend/tests/bootstrap.php
@@ -36,6 +36,7 @@ set_include_path( $cosmozendPath
 . PATH_SEPARATOR . $cosmozendPath . '/tests'
 . PATH_SEPARATOR . $cosmozendPath . '/application'
 . PATH_SEPARATOR . $cosmozendPath . '/library'
+. PATH_SEPARATOR . $cosmozendPath . '/../../library/digital_resources'
 . PATH_SEPARATOR . get_include_path());
 
 Zend_Session::start();
diff --git a/library/Class/DigitalResource.php b/library/Class/DigitalResource.php
index 117c4a302d6f26064f4563dc312c831014c0e0bf..00d77bad2143f3559f67aa8f7de954ade659936f 100644
--- a/library/Class/DigitalResource.php
+++ b/library/Class/DigitalResource.php
@@ -124,7 +124,8 @@ class Class_DigitalResource extends Class_Entity {
     $modules = [];
     $this->withPluginsDo(
                          function($name, $config) use (&$modules){
-                           $modules[$config->getName()] = $config->getModuleMenu();
+                           $moduleMenu = $config->getModuleMenu();
+                           $modules[$config->getName()] = new $moduleMenu;
                          });
 
     return $modules;
diff --git a/library/Class/DigitalResource/Config.php b/library/Class/DigitalResource/Config.php
index 7c7a6889fd281b313d8b3eac021cb24cd2f11801..ac5e01862c026c9ffdc5d9f742ee2807845d02d9 100644
--- a/library/Class/DigitalResource/Config.php
+++ b/library/Class/DigitalResource/Config.php
@@ -31,6 +31,9 @@ class Class_DigitalResource_Config extends Class_Entity {
       : (new Class_DigitalResource())->configFor(static::getBaseName());
   }
 
+  public function getName() {
+    return static::getBaseName();
+  }
 
   public function __construct($attribs) {
     $this->updateAttributes($attribs);
diff --git a/library/digital_resources/Assimil/Config.php b/library/digital_resources/Assimil/Config.php
index 2f5d2441eae7024b25a59d717b31f64c63cd71d8..62d73a0f2c4adf6e9dff06ae23101844b192b5f3 100644
--- a/library/digital_resources/Assimil/Config.php
+++ b/library/digital_resources/Assimil/Config.php
@@ -22,16 +22,19 @@
 class Assimil_Config extends Class_DigitalResource_Config {
   public function __construct($digital_resource) {
     $this
-      ->updateAttributes(['Name' => 'ASSIMIL'])
-      ->updateAttributes(['SsoAction' => 'assimil',
-                          'DocTypeLabel' => $this->_('ASSIMIL e-méthode'),
-                          'Batch' => new Assimil_Batch(),
-                          'AdminVars' => [$this->getName() => Class_AdminVar_Meta::newOnOff($this->_('Activer ou désactiver la ressource numérique Assimil'))->bePrivate()],
-                          'ModuleMenu' => new Assimil_ModuleMenu(),
-                          'PermissionLabel' => $this->_('Bibliothèque numérique: accéder à ASSIMIL'),
-                          'DigitalResource' => $digital_resource]);
+      ->updateAttributes($this->getConfig($digital_resource));
   }
 
+  public function getConfig($digital_resource) {
+    return ['SsoAction' => 'assimil',
+            'DocTypeLabel' => $this->_('ASSIMIL e-méthode'),
+            'Batch' => new Assimil_Batch(),
+            'AdminVars' => [$this->getName() => Class_AdminVar_Meta::newOnOff($this->_('Activer ou désactiver la ressource numérique Assimil'))->bePrivate()],
+            'ModuleMenu' => 'Assimil_ModuleMenu',
+            'PermissionLabel' => $this->_('Bibliothèque numérique: accéder à ASSIMIL'),
+            'MenuLabel' => $this->_('Lien vers Assimil'),
+            'DigitalResource' => $digital_resource];
+  }
 
   public static function getBaseName() {
     return basename(__DIR__);
diff --git a/library/digital_resources/Assimil/ModuleMenu.php b/library/digital_resources/Assimil/ModuleMenu.php
index c9f91304df43cb7ce9f5212e7907a719dde0ee6d..af11e942b1302e1f52124d8a38e7213cc2e77460 100644
--- a/library/digital_resources/Assimil/ModuleMenu.php
+++ b/library/digital_resources/Assimil/ModuleMenu.php
@@ -22,12 +22,13 @@ class Assimil_ModuleMenu extends Class_Systeme_ModulesMenu_SSOAbstract {
 
   /** @var string */
   protected $_group = Class_Systeme_ModulesMenu::GROUP_MENU_ABONNES;
+  protected $_type_module;
 
-  /** @var string */
-  protected $_type_module = 'ASSIMIL';
-
-  /** @var string */
-  protected $_libelle = 'Lien vers ASSIMIL';
+ public function __construct() {
+   $config = Assimil_Config::getInstance();
+   $this->_type_module=$config->getName();
+   $this->_libelle = $config->getMenuLabel();
+ }
 
 
   public function urlForUser($user) {
diff --git a/library/digital_resources/Assimil/Service.php b/library/digital_resources/Assimil/Service.php
index e31e38496ff2c73d8354c9afce38e5e8d24308bd..8a9844c8eb2f090ded5a0025131ad151e6f36648 100644
--- a/library/digital_resources/Assimil/Service.php
+++ b/library/digital_resources/Assimil/Service.php
@@ -22,7 +22,7 @@
 class Assimil_Service extends Class_WebService_BibNumerique_Abstract {
   use Trait_Timesource;
 
-  const CATEGORY_LABEL = 'ASSIMIL';
+  const CATEGORY_LABEL = 'Assimil';
 
   const XML_URL = 'http://fr.assimil.com/extraits/catalogueXML/catalogue_XML_Assimil.xml';
 
diff --git a/library/digital_resources/Assimil/tests/AssimilTest.php b/library/digital_resources/Assimil/tests/AssimilTest.php
index f3bb5ebc66d4c1f5e2e70712ba33b9f0f708f5dc..7620d9e03f270c119587f34eb5402b345facc9f1 100644
--- a/library/digital_resources/Assimil/tests/AssimilTest.php
+++ b/library/digital_resources/Assimil/tests/AssimilTest.php
@@ -20,6 +20,17 @@
  */
 
 
+class ActivateAssimil {
+
+  public static function activate() {
+    Class_AdminVar::newInstanceWithId('Assimil_Assimil', ['valeur' => '1']);
+  }
+
+  public static function deactivate() {
+    Class_AdminVar::newInstanceWithId('Assimil_Assimil', ['valeur' => '']);
+  }
+}
+
 class AssimilConfigTest extends ModelTestCase {
 
   protected
@@ -32,6 +43,7 @@ class AssimilConfigTest extends ModelTestCase {
   }
 
 
+
   /** @test */
   public function docTypeShouldBeAssimil() {
     $this->assertEquals('Assimil', $this->_config->getDocType());
@@ -40,14 +52,14 @@ class AssimilConfigTest extends ModelTestCase {
 
   /** @test */
   public function withAdminVarOffShouldBeDisabled() {
-    $this->fixture('Class_AdminVar', ['id' => 'Assimil_ASSIMIL', 'valeur' => '']);
+    $this->fixture('Class_AdminVar', ['id' => 'Assimil_Assimil', 'valeur' => '']);
     $this->assertFalse($this->_config->isEnabled());
   }
 
 
   /** @test */
   public function withAdminVarOnShouldBeEnabled() {
-    $this->fixture('Class_AdminVar', ['id' => 'Assimil_ASSIMIL', 'valeur' => '1']);
+    $this->fixture('Class_AdminVar', ['id' => 'Assimil_Assimil', 'valeur' => '1']);
     $this->assertTrue($this->_config->isEnabled());
   }
 }
@@ -60,7 +72,7 @@ class AssimilActivatedAdminTest extends Admin_AbstractControllerTestCase {
 
   public function setUp() {
     parent::setUp();
-    RessourcesNumeriquesFixtures::activateAssimil();
+    ActivateAssimil::activate();
     $bib = $this->fixture('Class_Bib',
                           ['id' => 2,
                            'libelle' => 'Tombouctou']);
@@ -92,7 +104,7 @@ class AssimilActivatedAdminTest extends Admin_AbstractControllerTestCase {
   /** @test */
   public function userGroupPermissionsShouldContainsAssimil() {
     $this->dispatch('admin/usergroup/edit/id/1', true);
-    $this->assertXPath('//label[contains(text(), "accéder à ASSIMIL")]/input[@name="permissions_access[]"][@value="ASSIMIL"]');
+    $this->assertXPath('//label[contains(text(), "accéder à ASSIMIL")]/input[@name="permissions_access[]"][@value="Assimil"]');
   }
 
 
@@ -100,20 +112,20 @@ class AssimilActivatedAdminTest extends Admin_AbstractControllerTestCase {
   public function userGroupPermissionsShouldContainsAssimilChecked() {
     $this->fixture('Class_Permission',
                    ['id' => 1,
-                    'code' => 'ASSIMIL']);
+                    'code' => 'Assimil']);
     Class_UserGroup::find(1)->setPermissions([1]);
     $this->dispatch('admin/usergroup/edit/id/1', true);
-    $this->assertXPath('//label[contains(text(), "accéder à ASSIMIL")]/input[@name="permissions_access[]"][@value="ASSIMIL"][@checked]');
+    $this->assertXPath('//label[contains(text(), "accéder à ASSIMIL")]/input[@name="permissions_access[]"][@value="Assimil"][@checked]');
   }
 
 
   /** @test */
   public function userGroupPostShouldSaveUserGroup() {
     $this->postDispatch('admin/usergroup/edit/id/1',
-                        ['permissions_access[]' => 'ASSIMIL',
+                        ['permissions_access[]' => 'Assimil',
                          'libelle' => 'Group Assimil']);
     $this->assertNotEmpty(Class_UserGroup::find(1)->getPermissions());
-    $this->assertEquals('ASSIMIL', Class_UserGroup::find(1)->getPermissions()[0]->getCode());
+    $this->assertEquals('Assimil', Class_UserGroup::find(1)->getPermissions()[0]->getCode());
   }
 
 
@@ -121,13 +133,50 @@ class AssimilActivatedAdminTest extends Admin_AbstractControllerTestCase {
   /** @test */
   public function profilAvailableMenusShouldContainsAssimil() {
     $this->dispatch('admin/profil/menusmaj/id_profil/5/id_menu/H/mode/edit', true);
-    $this->assertXPathContentContains('//option[@value="ASSIMIL"]',
-                                      'Lien vers ',
+    $this->assertXPathContentContains('//option[@value="Assimil"]',
+                                      'Lien vers Assimil',
                                       $this->_response->getBody());
   }
 }
 
+class AssimilOpacIndexControllerWithMenuTest extends AbstractControllerTestCase {
+  public function setUp() {
+    parent::setUp();
+    ActivateAssimil::activate();
+    $cfg_menus = ['H' => ['libelle' => 'Menu horizontal',
+                          'picto' => 'vide.gif',
+                          'menus' => [['type_menu' => 'MENU',
+                                       'libelle' => 'Pratique',
+                                       'picto' => 'bookmark.png',
+                                       'preferences' => [],
+                                       'sous_menus' => [['type_menu' => 'ACCUEIL',
+                                                         'libelle' => 'Accueil',
+                                                         'picto' => 'vide.gif',
+                                                         'preferences' => [],
+                                                         'sous_menus' => ''],
 
+                                                        ['type_menu' => 'Assimil',
+                                                         'libelle' => 'Lien vers Assimil',
+                                                         'preferences' => [],
+                                                         'picto' => 'vide.gif'] ]]]]];
+
+    $profil_adulte = $this->fixture('Class_Profil', ['id' => 22, 'rewrite_url' => 'adulte'])
+                                ->setBrowser('opac')
+                                ->setLibelle('Profil Adulte')
+                                ->setCfgMenus($cfg_menus);
+
+    Class_Profil::setCurrentProfil($profil_adulte);
+
+    $this->dispatch('/');
+  }
+
+    /** @test */
+  public function linkToAssimilShouldBePresent() {
+    $this->assertXPathContentContains('//ul//li//a[contains(@href, "/modules/assimil")]',
+                                      'Lien vers Assimil',$this->_response->getBody());
+  }
+
+}
 
 abstract class AssimilServiceTestCase extends ModelTestCase {
   protected
@@ -137,7 +186,7 @@ abstract class AssimilServiceTestCase extends ModelTestCase {
   public function setUp() {
     parent::setUp();
 
-    RessourcesNumeriquesFixtures::activateAssimil();
+    ActivateAssimil::activate();
 
     $catalogue_xml = file_get_contents(__DIR__. '/assimil.xml');
 
@@ -165,7 +214,7 @@ class AssimilServiceHarvestTest extends AssimilServiceTestCase {
 
   /** @test */
   public function nameShouldAssimil() {
-    $this->assertEquals('ASSIMIL', $this->_service->getName());
+    $this->assertEquals('Assimil', $this->_service->getName());
   }
 
 
@@ -213,7 +262,7 @@ class AssimilServiceHarvestTest extends AssimilServiceTestCase {
 
   /** @test */
   public function albumEditeurShouldContainsAssimil() {
-    $this->assertEquals('ASSIMIL', $this->_e_course->getEditors()[0]);
+    $this->assertEquals('Assimil', $this->_e_course->getEditors()[0]);
   }
 
 
@@ -414,7 +463,7 @@ abstract class AssimilModulesControllerAssimilTestCase extends AbstractControlle
   public function setUp() {
     parent::setUp();
 
-    RessourcesNumeriquesFixtures::activateAssimil();
+    ActivateAssimil::activate();
 
     $right = Class_UserGroup::RIGHT_ACCESS_ASSIMIL;
 
diff --git a/tests/application/modules/opac/controllers/ProfilOptionsControllerTest.php b/tests/application/modules/opac/controllers/ProfilOptionsControllerTest.php
index 89fc7c63abe05fe60afdf26fc93d630603108c36..4e59ddcf81bad5f69b6ce5a6a7278a80f1ded099 100644
--- a/tests/application/modules/opac/controllers/ProfilOptionsControllerTest.php
+++ b/tests/application/modules/opac/controllers/ProfilOptionsControllerTest.php
@@ -51,7 +51,6 @@ abstract class ProfilOptionsControllerWithProfilAdulteTestCase extends AbstractC
 
 
   function setUpProfilAdulte() {
-    RessourcesNumeriquesFixtures::activateAssimil();
 
     $cfg_menus = ['H' => ['libelle' => 'Menu horizontal',
                           'picto' => 'vide.gif',
@@ -371,11 +370,6 @@ class ProfilOptionsControllerProfilAdulteWithCacheTest extends ProfilOptionsCont
   }
 
 
-  /** @test */
-  public function linkToAssimilShouldBePresent() {
-    $this->assertXPathContentContains('//ul//li//a[contains(@href, "/modules/assimil")]',
-                                      'Lien vers Assimil',$this->_response->getBody());
-  }
 }
 
 
diff --git a/tests/fixtures/RessourcesNumeriquesFixtures.php b/tests/fixtures/RessourcesNumeriquesFixtures.php
index bf105c46817bd74ec402aa8763e805cac3d89dca..91ac48fac8ce2ec69cbff70c4185508f403c604b 100644
--- a/tests/fixtures/RessourcesNumeriquesFixtures.php
+++ b/tests/fixtures/RessourcesNumeriquesFixtures.php
@@ -40,7 +40,6 @@ class RessourcesNumeriquesFixtures {
     self::deactivateOrthodidacte();
     self::deactivateLeSocial();
     self::deactivateCiteDeLaMusique();
-    self::deactivateAssimil();
   }
 
 
@@ -65,7 +64,6 @@ class RessourcesNumeriquesFixtures {
     self::activateOrthodidacte();
     self::activateLeSocial();
     self::activateCiteDeLaMusique();
-    self::activateAssimil();
   }
 
 
@@ -324,13 +322,4 @@ class RessourcesNumeriquesFixtures {
     Class_AdminVar::newInstanceWithId('CITEDELAMUSIQUE_SETS', ['valeur' => '']);
   }
 
-
-  public static function activateAssimil() {
-    Class_AdminVar::newInstanceWithId('Assimil_ASSIMIL', ['valeur' => '1']);
-  }
-
-
-  public static function deactivateAssimil() {
-    Class_AdminVar::newInstanceWithId('Assimil_ASSIMIL', ['valeur' => '']);
-  }
 }