mirror of
https://github.com/phpbb/phpbb.git
synced 2025-04-19 23:32:02 +02:00
[ticket/10714] Add unit tests for view_log function
PHPBB3-10714
This commit is contained in:
parent
ea652f0ec9
commit
920cb1a0de
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>
|
341
tests/log/function_view_log_test.php
Normal file
341
tests/log/function_view_log_test.php
Normal file
@ -0,0 +1,341 @@
|
||||
<?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/auth.php';
|
||||
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;
|
||||
|
||||
$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(
|
||||
array(
|
||||
'expected' => array(1, 2),
|
||||
'expected_returned' => 0,
|
||||
false,
|
||||
'admin',
|
||||
),
|
||||
array(
|
||||
'expected' => array(1),
|
||||
'expected_returned' => 0,
|
||||
false,
|
||||
'admin', 1,
|
||||
),
|
||||
array(
|
||||
'expected' => array(2),
|
||||
'expected_returned' => 1,
|
||||
false,
|
||||
'admin', 1, 1,
|
||||
),
|
||||
array(
|
||||
'expected' => array(2),
|
||||
'expected_returned' => 1,
|
||||
0,
|
||||
'admin', 1, 1,
|
||||
),
|
||||
array(
|
||||
'expected' => array(2),
|
||||
'expected_returned' => 1,
|
||||
0,
|
||||
'admin', 1, 5,
|
||||
),
|
||||
array(
|
||||
'expected' => array(3),
|
||||
'expected_returned' => 0,
|
||||
false,
|
||||
'critical',
|
||||
),
|
||||
array(
|
||||
'expected' => array(),
|
||||
'expected_returned' => null,
|
||||
false,
|
||||
'mode_does_not_exist',
|
||||
),
|
||||
array(
|
||||
'expected' => array(4, 5, 7),
|
||||
'expected_returned' => 0,
|
||||
0,
|
||||
'mod', 5, 0, 12,
|
||||
),
|
||||
array(
|
||||
'expected' => array(5, 7),
|
||||
'expected_returned' => 0,
|
||||
0,
|
||||
'mod', 5, 0, 12, 45,
|
||||
),
|
||||
array(
|
||||
'expected' => array(6),
|
||||
'expected_returned' => 0,
|
||||
0,
|
||||
'mod', 5, 0, 23,
|
||||
),
|
||||
array(
|
||||
'expected' => array(8),
|
||||
'expected_returned' => 0,
|
||||
0,
|
||||
'user', 5, 0, 0, 0, 2,
|
||||
),
|
||||
array(
|
||||
'expected' => array(8, 9),
|
||||
'expected_returned' => 0,
|
||||
0,
|
||||
'users',
|
||||
),
|
||||
);
|
||||
|
||||
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, $log_count, $mode, $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;
|
||||
|
||||
$db = $this->new_dbal();
|
||||
$cache = new phpbb_mock_cache;
|
||||
|
||||
// Create auth mock
|
||||
$auth = $this->getMock('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',
|
||||
);
|
||||
|
||||
$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);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user