1
0
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:
Joas Schilling 2012-03-21 13:38:02 +01:00
parent ea652f0ec9
commit 920cb1a0de
2 changed files with 507 additions and 0 deletions

View 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>

View 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&amp;t=56'),
'viewlogs' => append_sid("phpBB/mcp.$phpEx", 'i=logs&amp;mode=topic_logs&amp;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);
}
}