mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-08 04:18:52 +00:00
[ticket/14257] Add tests for reparser manager
PHPBB3-14257
This commit is contained in:
parent
900ccd79af
commit
762b383d2b
2 changed files with 124 additions and 0 deletions
7
tests/text_reparser/fixtures/config_text.xml
Normal file
7
tests/text_reparser/fixtures/config_text.xml
Normal file
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<dataset>
|
||||
<table name="phpbb_config_text">
|
||||
<column>config_name</column>
|
||||
<column>config_value</column>
|
||||
</table>
|
||||
</dataset>
|
117
tests/text_reparser/manager_test.php
Normal file
117
tests/text_reparser/manager_test.php
Normal file
|
@ -0,0 +1,117 @@
|
|||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
require_once __DIR__ . '/../mock/container_builder.php';
|
||||
require_once __DIR__ . '/../test_framework/phpbb_database_test_case.php';
|
||||
|
||||
class phpbb_text_reparser_manager_test extends phpbb_database_test_case
|
||||
{
|
||||
/** @var \phpbb\config\config */
|
||||
protected $config;
|
||||
|
||||
/** @var \phpbb\config\db_text */
|
||||
protected $config_text;
|
||||
|
||||
/** @var \phpbb\textreparser\manager */
|
||||
protected $reparser_manager;
|
||||
|
||||
public function getDataSet()
|
||||
{
|
||||
return $this->createXMLDataSet(dirname(__FILE__) . '/fixtures/config_text.xml');
|
||||
}
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
|
||||
$this->config = new \phpbb\config\config(array(
|
||||
'test_reparser_cron_interval' => 0,
|
||||
'my_reparser_cron_interval' => 100,
|
||||
));
|
||||
|
||||
$db = $this->new_dbal();
|
||||
$this->config_text = new \phpbb\config\db_text($db, 'phpbb_config_text');
|
||||
|
||||
$service_collection = new \phpbb\di\service_collection(new phpbb_mock_container_builder());
|
||||
$service_collection->add('test_reparser');
|
||||
$service_collection->add('another_reparser');
|
||||
$service_collection->add('my_reparser');
|
||||
|
||||
$this->reparser_manager = new \phpbb\textreparser\manager($this->config, $this->config_text, $service_collection);
|
||||
}
|
||||
|
||||
public function test_get_resume_data()
|
||||
{
|
||||
$resume_data = array(
|
||||
'test_reparser' => array(
|
||||
'range-min' => 0,
|
||||
'range-max' => 100,
|
||||
'range-size' => 50,
|
||||
),
|
||||
);
|
||||
$this->config_text->set('reparser_resume', serialize($resume_data));
|
||||
|
||||
$this->assert_array_content_equals($resume_data['test_reparser'], $this->reparser_manager->get_resume_data('test_reparser'));
|
||||
$this->assertEmpty($this->reparser_manager->get_resume_data('another_reparser'));
|
||||
}
|
||||
|
||||
public function test_update_resume_data()
|
||||
{
|
||||
$resume_data = array(
|
||||
'test_reparser' => array(
|
||||
'range-min' => 0,
|
||||
'range-max' => 100,
|
||||
'range-size' => 50,
|
||||
),
|
||||
);
|
||||
$this->config_text->set('reparser_resume', serialize($resume_data));
|
||||
|
||||
$this->reparser_manager->update_resume_data('another_reparser', 5, 20, 10, false);
|
||||
$this->assert_array_content_equals($resume_data, unserialize($this->config_text->get('reparser_resume')));
|
||||
|
||||
$this->reparser_manager->update_resume_data('test_reparser', 0, 50, 50);
|
||||
$resume_data = array(
|
||||
'test_reparser' => array(
|
||||
'range-min' => 0,
|
||||
'range-max' => 50,
|
||||
'range-size' => 50,
|
||||
),
|
||||
'another_reparser' => array(
|
||||
'range-min' => 5,
|
||||
'range-max' => 20,
|
||||
'range-size' => 10,
|
||||
),
|
||||
);
|
||||
$this->assert_array_content_equals($resume_data, unserialize($this->config_text->get('reparser_resume')));
|
||||
}
|
||||
|
||||
public function test_schedule()
|
||||
{
|
||||
$this->reparser_manager->schedule('no_reparser', 21);
|
||||
$this->assertArrayNotHasKey('no_reparser_cron_interval', $this->config);
|
||||
|
||||
$this->reparser_manager->schedule('another_reparser', 42);
|
||||
$this->assertArrayNotHasKey('another_reparser_cron_interval', $this->config);
|
||||
|
||||
$this->reparser_manager->schedule('test_reparser', 20);
|
||||
$this->assertEquals(20, $this->config['test_reparser_cron_interval']);
|
||||
}
|
||||
|
||||
public function test_schedule_all()
|
||||
{
|
||||
$this->reparser_manager->schedule_all(180);
|
||||
$this->assertEquals(180, $this->config['test_reparser_cron_interval']);
|
||||
$this->assertEquals(180, $this->config['my_reparser_cron_interval']);
|
||||
$this->assertArrayNotHasKey('another_reparser_cron_interval', $this->config);
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue