From d00abfcd29c672029a6e4a22b936e9ab42c97e7a Mon Sep 17 00:00:00 2001 From: MDW Date: Thu, 4 Apr 2024 04:31:55 +0200 Subject: [PATCH] Add test for Conf --- test/phpunit/AllTests.php | 2 + test/phpunit/ConfTest.php | 91 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 test/phpunit/ConfTest.php diff --git a/test/phpunit/AllTests.php b/test/phpunit/AllTests.php index 3f1a3409918cd..9f0f00842d8bd 100644 --- a/test/phpunit/AllTests.php +++ b/test/phpunit/AllTests.php @@ -81,6 +81,8 @@ public static function suite() //$suite->addTestSuite('CoreTest'); require_once dirname(__FILE__).'/AdminLibTest.php'; $suite->addTestSuite('AdminLibTest'); + require_once dirname(__FILE__).'/ConfTest.php'; + $suite->addTestSuite('ConfTest'); require_once dirname(__FILE__).'/CompanyLibTest.php'; $suite->addTestSuite('CompanyLibTest'); require_once dirname(__FILE__).'/DateLibTest.php'; diff --git a/test/phpunit/ConfTest.php b/test/phpunit/ConfTest.php new file mode 100644 index 0000000000000..9b83d413c590e --- /dev/null +++ b/test/phpunit/ConfTest.php @@ -0,0 +1,91 @@ + + * Copyright (C) 2023 Alexandre Janniaux + * Copyright (C) 2024 MDW + * + * 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 3 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, see . + * or see https://www.gnu.org/ + */ + +/** + * \file test/phpunit/FactureRecTest.php + * \ingroup test + * \brief PHPUnit test + * \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/Autoload.php'; +require_once dirname(__FILE__).'/../../htdocs/master.inc.php'; +require_once dirname(__FILE__).'/CommonClassTest.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; + + +/** + * Class for PHPUnit tests + * + * @backupGlobals disabled + * @backupStaticAttributes enabled + * @remarks backupGlobals must be disabled to have db,conf,user and lang not erased. + */ +class ConfTest extends CommonClassTest +{ + /** + * Provider for moduleMap test. + * + * TODO: extend to help test expected dir_output path which depends + * on module name, so extra list is needed + * + * @return array + */ + public function moduleMapProvider() + { + $tests = []; + foreach (self::DEPRECATED_MODULE_MAPPING as $old => $new) { + $tests[$old] = [$old, $new]; + } + return $tests; + } + + /** + * testModulePaths + * + * @dataProvider moduleMapProvider + * + * @param string $old Module + * @param string $new New Module + * @return void + */ + public function testModulePaths($old, $new) + { + global $conf,$user,$langs,$db; + + $conf = $this->savconf; + $user = $this->savuser; + $langs = $this->savlangs; + $db = $this->savdb; + + print "DIR_OUTPUT for $old is {$conf->$old->dir_output}".PHP_EOL; + print "DIR_OUTPUT for $new is {$conf->$new->dir_output}".PHP_EOL; + $this->assertEquals($conf->$old->dir_output, $conf->$new->dir_output, "Old and new dir_output must be equal"); + $this->assertEquals($conf->$old->dir_output, $conf->$new->dir_output, "Old and new dir_output must be equal"); + } +}