Skip to content

Commit 3c8eb7d

Browse files
committed
Improve unit tests
Signed-off-by: Matt Friedman <maf675@gmail.com>
1 parent 38f7341 commit 3c8eb7d

3 files changed

Lines changed: 119 additions & 13 deletions

File tree

tests/event/delete_log_security_test.php

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,36 +19,41 @@ class delete_log_security_test extends listener_base
1919
*/
2020
public function delete_logs_security_data()
2121
{
22-
return array(
23-
array('admin', true, false),
24-
array('mod', true, false),
25-
array('user', true, false),
26-
array('users', true, false),
27-
array('', true, true),
28-
array('', false, false),
29-
);
22+
return [
23+
['admin', LOG_ADMIN, [], false],
24+
['admin', LOG_ADMIN, ['keywords' => ['test']], false],
25+
['admin', LOG_ADMIN, ['log_id' => ['IN' => []]], false],
26+
['mod', LOG_MOD, [], false],
27+
['user', LOG_USER, [], false],
28+
['users', LOG_USERS, [], false],
29+
['', LOG_CRITICAL, [], true],
30+
['', false, [], false],
31+
];
3032
}
3133

3234
/**
3335
* Test the delete logs security event
3436
*
3537
* @dataProvider delete_logs_security_data
3638
*/
37-
public function test_delete_logs_security($mode, $log_type, $expected_log_type)
39+
public function test_delete_logs_security($mode, $log_type, $conditions, $expected_log_type)
3840
{
3941
// Set some user DateTime options
4042
$this->user->timezone = new \DateTimeZone('UTC');
41-
$this->lang->lang('datetime', array());
43+
$this->lang->lang('datetime', []);
4244

4345
$this->set_listener();
4446

47+
$this->listener->expects(self::exactly(count($conditions)))
48+
->method('send_message');
49+
4550
$dispatcher = new \phpbb\event\dispatcher();
46-
$dispatcher->addListener('core.delete_log', array($this->listener, 'delete_logs_security'));
51+
$dispatcher->addListener('core.delete_log', [$this->listener, 'delete_logs_security']);
4752

48-
$event_data = array('mode', 'log_type');
53+
$event_data = ['mode', 'log_type', 'conditions'];
4954
$event_data_after = $dispatcher->trigger_event('core.delete_log', compact($event_data));
5055
extract($event_data_after, EXTR_OVERWRITE);
5156

52-
self::assertSame($expected_log_type, $log_type);
57+
self::assertEquals($expected_log_type, $log_type);
5358
}
5459
}

tests/ext_test.php

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
<?php
2+
/**
3+
*
4+
* Team Security Measures extension for the phpBB Forum Software package.
5+
*
6+
* @copyright (c) 2015 phpBB Limited <https://www.phpbb.com>
7+
* @license GNU General Public License, version 2 (GPL-2.0)
8+
*
9+
*/
10+
11+
namespace phpbb\teamsecurity\tests;
12+
13+
class ext_test extends \phpbb_database_test_case
14+
{
15+
protected const TEAM_SECURITY = 'phpbb/teamsecurity';
16+
protected $extension_manager;
17+
18+
public function getDataSet()
19+
{
20+
return $this->createXMLDataSet(__DIR__ . '/fixtures/extensions.xml');
21+
}
22+
23+
protected function setUp(): void
24+
{
25+
parent::setUp();
26+
27+
$this->db = null;
28+
$this->extension_manager = $this->create_extension_manager();
29+
}
30+
31+
public function test_enable()
32+
{
33+
// Enable it
34+
$this->extension_manager->enable(self::TEAM_SECURITY);
35+
36+
// Assert it's enabled
37+
$this->assertEquals([self::TEAM_SECURITY], array_keys($this->extension_manager->all_enabled()));
38+
$this->assertEquals([self::TEAM_SECURITY], array_keys($this->extension_manager->all_configured()));
39+
}
40+
41+
public function test_disable()
42+
{
43+
// Enable it
44+
$this->extension_manager->enable(self::TEAM_SECURITY);
45+
46+
// Assert it's Enabled
47+
$this->assertEquals([self::TEAM_SECURITY], array_keys($this->extension_manager->all_enabled()));
48+
49+
// Disable it and assert expected trigger error is called
50+
$this->setExpectedTriggerError(E_USER_WARNING, 'TEAM_SECURITY_DISABLE_MESSAGE');
51+
$this->extension_manager->disable(self::TEAM_SECURITY);
52+
}
53+
54+
protected function create_extension_manager()
55+
{
56+
global $phpbb_root_path, $php_ext;
57+
58+
$config = new \phpbb\config\config(['version' => PHPBB_VERSION]);
59+
$db = $this->new_dbal();
60+
$phpbb_dispatcher = new \phpbb_mock_event_dispatcher();
61+
$factory = new \phpbb\db\tools\factory();
62+
$db_tools = $factory->get($db);
63+
$table_prefix = 'phpbb_';
64+
65+
$container = new \phpbb_mock_container_builder();
66+
67+
$migrator = new \phpbb\db\migrator(
68+
$container,
69+
$config,
70+
$db,
71+
$db_tools,
72+
'phpbb_migrations',
73+
$phpbb_root_path,
74+
$php_ext,
75+
$table_prefix,
76+
[],
77+
new \phpbb\db\migration\helper()
78+
);
79+
$container->set('migrator', $migrator);
80+
$container->set('dispatcher', $phpbb_dispatcher);
81+
82+
return new \phpbb\extension\manager(
83+
$container,
84+
$db,
85+
$config,
86+
new \phpbb\filesystem\filesystem(),
87+
'phpbb_ext',
88+
$phpbb_root_path,
89+
$php_ext,
90+
null
91+
);
92+
}
93+
}

tests/fixtures/extensions.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<dataset>
3+
<table name="phpbb_ext">
4+
<column>ext_name</column>
5+
<column>ext_active</column>
6+
<column>ext_state</column>
7+
</table>
8+
</dataset>

0 commit comments

Comments
 (0)