forked from phpbb-extensions/teamsecurity
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdelete_log_security_test.php
More file actions
59 lines (51 loc) · 1.59 KB
/
delete_log_security_test.php
File metadata and controls
59 lines (51 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
/**
*
* Team Security Measures extension for the phpBB Forum Software package.
*
* @copyright (c) 2015 phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
*/
namespace phpbb\teamsecurity\tests\event;
class delete_log_security_test extends listener_base
{
/**
* Data set for test_delete_logs_security
*
* @return array Array of test data
*/
public static function delete_logs_security_data()
{
return [
['admin', LOG_ADMIN, [], false],
['admin', LOG_ADMIN, ['keywords' => ['test']], false],
['admin', LOG_ADMIN, ['log_id' => ['IN' => []]], false],
['mod', LOG_MOD, [], false],
['user', LOG_USER, [], false],
['users', LOG_USERS, [], false],
['', LOG_CRITICAL, [], true],
['', false, [], false],
];
}
/**
* Test the delete logs security event
*
* @dataProvider delete_logs_security_data
*/
public function test_delete_logs_security($mode, $log_type, $conditions, $expected_log_type)
{
// Set some user DateTime options
$this->user->timezone = new \DateTimeZone('UTC');
$this->lang->lang('datetime', []);
$this->set_listener();
$this->listener->expects(self::exactly(count($conditions)))
->method('send_message');
$dispatcher = new \phpbb\event\dispatcher();
$dispatcher->addListener('core.delete_log', [$this->listener, 'delete_logs_security']);
$event_data = ['mode', 'log_type', 'conditions'];
$event_data_after = $dispatcher->trigger_event('core.delete_log', compact($event_data));
extract($event_data_after, EXTR_OVERWRITE);
self::assertEquals($expected_log_type, $log_type);
}
}