mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-05 00:07:44 +02:00
Merge remote-tracking branch 'remotes/nickv/ticket/10714' into develop
# By Joas Schilling # Via Joas Schilling * remotes/nickv/ticket/10714: (56 commits) [ticket/10714] Get log from container in install, update and download/file [ticket/10714] Use $phpbb_adm_relative_path instead of hardcoded adm/ [ticket/10714] Logs are disabled for this page call only [ticket/10714] Update add_log docs block with @param and @deprecated [ticket/10714] Remove fallback code from previous commits and move global [ticket/10714] Fix missing parameter and global phpbb_log in unit tests [ticket/10714] Add getter for is_in_admin and use it [ticket/10714] Fix more comments [ticket/10714] Cast values to integer before using them in the query [ticket/10714] Fix several doc blocks and comments [ticket/10714] Fix missing 8th argument in unit tests [ticket/10714] Use new core.adm_relative_path to create the object. [ticket/10714] Fix several comments and variable names [ticket/10714] Fix database driver class name [ticket/10714] Forgot most important, use container to create $phpbb_log [ticket/10714] Remove type hinting to allow the usage of mocks in tests [ticket/10714] Fix dependency injections in unit tests with mocks [ticket/10714] Use dependencies instead of globals [ticket/10714] Compare log_type to false, rather then null [ticket/10714] Add global variables for the unit tests ...
This commit is contained in:
@@ -125,7 +125,7 @@ class phpbb_functions_user_group_user_attributes_test extends phpbb_database_tes
|
||||
*/
|
||||
public function test_group_user_attributes($description, $user_id, $group_id, $group_row, $expected)
|
||||
{
|
||||
global $auth, $cache, $db, $phpbb_dispatcher, $user, $phpbb_container;
|
||||
global $auth, $cache, $db, $phpbb_dispatcher, $user, $phpbb_container, $phpbb_log, $phpbb_root_path, $phpEx;
|
||||
|
||||
$user->ip = '';
|
||||
$cache = new phpbb_mock_cache;
|
||||
@@ -141,6 +141,7 @@ class phpbb_functions_user_group_user_attributes_test extends phpbb_database_tes
|
||||
->method('get')
|
||||
->with('cache.driver')
|
||||
->will($this->returnValue($cache_driver));
|
||||
$phpbb_log = new phpbb_log($db, $user, $auth, $phpbb_dispatcher, $phpbb_root_path, 'adm/', $phpEx, LOG_TABLE);
|
||||
|
||||
group_user_attributes('default', $group_id, array($user_id), false, 'group_name', $group_row);
|
||||
|
||||
|
88
tests/log/add_test.php
Normal file
88
tests/log/add_test.php
Normal file
@@ -0,0 +1,88 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @package testing
|
||||
* @copyright (c) 2012 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||
*
|
||||
*/
|
||||
|
||||
require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
|
||||
|
||||
class phpbb_log_add_test extends phpbb_database_test_case
|
||||
{
|
||||
public function getDataSet()
|
||||
{
|
||||
return $this->createXMLDataSet(dirname(__FILE__) . '/fixtures/empty_log.xml');
|
||||
}
|
||||
|
||||
public function test_log_enabled()
|
||||
{
|
||||
global $phpbb_root_path, $phpEx, $db, $phpbb_dispatcher;
|
||||
|
||||
$db = $this->new_dbal();
|
||||
$cache = new phpbb_mock_cache;
|
||||
$phpbb_dispatcher = new phpbb_mock_event_dispatcher();
|
||||
$user = $this->getMock('phpbb_user');
|
||||
$auth = $this->getMock('phpbb_auth');
|
||||
|
||||
$log = new phpbb_log($db, $user, $auth, $phpbb_dispatcher, $phpbb_root_path, 'adm/', $phpEx, LOG_TABLE);
|
||||
|
||||
$this->assertTrue($log->is_enabled(), 'Initialise failed');
|
||||
|
||||
$log->disable();
|
||||
$this->assertFalse($log->is_enabled(), 'Disable all failed');
|
||||
|
||||
$log->enable();
|
||||
$this->assertTrue($log->is_enabled(), 'Enable all failed');
|
||||
|
||||
$log->disable('admin');
|
||||
$this->assertFalse($log->is_enabled('admin'), 'Disable admin failed');
|
||||
$this->assertTrue($log->is_enabled('user'), 'User should be enabled, is disabled');
|
||||
$this->assertTrue($log->is_enabled(), 'Disable admin disabled all');
|
||||
|
||||
$log->enable('admin');
|
||||
$this->assertTrue($log->is_enabled('admin'), 'Enable admin failed');
|
||||
}
|
||||
|
||||
public function test_log_add()
|
||||
{
|
||||
global $phpbb_root_path, $phpEx, $db, $phpbb_dispatcher;
|
||||
|
||||
$db = $this->new_dbal();
|
||||
$cache = new phpbb_mock_cache;
|
||||
$phpbb_dispatcher = new phpbb_mock_event_dispatcher();
|
||||
$user = $this->getMock('phpbb_user');
|
||||
$auth = $this->getMock('phpbb_auth');
|
||||
|
||||
$log = new phpbb_log($db, $user, $auth, $phpbb_dispatcher, $phpbb_root_path, 'adm/', $phpEx, LOG_TABLE);
|
||||
|
||||
$mode = 'critical';
|
||||
$user_id = ANONYMOUS;
|
||||
$log_ip = 'user_ip';
|
||||
$log_time = time();
|
||||
$log_operation = 'LOG_OPERATION';
|
||||
$additional_data = array();
|
||||
|
||||
// Add an entry successful
|
||||
$this->assertEquals(1, $log->add($mode, $user_id, $log_ip, $log_operation, $log_time));
|
||||
|
||||
// Disable logging for all types
|
||||
$log->disable();
|
||||
$this->assertFalse($log->add($mode, $user_id, $log_ip, $log_operation, $log_time), 'Disable for all types failed');
|
||||
$log->enable();
|
||||
|
||||
// Disable logging for same type
|
||||
$log->disable('critical');
|
||||
$this->assertFalse($log->add($mode, $user_id, $log_ip, $log_operation, $log_time), 'Disable for same type failed');
|
||||
$log->enable();
|
||||
|
||||
// Disable logging for different type
|
||||
$log->disable('admin');
|
||||
$this->assertEquals(2, $log->add($mode, $user_id, $log_ip, $log_operation, $log_time), 'Disable for different types failed');
|
||||
$log->enable();
|
||||
|
||||
// Invalid mode specified
|
||||
$this->assertFalse($log->add('mode_does_not_exist', $user_id, $log_ip, $log_operation, $log_time));
|
||||
}
|
||||
}
|
15
tests/log/fixtures/empty_log.xml
Normal file
15
tests/log/fixtures/empty_log.xml
Normal file
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<dataset>
|
||||
<table name="phpbb_log">
|
||||
<column>log_id</column>
|
||||
<column>log_type</column>
|
||||
<column>user_id</column>
|
||||
<column>forum_id</column>
|
||||
<column>topic_id</column>
|
||||
<column>reportee_id</column>
|
||||
<column>log_ip</column>
|
||||
<column>log_time</column>
|
||||
<column>log_operation</column>
|
||||
<column>log_data</column>
|
||||
</table>
|
||||
</dataset>
|
166
tests/log/fixtures/full_log.xml
Normal file
166
tests/log/fixtures/full_log.xml
Normal file
@@ -0,0 +1,166 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<dataset>
|
||||
<table name="phpbb_log">
|
||||
<column>log_id</column>
|
||||
<column>log_type</column>
|
||||
<column>user_id</column>
|
||||
<column>forum_id</column>
|
||||
<column>topic_id</column>
|
||||
<column>reportee_id</column>
|
||||
<column>log_ip</column>
|
||||
<column>log_time</column>
|
||||
<column>log_operation</column>
|
||||
<column>log_data</column>
|
||||
<row>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>127.0.0.1</value>
|
||||
<value>1</value>
|
||||
<value>LOG_INSTALL_INSTALLED</value>
|
||||
<value>a:1:{i:0;s:9:"3.1.0-dev";}</value>
|
||||
</row>
|
||||
<row>
|
||||
<value>2</value>
|
||||
<value>0</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>127.0.0.1</value>
|
||||
<value>1</value>
|
||||
<value>LOG_KEY_NOT_EXISTS</value>
|
||||
<value>a:1:{i:0;s:15:"additional_data";}</value>
|
||||
</row>
|
||||
<row>
|
||||
<value>3</value>
|
||||
<value>2</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>127.0.0.1</value>
|
||||
<value>1</value>
|
||||
<value>LOG_CRITICAL</value>
|
||||
<value>a:1:{i:0;s:13:"critical data";}</value>
|
||||
</row>
|
||||
<row>
|
||||
<value>4</value>
|
||||
<value>1</value>
|
||||
<value>1</value>
|
||||
<value>12</value>
|
||||
<value>34</value>
|
||||
<value>0</value>
|
||||
<value>127.0.0.1</value>
|
||||
<value>1</value>
|
||||
<value>LOG_MOD</value>
|
||||
<value></value>
|
||||
</row>
|
||||
<row>
|
||||
<value>5</value>
|
||||
<value>1</value>
|
||||
<value>1</value>
|
||||
<value>12</value>
|
||||
<value>45</value>
|
||||
<value>0</value>
|
||||
<value>127.0.0.1</value>
|
||||
<value>1</value>
|
||||
<value>LOG_MOD</value>
|
||||
<value></value>
|
||||
</row>
|
||||
<row>
|
||||
<value>6</value>
|
||||
<value>1</value>
|
||||
<value>1</value>
|
||||
<value>23</value>
|
||||
<value>56</value>
|
||||
<value>0</value>
|
||||
<value>127.0.0.1</value>
|
||||
<value>1</value>
|
||||
<value>LOG_MOD</value>
|
||||
<value></value>
|
||||
</row>
|
||||
<row>
|
||||
<value>7</value>
|
||||
<value>1</value>
|
||||
<value>1</value>
|
||||
<value>12</value>
|
||||
<value>45</value>
|
||||
<value>0</value>
|
||||
<value>127.0.0.1</value>
|
||||
<value>1</value>
|
||||
<value>LOG_MOD2</value>
|
||||
<value></value>
|
||||
</row>
|
||||
<row>
|
||||
<value>8</value>
|
||||
<value>3</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>2</value>
|
||||
<value>127.0.0.1</value>
|
||||
<value>1</value>
|
||||
<value>LOG_USER</value>
|
||||
<value>a:1:{i:0;s:5:"admin";}</value>
|
||||
</row>
|
||||
<row>
|
||||
<value>9</value>
|
||||
<value>3</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>1</value>
|
||||
<value>127.0.0.1</value>
|
||||
<value>1</value>
|
||||
<value>LOG_USER</value>
|
||||
<value>a:1:{i:0;s:5:"guest";}</value>
|
||||
</row>
|
||||
</table>
|
||||
<table name="phpbb_users">
|
||||
<column>user_id</column>
|
||||
<column>username</column>
|
||||
<column>username_clean</column>
|
||||
<column>user_permissions</column>
|
||||
<column>user_sig</column>
|
||||
<column>user_occ</column>
|
||||
<column>user_interests</column>
|
||||
<row>
|
||||
<value>1</value>
|
||||
<value>Anonymous</value>
|
||||
<value>Anonymous</value>
|
||||
<value></value>
|
||||
<value></value>
|
||||
<value></value>
|
||||
<value></value>
|
||||
</row>
|
||||
<row>
|
||||
<value>2</value>
|
||||
<value>admin</value>
|
||||
<value>admin</value>
|
||||
<value></value>
|
||||
<value></value>
|
||||
<value></value>
|
||||
<value></value>
|
||||
</row>
|
||||
</table>
|
||||
<table name="phpbb_topics">
|
||||
<column>topic_id</column>
|
||||
<column>forum_id</column>
|
||||
<row>
|
||||
<value>34</value>
|
||||
<value>12</value>
|
||||
</row>
|
||||
<row>
|
||||
<value>45</value>
|
||||
<value>12</value>
|
||||
</row>
|
||||
<row>
|
||||
<value>56</value>
|
||||
<value>23</value>
|
||||
</row>
|
||||
</table>
|
||||
</dataset>
|
193
tests/log/function_add_log_test.php
Normal file
193
tests/log/function_add_log_test.php
Normal file
@@ -0,0 +1,193 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @package testing
|
||||
* @copyright (c) 2012 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||
*
|
||||
*/
|
||||
|
||||
require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
|
||||
|
||||
class phpbb_log_function_add_log_test extends phpbb_database_test_case
|
||||
{
|
||||
public function getDataSet()
|
||||
{
|
||||
return $this->createXMLDataSet(dirname(__FILE__) . '/fixtures/empty_log.xml');
|
||||
}
|
||||
|
||||
public static function test_add_log_function_data()
|
||||
{
|
||||
return array(
|
||||
/**
|
||||
* Case documentation
|
||||
array(
|
||||
// Row that is in the database afterwards
|
||||
array(
|
||||
'user_id' => ANONYMOUS,
|
||||
'log_type' => LOG_MOD,
|
||||
'log_operation' => 'LOG_MOD_ADDITIONAL',
|
||||
// log_data will be serialized
|
||||
'log_data' => array(
|
||||
'argument3',
|
||||
),
|
||||
'reportee_id' => 0,
|
||||
'forum_id' => 56,
|
||||
'topic_id' => 78,
|
||||
),
|
||||
// user_id Can also be false, then ANONYMOUS is used
|
||||
false,
|
||||
// log_mode Used to determine the log_type
|
||||
'mod',
|
||||
// Followed by some additional arguments
|
||||
// forum_id, topic_id and reportee_id are specified before log_operation
|
||||
// The rest is specified afterwards.
|
||||
56,
|
||||
78,
|
||||
'LOG_MOD_ADDITIONAL', // log_operation
|
||||
'argument3',
|
||||
),
|
||||
*/
|
||||
array(
|
||||
array(
|
||||
'user_id' => 2,
|
||||
'log_type' => LOG_CRITICAL,
|
||||
'log_operation' => 'LOG_NO_ADDITIONAL',
|
||||
'log_data' => '',
|
||||
'reportee_id' => 0,
|
||||
'forum_id' => 0,
|
||||
'topic_id' => 0,
|
||||
),
|
||||
2, 'critical', 'LOG_NO_ADDITIONAL',
|
||||
),
|
||||
array(
|
||||
array(
|
||||
'user_id' => 2,
|
||||
'log_type' => LOG_CRITICAL,
|
||||
'log_operation' => 'LOG_ONE_ADDITIONAL',
|
||||
'log_data' => array(
|
||||
'argument1',
|
||||
),
|
||||
'reportee_id' => 0,
|
||||
'forum_id' => 0,
|
||||
'topic_id' => 0,
|
||||
),
|
||||
2, 'critical', 'LOG_ONE_ADDITIONAL', 'argument1',
|
||||
),
|
||||
array(
|
||||
array(
|
||||
'user_id' => ANONYMOUS,
|
||||
'log_type' => LOG_ADMIN,
|
||||
'log_operation' => 'LOG_TWO_ADDITIONAL',
|
||||
'log_data' => array(
|
||||
'argument1',
|
||||
'argument2',
|
||||
),
|
||||
'reportee_id' => 0,
|
||||
'forum_id' => 0,
|
||||
'topic_id' => 0,
|
||||
),
|
||||
false, 'admin', 'LOG_TWO_ADDITIONAL', 'argument1', 'argument2',
|
||||
),
|
||||
array(
|
||||
array(
|
||||
'user_id' => ANONYMOUS,
|
||||
'log_type' => LOG_USERS,
|
||||
'log_operation' => 'LOG_USERS_ADDITIONAL',
|
||||
'log_data' => array(
|
||||
'argument2',
|
||||
),
|
||||
'reportee_id' => 2,
|
||||
'forum_id' => 0,
|
||||
'topic_id' => 0,
|
||||
),
|
||||
false, 'user', 2, 'LOG_USERS_ADDITIONAL', 'argument2',
|
||||
),
|
||||
array(
|
||||
array(
|
||||
'user_id' => ANONYMOUS,
|
||||
'log_type' => LOG_MOD,
|
||||
'log_operation' => 'LOG_MOD_TOPIC_AND_FORUM',
|
||||
'log_data' => '',
|
||||
'reportee_id' => 0,
|
||||
'forum_id' => 12,
|
||||
'topic_id' => 34,
|
||||
),
|
||||
false, 'mod', 12, 34, 'LOG_MOD_TOPIC_AND_FORUM',
|
||||
),
|
||||
array(
|
||||
array(
|
||||
'user_id' => ANONYMOUS,
|
||||
'log_type' => LOG_MOD,
|
||||
'log_operation' => 'LOG_MOD_ADDITIONAL',
|
||||
'log_data' => array(
|
||||
'argument3',
|
||||
),
|
||||
'reportee_id' => 0,
|
||||
'forum_id' => 56,
|
||||
'topic_id' => 78,
|
||||
),
|
||||
false, 'mod', 56, 78, 'LOG_MOD_ADDITIONAL', 'argument3',
|
||||
),
|
||||
array(
|
||||
array(
|
||||
),
|
||||
false, 'mode_does_not_exist', 'LOG_MOD_ADDITIONAL', 'argument1',
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider test_add_log_function_data
|
||||
*/
|
||||
public function test_add_log_function($expected, $user_id, $mode, $required1, $additional1 = null, $additional2 = null, $additional3 = null)
|
||||
{
|
||||
global $db, $cache, $user, $phpbb_log, $phpbb_dispatcher, $phpbb_root_path, $phpEx;
|
||||
|
||||
if ($expected)
|
||||
{
|
||||
// Serialize the log data if we have some
|
||||
if (is_array($expected['log_data']))
|
||||
{
|
||||
$expected['log_data'] = serialize($expected['log_data']);
|
||||
}
|
||||
$expected = array($expected);
|
||||
}
|
||||
|
||||
$db = $this->new_dbal();
|
||||
$cache = new phpbb_mock_cache;
|
||||
$phpbb_dispatcher = new phpbb_mock_event_dispatcher();
|
||||
$user = $this->getMock('phpbb_user');
|
||||
$auth = $this->getMock('phpbb_auth');
|
||||
|
||||
$phpbb_log = new phpbb_log($db, $user, $auth, $phpbb_dispatcher, $phpbb_root_path, 'adm/', $phpEx, LOG_TABLE);
|
||||
|
||||
$user->ip = 'user_ip';
|
||||
if ($user_id)
|
||||
{
|
||||
$user->data['user_id'] = $user_id;
|
||||
}
|
||||
|
||||
if ($additional3 != null)
|
||||
{
|
||||
add_log($mode, $required1, $additional1, $additional2, $additional3);
|
||||
}
|
||||
else if ($additional2 != null)
|
||||
{
|
||||
add_log($mode, $required1, $additional1, $additional2);
|
||||
}
|
||||
else if ($additional1 != null)
|
||||
{
|
||||
add_log($mode, $required1, $additional1);
|
||||
}
|
||||
else
|
||||
{
|
||||
add_log($mode, $required1);
|
||||
}
|
||||
|
||||
$result = $db->sql_query('SELECT user_id, log_type, log_operation, log_data, reportee_id, forum_id, topic_id
|
||||
FROM ' . LOG_TABLE);
|
||||
|
||||
$this->assertEquals($expected, $db->sql_fetchrowset($result));
|
||||
}
|
||||
}
|
344
tests/log/function_view_log_test.php
Normal file
344
tests/log/function_view_log_test.php
Normal file
@@ -0,0 +1,344 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @package testing
|
||||
* @copyright (c) 2012 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||
*
|
||||
*/
|
||||
|
||||
require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
|
||||
require_once dirname(__FILE__) . '/../../phpBB/includes/functions_admin.php';
|
||||
require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php';
|
||||
require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php';
|
||||
require_once dirname(__FILE__) . '/../../phpBB/includes/session.php';
|
||||
require_once dirname(__FILE__) . '/../mock/user.php';
|
||||
require_once dirname(__FILE__) . '/../mock/cache.php';
|
||||
|
||||
class phpbb_log_function_view_log_test extends phpbb_database_test_case
|
||||
{
|
||||
public function getDataSet()
|
||||
{
|
||||
return $this->createXMLDataSet(dirname(__FILE__) . '/fixtures/full_log.xml');
|
||||
}
|
||||
|
||||
public static function test_view_log_function_data()
|
||||
{
|
||||
global $phpEx, $phpbb_dispatcher;
|
||||
$phpbb_dispatcher = new phpbb_mock_event_dispatcher();
|
||||
|
||||
$expected_data_sets = array(
|
||||
1 => array(
|
||||
'id' => 1,
|
||||
|
||||
'reportee_id' => 0,
|
||||
'reportee_username' => '',
|
||||
'reportee_username_full'=> '',
|
||||
|
||||
'user_id' => 1,
|
||||
'username' => 'Anonymous',
|
||||
'username_full' => 'Anonymous',
|
||||
|
||||
'ip' => '127.0.0.1',
|
||||
'time' => 1,
|
||||
'forum_id' => 0,
|
||||
'topic_id' => 0,
|
||||
|
||||
'viewforum' => '',
|
||||
'action' => 'installed: 3.1.0-dev',
|
||||
),
|
||||
2 => array(
|
||||
'id' => 2,
|
||||
|
||||
'reportee_id' => 0,
|
||||
'reportee_username' => '',
|
||||
'reportee_username_full'=> '',
|
||||
|
||||
'user_id' => 1,
|
||||
'username' => 'Anonymous',
|
||||
'username_full' => 'Anonymous',
|
||||
|
||||
'ip' => '127.0.0.1',
|
||||
'time' => 1,
|
||||
'forum_id' => 0,
|
||||
'topic_id' => 0,
|
||||
|
||||
'viewforum' => '',
|
||||
'action' => '{LOG KEY NOT EXISTS}<br />additional_data',
|
||||
),
|
||||
3 => array(
|
||||
'id' => 3,
|
||||
|
||||
'reportee_id' => 0,
|
||||
'reportee_username' => '',
|
||||
'reportee_username_full'=> '',
|
||||
|
||||
'user_id' => 1,
|
||||
'username' => 'Anonymous',
|
||||
'username_full' => 'Anonymous',
|
||||
|
||||
'ip' => '127.0.0.1',
|
||||
'time' => 1,
|
||||
'forum_id' => 0,
|
||||
'topic_id' => 0,
|
||||
|
||||
'viewforum' => '',
|
||||
'action' => '{LOG CRITICAL}<br />critical data',
|
||||
),
|
||||
4 => array(
|
||||
'id' => 4,
|
||||
|
||||
'reportee_id' => 0,
|
||||
'reportee_username' => '',
|
||||
'reportee_username_full'=> '',
|
||||
|
||||
'user_id' => 1,
|
||||
'username' => 'Anonymous',
|
||||
'username_full' => 'Anonymous',
|
||||
|
||||
'ip' => '127.0.0.1',
|
||||
'time' => 1,
|
||||
'forum_id' => 12,
|
||||
'topic_id' => 34,
|
||||
|
||||
'viewforum' => '',
|
||||
'action' => '{LOG MOD}',
|
||||
'viewtopic' => '',
|
||||
'viewlogs' => '',
|
||||
),
|
||||
5 => array(
|
||||
'id' => 5,
|
||||
|
||||
'reportee_id' => 0,
|
||||
'reportee_username' => '',
|
||||
'reportee_username_full'=> '',
|
||||
|
||||
'user_id' => 1,
|
||||
'username' => 'Anonymous',
|
||||
'username_full' => 'Anonymous',
|
||||
|
||||
'ip' => '127.0.0.1',
|
||||
'time' => 1,
|
||||
'forum_id' => 12,
|
||||
'topic_id' => 45,
|
||||
|
||||
'viewforum' => '',
|
||||
'action' => '{LOG MOD}',
|
||||
'viewtopic' => '',
|
||||
'viewlogs' => '',
|
||||
),
|
||||
6 => array(
|
||||
'id' => 6,
|
||||
|
||||
'reportee_id' => 0,
|
||||
'reportee_username' => '',
|
||||
'reportee_username_full'=> '',
|
||||
|
||||
'user_id' => 1,
|
||||
'username' => 'Anonymous',
|
||||
'username_full' => 'Anonymous',
|
||||
|
||||
'ip' => '127.0.0.1',
|
||||
'time' => 1,
|
||||
'forum_id' => 23,
|
||||
'topic_id' => 56,
|
||||
|
||||
'viewforum' => append_sid("phpBB/viewforum.$phpEx", 'f=23'),
|
||||
'action' => '{LOG MOD}',
|
||||
'viewtopic' => append_sid("phpBB/viewtopic.$phpEx", 'f=23&t=56'),
|
||||
'viewlogs' => append_sid("phpBB/mcp.$phpEx", 'i=logs&mode=topic_logs&t=56'),
|
||||
),
|
||||
7 => array(
|
||||
'id' => 7,
|
||||
|
||||
'reportee_id' => 0,
|
||||
'reportee_username' => '',
|
||||
'reportee_username_full'=> '',
|
||||
|
||||
'user_id' => 1,
|
||||
'username' => 'Anonymous',
|
||||
'username_full' => 'Anonymous',
|
||||
|
||||
'ip' => '127.0.0.1',
|
||||
'time' => 1,
|
||||
'forum_id' => 12,
|
||||
'topic_id' => 45,
|
||||
|
||||
'viewforum' => '',
|
||||
'action' => '{LOG MOD2}',
|
||||
'viewtopic' => '',
|
||||
'viewlogs' => '',
|
||||
),
|
||||
8 => array(
|
||||
'id' => 8,
|
||||
|
||||
'reportee_id' => 2,
|
||||
'reportee_username' => 'admin',
|
||||
'reportee_username_full'=> 'admin',
|
||||
|
||||
'user_id' => 1,
|
||||
'username' => 'Anonymous',
|
||||
'username_full' => 'Anonymous',
|
||||
|
||||
'ip' => '127.0.0.1',
|
||||
'time' => 1,
|
||||
'forum_id' => 0,
|
||||
'topic_id' => 0,
|
||||
|
||||
'viewforum' => '',
|
||||
'action' => '{LOG USER}<br />admin',
|
||||
),
|
||||
9 => array(
|
||||
'id' => 9,
|
||||
|
||||
'reportee_id' => 1,
|
||||
'reportee_username' => 'Anonymous',
|
||||
'reportee_username_full'=> 'Anonymous',
|
||||
|
||||
'user_id' => 1,
|
||||
'username' => 'Anonymous',
|
||||
'username_full' => 'Anonymous',
|
||||
|
||||
'ip' => '127.0.0.1',
|
||||
'time' => 1,
|
||||
'forum_id' => 0,
|
||||
'topic_id' => 0,
|
||||
|
||||
'viewforum' => '',
|
||||
'action' => '{LOG USER}<br />guest',
|
||||
),
|
||||
);
|
||||
|
||||
$test_cases = array(
|
||||
/**
|
||||
* Case documentation
|
||||
array(
|
||||
// Array of datasets that should be in $log after running the function
|
||||
'expected' => array(5, 7),
|
||||
// Offset that will be returned from the function
|
||||
'expected_returned' => 0,
|
||||
// view_log parameters (see includes/functions_admin.php for docblock)
|
||||
// $log is ommited!
|
||||
'mod', 5, 0, 12, 45,
|
||||
),
|
||||
*/
|
||||
array(
|
||||
'expected' => array(1, 2),
|
||||
'expected_returned' => 0,
|
||||
'admin', false,
|
||||
),
|
||||
array(
|
||||
'expected' => array(1),
|
||||
'expected_returned' => 0,
|
||||
'admin', false, 1,
|
||||
),
|
||||
array(
|
||||
'expected' => array(2),
|
||||
'expected_returned' => 1,
|
||||
'admin', false, 1, 1,
|
||||
),
|
||||
array(
|
||||
'expected' => array(2),
|
||||
'expected_returned' => 1,
|
||||
'admin', 0, 1, 1,
|
||||
),
|
||||
array(
|
||||
'expected' => array(2),
|
||||
'expected_returned' => 1,
|
||||
'admin', 0, 1, 5,
|
||||
),
|
||||
array(
|
||||
'expected' => array(3),
|
||||
'expected_returned' => 0,
|
||||
'critical', false,
|
||||
),
|
||||
array(
|
||||
'expected' => array(),
|
||||
'expected_returned' => null,
|
||||
'mode_does_not_exist', false,
|
||||
),
|
||||
array(
|
||||
'expected' => array(4, 5, 7),
|
||||
'expected_returned' => 0,
|
||||
'mod', 0, 5, 0, 12,
|
||||
),
|
||||
array(
|
||||
'expected' => array(5, 7),
|
||||
'expected_returned' => 0,
|
||||
'mod', 0, 5, 0, 12, 45,
|
||||
),
|
||||
array(
|
||||
'expected' => array(6),
|
||||
'expected_returned' => 0,
|
||||
'mod', 0, 5, 0, 23,
|
||||
),
|
||||
array(
|
||||
'expected' => array(8),
|
||||
'expected_returned' => 0,
|
||||
'user', 0, 5, 0, 0, 0, 2,
|
||||
),
|
||||
array(
|
||||
'expected' => array(8, 9),
|
||||
'expected_returned' => 0,
|
||||
'users', 0,
|
||||
),
|
||||
);
|
||||
|
||||
foreach ($test_cases as $case => $case_data)
|
||||
{
|
||||
foreach ($case_data['expected'] as $data_set => $expected)
|
||||
{
|
||||
$test_cases[$case]['expected'][$data_set] = $expected_data_sets[$expected];
|
||||
}
|
||||
}
|
||||
|
||||
return $test_cases;
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider test_view_log_function_data
|
||||
*/
|
||||
public function test_view_log_function($expected, $expected_returned, $mode, $log_count, $limit = 5, $offset = 0, $forum_id = 0, $topic_id = 0, $user_id = 0, $limit_days = 0, $sort_by = 'l.log_id ASC', $keywords = '')
|
||||
{
|
||||
global $cache, $db, $user, $auth, $phpbb_log, $phpbb_dispatcher, $phpbb_root_path, $phpEx;
|
||||
|
||||
$db = $this->new_dbal();
|
||||
$cache = new phpbb_mock_cache;
|
||||
$phpbb_dispatcher = new phpbb_mock_event_dispatcher();
|
||||
|
||||
// Create auth mock
|
||||
$auth = $this->getMock('phpbb_auth');
|
||||
$acl_get_map = array(
|
||||
array('f_read', 23, true),
|
||||
array('m_', 23, true),
|
||||
);
|
||||
$acl_gets_map = array(
|
||||
array('a_', 'm_', 23, true),
|
||||
);
|
||||
|
||||
$auth->expects($this->any())
|
||||
->method('acl_get')
|
||||
->with($this->stringContains('_'),
|
||||
$this->anything())
|
||||
->will($this->returnValueMap($acl_get_map));
|
||||
$auth->expects($this->any())
|
||||
->method('acl_gets')
|
||||
->with($this->stringContains('_'),
|
||||
$this->anything())
|
||||
->will($this->returnValueMap($acl_gets_map));
|
||||
|
||||
$user = new phpbb_mock_user;
|
||||
$user->optionset('viewcensors', false);
|
||||
// Test sprintf() of the data into the action
|
||||
$user->lang = array(
|
||||
'LOG_INSTALL_INSTALLED' => 'installed: %s',
|
||||
);
|
||||
|
||||
$phpbb_log = new phpbb_log($db, $user, $auth, $phpbb_dispatcher, $phpbb_root_path, 'adm/', $phpEx, LOG_TABLE);
|
||||
|
||||
$log = array();
|
||||
$this->assertEquals($expected_returned, view_log($mode, $log, $log_count, $limit, $offset, $forum_id, $topic_id, $user_id, $limit_days, $sort_by, $keywords));
|
||||
|
||||
$this->assertEquals($expected, $log);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user