* @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ class version_helper_remote_test extends \phpbb_test_case { protected $file_downloader; protected $cache; protected $version_helper; public function setUp(): void { parent::setUp(); global $phpbb_root_path, $phpEx; include_once($phpbb_root_path . 'includes/functions.' . $phpEx); $config = new \phpbb\config\config(array( 'version' => '3.1.0', )); $container = new \phpbb_mock_container_builder(); $db = new \phpbb\db\driver\factory($container); $this->cache = $this->getMockBuilder('\phpbb\cache\service') ->setMethods(array('get')) ->setConstructorArgs(array(new \phpbb\cache\driver\dummy(), $config, $db, '../../', 'php')) ->getMock(); $this->cache->expects($this->any()) ->method('get') ->with($this->anything()) ->will($this->returnValue(false)); $this->file_downloader = new phpbb_mock_file_downloader(); $lang_loader = new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx); $this->version_helper = new \phpbb\version_helper( $this->cache, $config, $this->file_downloader ); $this->user = new \phpbb\user(new \phpbb\language\language($lang_loader), '\phpbb\datetime'); $this->user->add_lang('acp/common'); } public function provider_get_versions() { return array( array('', false, '', 'VERSIONCHECK_FAIL'), array('foobar', false, '', 'VERSIONCHECK_FAIL'), array('{ "stable": { "1.0": { "current": "1.0.1", "download": "https://www.phpbb.com/customise/db/download/104136", "announcement": "https://www.phpbb.com/customise/db/extension/boardrules/", "eol": null, "security": false } } }', true, array ( 'stable' => array ( '1.0' => array ( 'current' => '1.0.1', 'download' => 'https://www.phpbb.com/customise/db/download/104136', 'announcement' => 'https://www.phpbb.com/customise/db/extension/boardrules/', 'eol' => NULL, 'security' => false, ), ), 'unstable' => array ( '1.0' => array ( 'current' => '1.0.1', 'download' => 'https://www.phpbb.com/customise/db/download/104136', 'announcement' => 'https://www.phpbb.com/customise/db/extension/boardrules/', 'eol' => NULL, 'security' => false, ), ), )), array('{ "foobar": { "1.0": { "current": "1.0.1", "download": "https://www.phpbb.com/customise/db/download/104136", "announcement": "https://www.phpbb.com/customise/db/extension/boardrules/", "eol": null, "security": false } } }', false, '', 'VERSIONCHECK_FAIL'), array('{ "stable": { "1.0": { "current": "1.0.1", "download": "https://www.phpbb.com/customise/db/download/104136", "announcement": "https://www.phpbb.com/customise/db/extension/boardrules/", "eol": "", "security": "" } } }', false, null, 'VERSIONCHECK_INVALID_VERSION'), array('{ "unstable": { "1.0": { "current": "1.0.1", "download": "https://www.phpbb.com/customise/db/download/104136", "announcement": "https://www.phpbb.com/customise/db/extension/boardrules/", "eol": "", "security": "" } } }', false, null, 'VERSIONCHECK_INVALID_VERSION'), array('{ "unstable": { "1.0": { "current": "1.0.1", "download": "https://www.phpbb.com/customise/db/download/104136", "announcement": "https://www.phpbb.com/customise/db/extension/boardrules/", "eol": "", "security": "" } } }', false, array('stable' => array(), 'unstable' => array()), 'VERSIONCHECK_INVALID_VERSION'), array('{ "\"\n\n": "test", "stable": { "1.0": { "current": "1.0.1", "download": "https://www.phpbb.com/customise/db/download/104136", "announcement": "https://www.phpbb.com/customise/db/extension/boardrules/", "eol": null, "security": false } } }', true, array ( 'stable' => array ( '1.0' => array ( 'current' => '1.0.1', 'download' => 'https://www.phpbb.com/customise/db/download/104136', 'announcement' => 'https://www.phpbb.com/customise/db/extension/boardrules/', 'eol' => NULL, 'security' => false, ), ), 'unstable' => array ( '1.0' => array ( 'current' => '1.0.1', 'download' => 'https://www.phpbb.com/customise/db/download/104136', 'announcement' => 'https://www.phpbb.com/customise/db/extension/boardrules/', 'eol' => NULL, 'security' => false, ), ), )), array('{ "unstable": { "1.0": { "current": "1.0.1", "download": "https://www.phpbb.com/customise/db/download/104136", "announcement": "https://www.phpbb.com/customise/db/extension/boardrules/", "eol": null, "security": false, "foobar": "": "1.0.1", "download2": "https://www.phpbb.com/customise/db/download/104136", "bannouncement": "https://www.phpbb.com/customise/db/extension/boardrules/", "eol": null, "security": false, "foobar": "