From 2c000c20da9cd2c184b23472e6142f679950668d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= <rdoursenaud@gpcsolutions.fr>
Date: Sat, 23 Jul 2016 01:53:11 +0200
Subject: [PATCH] Prevent PHP notice on unitialized variables.

These variables are expected to be uninitialized when the forced install
process is not used.
---
 htdocs/install/fileconf.php                   |  6 ++--
 htdocs/install/step4.php                      |  2 +-
 .../functional/DolibarrInstallTest.php        | 33 +++++++++++++++++++
 3 files changed, 37 insertions(+), 4 deletions(-)
 create mode 100644 test/phpunit/zenfusion/functional/DolibarrInstallTest.php

diff --git a/htdocs/install/fileconf.php b/htdocs/install/fileconf.php
index 1782be430bc..32e495fffaf 100644
--- a/htdocs/install/fileconf.php
+++ b/htdocs/install/fileconf.php
@@ -151,7 +151,7 @@ if (! empty($force_install_message))
 		<td valign="top" class="label"><b> <?php print $langs->trans("DocumentsDirectory"); ?></b>
 		</td>
 		<?php
-		$dolibarr_main_data_root = $force_install_main_data_root;
+		$dolibarr_main_data_root = @$force_install_main_data_root;
 		if (empty($dolibarr_main_data_root)) {
 			$dolibarr_main_data_root = detect_dolibarr_main_data_root($dolibarr_main_document_root);
 		}
@@ -478,7 +478,7 @@ if (! empty($force_install_message))
 			       id="db_user_root"
 			       name="db_user_root"
 			       class="needroot"
-			       value="<?php print (!empty($force_install_databaserootlogin)) ? $force_install_databaserootlogin : $db_user_root; ?>"
+			       value="<?php print (!empty($force_install_databaserootlogin)) ? $force_install_databaserootlogin : @$db_user_root; ?>"
 				<?php if ($force_install_noedit == 2 && $force_install_databaserootlogin !== null) {
 					print 'disabled';
 				} ?>
@@ -506,7 +506,7 @@ if (! empty($force_install_message))
 			       class="needroot"
 			       value="<?php
 			       // We don't want to set password. It will be extracted from the forced install file at step1.
-			       $autofill = ((!empty($force_install_database_rootpass)) ? '' : $db_pass_root);
+			       $autofill = ((!empty($force_install_database_rootpass)) ? '' : @$db_pass_root);
 			       if (!empty($dolibarr_main_prod)) {
 				       $autofill = '';
 			       }    // Do not autofill password if instance is a production instance
diff --git a/htdocs/install/step4.php b/htdocs/install/step4.php
index 0f9ce2e4590..ce16596bdbf 100644
--- a/htdocs/install/step4.php
+++ b/htdocs/install/step4.php
@@ -79,7 +79,7 @@ $db=getDoliDBInstance($conf->db->type,$conf->db->host,$conf->db->user,$conf->db-
 if ($db->ok)
 {
     print '<tr><td>'.$langs->trans("DolibarrAdminLogin").' :</td><td>';
-	print '<input name="login" type="text" value="' . (!empty($_GET["login"]) ? $_GET["login"] : (isset($force_install_dolibarrlogin) ? $force_install_dolibarrlogin : '')) . '"' . ($force_install_noedit == 2 && $force_install_dolibarrlogin !== null ? ' disabled' : '') . '></td></tr>';
+	print '<input name="login" type="text" value="' . (!empty($_GET["login"]) ? $_GET["login"] : (isset($force_install_dolibarrlogin) ? $force_install_dolibarrlogin : '')) . '"' . (@$force_install_noedit == 2 && $force_install_dolibarrlogin !== null ? ' disabled' : '') . '></td></tr>';
     print '<tr><td>'.$langs->trans("Password").' :</td><td>';
     print '<input type="password" name="pass"></td></tr>';
     print '<tr><td>'.$langs->trans("PasswordAgain").' :</td><td>';
diff --git a/test/phpunit/zenfusion/functional/DolibarrInstallTest.php b/test/phpunit/zenfusion/functional/DolibarrInstallTest.php
new file mode 100644
index 00000000000..5fcb37fdb63
--- /dev/null
+++ b/test/phpunit/zenfusion/functional/DolibarrInstallTest.php
@@ -0,0 +1,33 @@
+<?php
+
+class ZenFusionInstallTest extends PHPUnit_Extensions_Selenium2TestCase
+{
+	public function setUp()
+	{
+		$this->setHost('localhost');
+		$this->setPort(4444);
+		$this->setBrowserUrl('http://dev.zenfusion.fr');
+		$this->setBrowser('chrome');
+	}
+
+	public function setUpPage()
+	{
+		$this->url('/');
+	}
+
+	public function testInstallRedirect()
+	{
+		$this->assertContains('/install/index.php', $this->url());
+	}
+
+	public function testInstallPageTitle()
+	{
+		$this->assertContains('Dolibarr', $this->title());
+	}
+
+	public function testInstallProcess()
+	{
+		$this->byName('forminstall')->submit();
+		$this->assertContains('/install/check.php', $this->url());
+	}
+}
-- 
GitLab