+# Patches and log files in root directory
/*.log
/*.diff
/*.path
+
+# Generated files
/contrib/chash/chash.pos
/contrib/lfdb2/*.bin*
/contrib/lfdb2/*.out*
+
+# Generated mindmap files
/contrib/mindmaps/*.png
/contrib/mindmaps/*.svg
+
+# Global local configuration file
/inc/config/config-local.php
+
+# Private aka. "local" NetBeans files
/nbproject/private/*
+
+# Cached/"compiled" tempaltes
/templates/_compiled/*.*
/templates/images/_cache/*.*
+
+# Backup files
*.*~
-/.cache
-/.project
-/.settings
+
+# Local configuration files are never committed
/application/*/config-local.php
+
+# Database files are always ignored
/db/*/*.serialized
+
+# Generated documentation files are being regenerated
/docs/html/*
/docs/latex/*
-/docs/warn.log
+
+# Any log files
+/docs/*.log
+
+# Generates reports should be ignored
/reports/
+
+# Vendor directories should never be committed
/vendor/
+
+# Local settings for PHPUnit
/phpunit.xml
+
+# Local cache files by PHPUnit
+/.*.cache
+
+# ???
+/.cache
+/.project
+/.settings
<?xml version="1.0" encoding="UTF-8"?>
-<phpunit backupGlobals="false"
+<phpunit
+ backupGlobals="false"
backupStaticAttributes="false"
colors="true"
convertErrorsToExceptions="true"
bootstrap="./tests/bootstrap.php"
>
<testsuites>
- <testsuite name="CoreFramework Test Suite">
+ <testsuite name="Core Framework Test Suite">
<directory>./tests/</directory>
</testsuite>
</testsuites>
--- /dev/null
+<?php
+// Same namespace as target class
+namespace Org\Mxchange\CoreFramework\Bootstrap;
+
+// Inport framework stuff
+use Org\Mxchange\CoreFramework\Console\Tools\ConsoleTools;
+use Org\Mxchange\CoreFramework\Generic\NullPointerException;
+use Org\Mxchange\CoreFramework\Generic\UnsupportedOperationException;
+use Org\Mxchange\CoreFramework\Loader\ClassLoader;
+
+// Import PHPUnit stuff
+use PHPUnit\Framework\Error\Notice;
+use PHPUnit\Framework\TestCase;
+
+// Import SPL stuff
+use \InvalidArgumentException;
+use \SplFileInfo;
+
+/*
+ * Copyright (C) 2017 - 2023 Core Developer Team
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+class FrameworkBootstrapTest extends TestCase {
+
+ /**
+ * Own IP address
+ */
+ private static $ipAddress = '0.0.0.0';
+
+ /**
+ * Own host name
+ */
+ private static $hostname = 'host.invalid';
+
+ /**
+ * Setup test case
+ *
+ * @return void
+ */
+ public function setUp(): void {
+ // Trace message
+ //* NOISY-DEBUG: */ printf('[%s:%d]: CALLED!' . PHP_EOL, __METHOD__, __LINE__);
+
+ // Call parent method
+ parent::setUp();
+
+ // Trace message
+ //* NOISY-DEBUG: */ printf('[%s:%d]: EXIT!' . PHP_EOL, __METHOD__, __LINE__);
+ }
+
+ /**
+ * Setup test case
+ *
+ * @return void
+ */
+ public static function setUpBeforeClass(): void {
+ // Call parent method
+ //* NOISY-DEBUG: */ printf('[%s:%d]: CALLED!' . PHP_EOL, __METHOD__, __LINE__);
+ parent::setUpBeforeClass();
+
+ // Lookup own hostname
+ self::$hostname = ConsoleTools::acquireHostname();
+
+ // Lookup own IP address
+ self::$ipAddress = ConsoleTools::acquireSelfIpAddress();
+
+ // Trace message
+ //* NOISY-DEBUG: */ printf('[%s:%d]: self::ipAddress[%s]=%s,self::hostname=%s - EXIT!' . PHP_EOL, __METHOD__, __LINE__, gettype(self::$ipAddress), self::$ipAddress, self::$hostname);
+ }
+
+ /**
+ * Tests setting an empty default timezone
+ */
+ public function testSettingEmptyDefaultTimezone () {
+ // Will throw this exception
+ $this->expectException(InvalidArgumentException::class);
+
+ // Test it
+ FrameworkBootstrap::setDefaultTimezone('');
+ }
+
+ /**
+ * Tests setting invalid timezone
+ */
+ public function testSettingInvalidDefaultTimezone () {
+ // Expect Notice
+ $this->expectException(Notice::class);
+
+ // Try to set it
+ FrameworkBootstrap::setDefaultTimezone('!invalid!');
+ }
+
+ /**
+ * Tests setting valid timezone
+ */
+ public function testSettingValidDefaultTimezone () {
+ // Will be true
+ $this->assertTrue(FrameworkBootstrap::setDefaultTimezone('Europe/Berlin'));
+ }
+
+ /**
+ * Tests if detectServerAddress() is returning what it should for tests.
+ * This will always be 127.0.0.1.
+ */
+ public function testBootstrapDetectServerAddress () {
+ // Call it
+ $serverAddress = FrameworkBootstrap::detectServerAddress();
+
+ // Should be the same
+ $this->assertEquals(self::$ipAddress, $serverAddress);
+ }
+
+ /**
+ * Re-tests if detectServerAddress() is returning what it should for tests.
+ * This will always be 127.0.0.1. This method should not invoke
+ * ConsoleTools's method as the configuration entry is already cached.
+ */
+ public function testBootstrapDetectServerAddressCached () {
+ // Call it
+ //* NOISY-DEBUG: */ printf('[%s:%d]: CALLED!' . PHP_EOL, __METHOD__, __LINE__);
+ $serverAddress = FrameworkBootstrap::detectServerAddress();
+
+ // Should be the same
+ //* NOISY-DEBUG: */ printf('[%s:%d]: self::ipAddress=%s,serverAddress=%s' . PHP_EOL, __METHOD__, __LINE__, self::$ipAddress, $serverAddress);
+ $this->assertEquals(self::$ipAddress, $serverAddress);
+
+ // Trace message
+ //* NOISY-DEBUG: */ printf('[%s:%d]: EXIT!' . PHP_EOL, __METHOD__, __LINE__);
+ }
+
+ /**
+ * Tests method BootstrapFramework::isReachableFilePath() with a
+ * non-existing path. $isReachable should always return TRUE as nothing is
+ * restricting PHP.
+ */
+ public function testBootstrapIsReachableFilePathUnrestrictedNotExisting () {
+ // Init SPL file info instance
+ //* NOISY-DEBUG: */ printf('[%s:%d]: CALLED!' . PHP_EOL, __METHOD__, __LINE__);
+ $infoInstance = new SplFileInfo('/does/not/exist/');
+
+ // Invoke method
+ //* NOISY-DEBUG: */ printf('[%s:%d]: infoInstance=%s' . PHP_EOL, __METHOD__, __LINE__, get_class($infoInstance));
+ $isReachable = FrameworkBootstrap::isReachableFilePath($infoInstance);
+
+ // Test if it is not reachable
+ //* NOISY-DEBUG: */ printf('[%s:%d]: isReachable=%d' . PHP_EOL, __METHOD__, __LINE__, intval($isReachable));
+ $this->assertTrue($isReachable, 'Returned true on a non-existing path');
+
+ // Trace message
+ //* NOISY-DEBUG: */ printf('[%s:%d]: EXIT!' . PHP_EOL, __METHOD__, __LINE__);
+ }
+
+ /**
+ * Tests method BootstrapFramework::isReachableFilePath() with a
+ * non-existing path. $isReachable should be FALSE here as it is always
+ * outside the scope of open_basedir.
+ */
+ public function testBootstrapIsReachableFilePathRestrictedNotExisting () {
+ // Init SPL file info instance
+ //* NOISY-DEBUG: */ printf('[%s:%d]: CALLED!' . PHP_EOL, __METHOD__, __LINE__);
+ $infoInstance = new SplFileInfo('/does/not/exist/');
+
+ // "Detect" root path
+ //* NOISY-DEBUG: */ printf('[%s:%d]: infoInstance=%s' . PHP_EOL, __METHOD__, __LINE__, get_class($infoInstance));
+ $rootScriptPath = realpath(dirname(dirname(FrameworkBootstrap::detectScriptPath())));
+
+ // Set it
+ //* NOISY-DEBUG: */ printf('[%s:%d]: open_basedir=%s,rootScriptPath[%s]=%s' . PHP_EOL, __METHOD__, __LINE__, ini_get('open_basedir'), gettype($rootScriptPath), $rootScriptPath);
+ $result = ini_set('open_basedir', $rootScriptPath . ':/etc/');
+
+ // Was it set?
+ //* NOISY-DEBUG: */ printf('[%s:%d]: result[]=%s' . PHP_EOL, __METHOD__, __LINE__, gettype($result));
+ if ($result === FALSE) {
+ // Didn't work
+ $this->failed(sprintf('Cannot set open_basepath=%s', $rootScriptPath));
+ }
+
+ // Invoke method
+ //* NOISY-DEBUG: */ printf('[%s:%d]: Testing method FrameworkBootstrap::isReachableFilePath(%s) ...' . PHP_EOL, __METHOD__, __LINE__, get_class($infoInstance));
+ $isReachable = FrameworkBootstrap::isReachableFilePath($infoInstance);
+
+ // Test if
+ //* NOISY-DEBUG: */ printf('[%s:%d]: isReachable=%d - Testing method ...' . PHP_EOL, __METHOD__, __LINE__, intval($isReachable));
+ $this->assertTrue(!$isReachable, 'Returned true on a non-existing path');
+
+ // Trace message
+ //* NOISY-DEBUG: */ printf('[%s:%d]: EXIT!' . PHP_EOL, __METHOD__, __LINE__);
+ }
+
+ /**
+ * Tests method BootstrapFramework::isReachableFilePath() with an
+ * existing path. $isReachable should be TRUE here as it is within the scope
+ * of open_basedir.
+ */
+ public function testBootstrapIsReachableFilePathRestrictedExisting () {
+ // Init SPL file info instance
+ //* NOISY-DEBUG: */ printf('[%s:%d]: CALLED!' . PHP_EOL, __METHOD__, __LINE__);
+ $infoInstance = new SplFileInfo(__DIR__);
+
+ // "Detect" root path
+ //* NOISY-DEBUG: */ printf('[%s:%d]: infoInstance=%s' . PHP_EOL, __METHOD__, __LINE__, get_class($infoInstance));
+ $rootScriptPath = realpath(dirname(dirname(FrameworkBootstrap::detectScriptPath())));
+
+ // Set it
+ //* NOISY-DEBUG: */ printf('[%s:%d]: rootScriptPath[%s]=%s' . PHP_EOL, __METHOD__, __LINE__, gettype($rootScriptPath), $rootScriptPath);
+ $result = ini_set('open_basedir', $rootScriptPath . ':/etc/');
+
+ // Was it set?
+ //* NOISY-DEBUG: */ printf('[%s:%d]: result[]=%s' . PHP_EOL, __METHOD__, __LINE__, gettype($result));
+ if ($result === FALSE) {
+ // Didn't work
+ $this->failed(sprintf('Cannot set open_basepath=%s', $rootScriptPath));
+ }
+
+ // Invoke method
+ //* NOISY-DEBUG: */ printf('[%s:%d]: Testing method FrameworkBootstrap::isReachableFilePath(%s) ...' . PHP_EOL, __METHOD__, __LINE__, get_class($infoInstance));
+ $isReachable = FrameworkBootstrap::isReachableFilePath($infoInstance);
+
+ // Test if
+ //* NOISY-DEBUG: */ printf('[%s:%d]: isReachable=%d - Testing method ...' . PHP_EOL, __METHOD__, __LINE__, intval($isReachable));
+ $this->assertTrue($isReachable, 'Returned true on a non-existing path');
+
+ // Trace message
+ //* NOISY-DEBUG: */ printf('[%s:%d]: EXIT!' . PHP_EOL, __METHOD__, __LINE__);
+ }
+
+}
+++ /dev/null
-<?php
-// Same namespace as target class
-namespace Org\Mxchange\CoreFramework\Bootstrap;
-
-// Inport framework stuff
-use Org\Mxchange\CoreFramework\Console\Tools\ConsoleTools;
-use Org\Mxchange\CoreFramework\Generic\NullPointerException;
-use Org\Mxchange\CoreFramework\Generic\UnsupportedOperationException;
-use Org\Mxchange\CoreFramework\Loader\ClassLoader;
-
-// Import PHPUnit stuff
-use PHPUnit\Framework\Error\Notice;
-use PHPUnit\Framework\TestCase;
-
-// Import SPL stuff
-use \InvalidArgumentException;
-use \SplFileInfo;
-
-/*
- * Copyright (C) 2017 - 2023 Core Developer Team
- *
- * 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 <http://www.gnu.org/licenses/>.
- */
-class FrameworkBootstrapTest extends TestCase {
-
- /**
- * Own IP address
- */
- private static $ipAddress = '0.0.0.0';
-
- /**
- * Own host name
- */
- private static $hostname = 'host.invalid';
-
- /**
- * Setup test case
- */
- public function setUp() {
- // Trace message
- //* NOISY-DEBUG: */ printf('[%s:%d]: CALLED!' . PHP_EOL, __METHOD__, __LINE__);
-
- // Call parent method
- parent::setUp();
-
- // Trace message
- //* NOISY-DEBUG: */ printf('[%s:%d]: EXIT!' . PHP_EOL, __METHOD__, __LINE__);
- }
-
- /**
- * Setup test case
- */
- public static function setUpBeforeClass() {
- // Call parent method
- //* NOISY-DEBUG: */ printf('[%s:%d]: CALLED!' . PHP_EOL, __METHOD__, __LINE__);
- parent::setUpBeforeClass();
-
- // Lookup own hostname
- self::$hostname = ConsoleTools::acquireHostname();
-
- // Lookup own IP address
- self::$ipAddress = ConsoleTools::acquireSelfIpAddress();
-
- // Trace message
- //* NOISY-DEBUG: */ printf('[%s:%d]: self::ipAddress[%s]=%s,self::hostname=%s - EXIT!' . PHP_EOL, __METHOD__, __LINE__, gettype(self::$ipAddress), self::$ipAddress, self::$hostname);
- }
-
- /**
- * Tests setting an empty default timezone
- */
- public function testSettingEmptyDefaultTimezone () {
- // Will throw this exception
- $this->expectException(InvalidArgumentException::class);
-
- // Test it
- FrameworkBootstrap::setDefaultTimezone('');
- }
-
- /**
- * Tests setting invalid timezone
- */
- public function testSettingInvalidDefaultTimezone () {
- // Expect Notice
- $this->expectException(Notice::class);
-
- // Try to set it
- FrameworkBootstrap::setDefaultTimezone('!invalid!');
- }
-
- /**
- * Tests setting valid timezone
- */
- public function testSettingValidDefaultTimezone () {
- // Will be true
- $this->assertTrue(FrameworkBootstrap::setDefaultTimezone('Europe/Berlin'));
- }
-
- /**
- * Tests if detectServerAddress() is returning what it should for tests.
- * This will always be 127.0.0.1.
- */
- public function testBootstrapDetectServerAddress () {
- // Call it
- $serverAddress = FrameworkBootstrap::detectServerAddress();
-
- // Should be the same
- $this->assertEquals(self::$ipAddress, $serverAddress);
- }
-
- /**
- * Re-tests if detectServerAddress() is returning what it should for tests.
- * This will always be 127.0.0.1. This method should not invoke
- * ConsoleTools's method as the configuration entry is already cached.
- */
- public function testBootstrapDetectServerAddressCached () {
- // Call it
- //* NOISY-DEBUG: */ printf('[%s:%d]: CALLED!' . PHP_EOL, __METHOD__, __LINE__);
- $serverAddress = FrameworkBootstrap::detectServerAddress();
-
- // Should be the same
- //* NOISY-DEBUG: */ printf('[%s:%d]: self::ipAddress=%s,serverAddress=%s' . PHP_EOL, __METHOD__, __LINE__, self::$ipAddress, $serverAddress);
- $this->assertEquals(self::$ipAddress, $serverAddress);
-
- // Trace message
- //* NOISY-DEBUG: */ printf('[%s:%d]: EXIT!' . PHP_EOL, __METHOD__, __LINE__);
- }
-
- /**
- * Tests method BootstrapFramework::isReachableFilePath() with a
- * non-existing path. $isReachable should always return TRUE as nothing is
- * restricting PHP.
- */
- public function testBootstrapIsReachableFilePathUnrestrictedNotExisting () {
- // Init SPL file info instance
- //* NOISY-DEBUG: */ printf('[%s:%d]: CALLED!' . PHP_EOL, __METHOD__, __LINE__);
- $infoInstance = new SplFileInfo('/does/not/exist/');
-
- // Invoke method
- //* NOISY-DEBUG: */ printf('[%s:%d]: infoInstance=%s' . PHP_EOL, __METHOD__, __LINE__, get_class($infoInstance));
- $isReachable = FrameworkBootstrap::isReachableFilePath($infoInstance);
-
- // Test if it is not reachable
- //* NOISY-DEBUG: */ printf('[%s:%d]: isReachable=%d' . PHP_EOL, __METHOD__, __LINE__, intval($isReachable));
- $this->assertTrue($isReachable, 'Returned true on a non-existing path');
-
- // Trace message
- //* NOISY-DEBUG: */ printf('[%s:%d]: EXIT!' . PHP_EOL, __METHOD__, __LINE__);
- }
-
- /**
- * Tests method BootstrapFramework::isReachableFilePath() with a
- * non-existing path. $isReachable should be FALSE here as it is always
- * outside the scope of open_basedir.
- */
- public function testBootstrapIsReachableFilePathRestrictedNotExisting () {
- // Init SPL file info instance
- //* NOISY-DEBUG: */ printf('[%s:%d]: CALLED!' . PHP_EOL, __METHOD__, __LINE__);
- $infoInstance = new SplFileInfo('/does/not/exist/');
-
- // "Detect" root path
- //* NOISY-DEBUG: */ printf('[%s:%d]: infoInstance=%s' . PHP_EOL, __METHOD__, __LINE__, get_class($infoInstance));
- $rootScriptPath = realpath(dirname(dirname(FrameworkBootstrap::detectScriptPath())));
-
- // Set it
- //* NOISY-DEBUG: */ printf('[%s:%d]: open_basedir=%s,rootScriptPath[%s]=%s' . PHP_EOL, __METHOD__, __LINE__, ini_get('open_basedir'), gettype($rootScriptPath), $rootScriptPath);
- $result = ini_set('open_basedir', $rootScriptPath . ':/etc/');
-
- // Was it set?
- //* NOISY-DEBUG: */ printf('[%s:%d]: result[]=%s' . PHP_EOL, __METHOD__, __LINE__, gettype($result));
- if ($result === FALSE) {
- // Didn't work
- $this->failed(sprintf('Cannot set open_basepath=%s', $rootScriptPath));
- }
-
- // Invoke method
- //* NOISY-DEBUG: */ printf('[%s:%d]: Testing method FrameworkBootstrap::isReachableFilePath(%s) ...' . PHP_EOL, __METHOD__, __LINE__, get_class($infoInstance));
- $isReachable = FrameworkBootstrap::isReachableFilePath($infoInstance);
-
- // Test if
- //* NOISY-DEBUG: */ printf('[%s:%d]: isReachable=%d - Testing method ...' . PHP_EOL, __METHOD__, __LINE__, intval($isReachable));
- $this->assertTrue(!$isReachable, 'Returned true on a non-existing path');
-
- // Trace message
- //* NOISY-DEBUG: */ printf('[%s:%d]: EXIT!' . PHP_EOL, __METHOD__, __LINE__);
- }
-
- /**
- * Tests method BootstrapFramework::isReachableFilePath() with an
- * existing path. $isReachable should be TRUE here as it is within the scope
- * of open_basedir.
- */
- public function testBootstrapIsReachableFilePathRestrictedExisting () {
- // Init SPL file info instance
- //* NOISY-DEBUG: */ printf('[%s:%d]: CALLED!' . PHP_EOL, __METHOD__, __LINE__);
- $infoInstance = new SplFileInfo(__DIR__);
-
- // "Detect" root path
- //* NOISY-DEBUG: */ printf('[%s:%d]: infoInstance=%s' . PHP_EOL, __METHOD__, __LINE__, get_class($infoInstance));
- $rootScriptPath = realpath(dirname(dirname(FrameworkBootstrap::detectScriptPath())));
-
- // Set it
- //* NOISY-DEBUG: */ printf('[%s:%d]: rootScriptPath[%s]=%s' . PHP_EOL, __METHOD__, __LINE__, gettype($rootScriptPath), $rootScriptPath);
- $result = ini_set('open_basedir', $rootScriptPath . ':/etc/');
-
- // Was it set?
- //* NOISY-DEBUG: */ printf('[%s:%d]: result[]=%s' . PHP_EOL, __METHOD__, __LINE__, gettype($result));
- if ($result === FALSE) {
- // Didn't work
- $this->failed(sprintf('Cannot set open_basepath=%s', $rootScriptPath));
- }
-
- // Invoke method
- //* NOISY-DEBUG: */ printf('[%s:%d]: Testing method FrameworkBootstrap::isReachableFilePath(%s) ...' . PHP_EOL, __METHOD__, __LINE__, get_class($infoInstance));
- $isReachable = FrameworkBootstrap::isReachableFilePath($infoInstance);
-
- // Test if
- //* NOISY-DEBUG: */ printf('[%s:%d]: isReachable=%d - Testing method ...' . PHP_EOL, __METHOD__, __LINE__, intval($isReachable));
- $this->assertTrue($isReachable, 'Returned true on a non-existing path');
-
- // Trace message
- //* NOISY-DEBUG: */ printf('[%s:%d]: EXIT!' . PHP_EOL, __METHOD__, __LINE__);
- }
-
-}
/**
* Setup test case
+ *
+ * @return void
*/
- public function setUp() {
+ public function setUp(): void {
// Trace message
//* NOISY-DEBUG: */ printf('[%s:%d]: CALLED!' . PHP_EOL, __METHOD__, __LINE__);
/**
* Setup test case
+ *
+ * @return void
*/
- public static function setUpBeforeClass() {
+ public static function setUpBeforeClass(): void {
// Trace message
//* NOISY-DEBUG: */ printf('[%s:%d]: CALLED!' . PHP_EOL, __METHOD__, __LINE__);