parent
b70436373b
commit
4ff3ed1c47
3 changed files with 96 additions and 1 deletions
|
@ -457,6 +457,32 @@ public function updateMethodVisibilitySession()
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add download size and timeout to the configuration file
|
||||||
|
*
|
||||||
|
* @return bool true if the update is successful, false otherwise.
|
||||||
|
*/
|
||||||
|
public function updateMethodDownloadSizeAndTimeoutConf()
|
||||||
|
{
|
||||||
|
if ($this->conf->exists('general.download_max_size')
|
||||||
|
&& $this->conf->exists('general.download_timeout')
|
||||||
|
) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $this->conf->exists('general.download_max_size')) {
|
||||||
|
$this->conf->set('general.download_max_size', 1024*1024*4);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $this->conf->exists('general.download_timeout')) {
|
||||||
|
$this->conf->set('general.download_timeout', 30);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->conf->write($this->isLoggedIn);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1376,7 +1376,12 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager,
|
||||||
if (empty($title) && strpos(get_url_scheme($url), 'http') !== false) {
|
if (empty($title) && strpos(get_url_scheme($url), 'http') !== false) {
|
||||||
// Short timeout to keep the application responsive
|
// Short timeout to keep the application responsive
|
||||||
// The callback will fill $charset and $title with data from the downloaded page.
|
// The callback will fill $charset and $title with data from the downloaded page.
|
||||||
get_http_response($url, 25, 4194304, get_curl_download_callback($charset, $title));
|
get_http_response(
|
||||||
|
$url,
|
||||||
|
$conf->get('general.download_max_size', 4194304),
|
||||||
|
$conf->get('general.download_timeout', 30),
|
||||||
|
get_curl_download_callback($charset, $title)
|
||||||
|
);
|
||||||
if (! empty($title) && strtolower($charset) != 'utf-8') {
|
if (! empty($title) && strtolower($charset) != 'utf-8') {
|
||||||
$title = mb_convert_encoding($title, 'utf-8', $charset);
|
$title = mb_convert_encoding($title, 'utf-8', $charset);
|
||||||
}
|
}
|
||||||
|
|
|
@ -620,4 +620,68 @@ public function testUpdateMethodAtomDefaultAlreadyTrue()
|
||||||
$this->assertTrue($updater->updateMethodAtomDefault());
|
$this->assertTrue($updater->updateMethodAtomDefault());
|
||||||
$this->assertTrue($this->conf->get('feed.show_atom'));
|
$this->assertTrue($this->conf->get('feed.show_atom'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test updateMethodDownloadSizeAndTimeoutConf, it should be set if none is already defined.
|
||||||
|
*/
|
||||||
|
public function testUpdateMethodDownloadSizeAndTimeoutConf()
|
||||||
|
{
|
||||||
|
$sandboxConf = 'sandbox/config';
|
||||||
|
copy(self::$configFile . '.json.php', $sandboxConf . '.json.php');
|
||||||
|
$this->conf = new ConfigManager($sandboxConf);
|
||||||
|
$updater = new Updater([], [], $this->conf, true);
|
||||||
|
$this->assertTrue($updater->updateMethodDownloadSizeAndTimeoutConf());
|
||||||
|
$this->assertEquals(4194304, $this->conf->get('general.download_max_size'));
|
||||||
|
$this->assertEquals(30, $this->conf->get('general.download_timeout'));
|
||||||
|
|
||||||
|
$this->conf = new ConfigManager($sandboxConf);
|
||||||
|
$this->assertEquals(4194304, $this->conf->get('general.download_max_size'));
|
||||||
|
$this->assertEquals(30, $this->conf->get('general.download_timeout'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test updateMethodDownloadSizeAndTimeoutConf, it shouldn't be set if it is already defined.
|
||||||
|
*/
|
||||||
|
public function testUpdateMethodDownloadSizeAndTimeoutConfIgnore()
|
||||||
|
{
|
||||||
|
$sandboxConf = 'sandbox/config';
|
||||||
|
copy(self::$configFile . '.json.php', $sandboxConf . '.json.php');
|
||||||
|
$this->conf = new ConfigManager($sandboxConf);
|
||||||
|
$this->conf->set('general.download_max_size', 38);
|
||||||
|
$this->conf->set('general.download_timeout', 70);
|
||||||
|
$updater = new Updater([], [], $this->conf, true);
|
||||||
|
$this->assertTrue($updater->updateMethodDownloadSizeAndTimeoutConf());
|
||||||
|
$this->assertEquals(38, $this->conf->get('general.download_max_size'));
|
||||||
|
$this->assertEquals(70, $this->conf->get('general.download_timeout'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test updateMethodDownloadSizeAndTimeoutConf, only the maz size should be set here.
|
||||||
|
*/
|
||||||
|
public function testUpdateMethodDownloadSizeAndTimeoutConfOnlySize()
|
||||||
|
{
|
||||||
|
$sandboxConf = 'sandbox/config';
|
||||||
|
copy(self::$configFile . '.json.php', $sandboxConf . '.json.php');
|
||||||
|
$this->conf = new ConfigManager($sandboxConf);
|
||||||
|
$this->conf->set('general.download_max_size', 38);
|
||||||
|
$updater = new Updater([], [], $this->conf, true);
|
||||||
|
$this->assertTrue($updater->updateMethodDownloadSizeAndTimeoutConf());
|
||||||
|
$this->assertEquals(38, $this->conf->get('general.download_max_size'));
|
||||||
|
$this->assertEquals(30, $this->conf->get('general.download_timeout'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test updateMethodDownloadSizeAndTimeoutConf, only the time out should be set here.
|
||||||
|
*/
|
||||||
|
public function testUpdateMethodDownloadSizeAndTimeoutConfOnlyTimeout()
|
||||||
|
{
|
||||||
|
$sandboxConf = 'sandbox/config';
|
||||||
|
copy(self::$configFile . '.json.php', $sandboxConf . '.json.php');
|
||||||
|
$this->conf = new ConfigManager($sandboxConf);
|
||||||
|
$this->conf->set('general.download_timeout', 3);
|
||||||
|
$updater = new Updater([], [], $this->conf, true);
|
||||||
|
$this->assertTrue($updater->updateMethodDownloadSizeAndTimeoutConf());
|
||||||
|
$this->assertEquals(4194304, $this->conf->get('general.download_max_size'));
|
||||||
|
$this->assertEquals(3, $this->conf->get('general.download_timeout'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue