Merge branch 'develop' of https://github.com/phpbb/phpbb3 into feature/twig

# By Dhruv
# Via Andreas Fischer (3) and Dhruv (1)
* 'develop' of https://github.com/phpbb/phpbb3:
  [ticket/10838] Fix URL for wiki and remove irrelevant line
  [ticket/10838] Remove php 5.4 and builtin server references
  [ticket/10838] Fix missing data
  [ticket/10838] separate database used mentioned in unit tests
  [ticket/11585] Make $auth_admin class property
  [ticket/10838] Updated RUNNING_TESTS.md
This commit is contained in:
Nathaniel Guse 2013-07-01 20:38:29 -05:00
commit 87e4e05220
2 changed files with 46 additions and 17 deletions

View file

@ -21,6 +21,7 @@ if (!defined('IN_PHPBB'))
class acp_permission_roles
{
var $u_action;
protected $auth_admin;
function main($id, $mode)
{
@ -30,7 +31,7 @@ class acp_permission_roles
include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
include_once($phpbb_root_path . 'includes/acp/auth.' . $phpEx);
$auth_admin = new auth_admin();
$this->auth_admin = new auth_admin();
$user->add_lang('acp/permissions');
add_permission_language();
@ -210,7 +211,7 @@ class acp_permission_roles
}
// Now add the auth settings
$auth_admin->acl_set_role($role_id, $auth_settings);
$this->auth_admin->acl_set_role($role_id, $auth_settings);
$role_name = (!empty($user->lang[$role_name])) ? $user->lang[$role_name] : $role_name;
add_log('admin', 'LOG_' . strtoupper($permission_type) . 'ROLE_' . strtoupper($action), $role_name);
@ -343,7 +344,7 @@ class acp_permission_roles
// Get users/groups/forums using this preset...
if ($action == 'edit')
{
$hold_ary = $auth_admin->get_role_mask($role_id);
$hold_ary = $this->auth_admin->get_role_mask($role_id);
if (sizeof($hold_ary))
{
@ -354,7 +355,7 @@ class acp_permission_roles
'L_ROLE_ASSIGNED_TO' => sprintf($user->lang['ROLE_ASSIGNED_TO'], $role_name))
);
$auth_admin->display_role_mask($hold_ary);
$this->auth_admin->display_role_mask($hold_ary);
}
}
@ -445,8 +446,8 @@ class acp_permission_roles
'S_DISPLAY_ROLE_MASK' => true)
);
$hold_ary = $auth_admin->get_role_mask($display_item);
$auth_admin->display_role_mask($hold_ary);
$hold_ary = $this->auth_admin->get_role_mask($display_item);
$this->auth_admin->display_role_mask($hold_ary);
}
}
@ -462,7 +463,7 @@ class acp_permission_roles
$auth_options = array(0 => $auth_options);
// Making use of auth_admin method here (we do not really want to change two similar code fragments)
auth_admin::build_permission_array($auth_options, $content_array, $categories, $key_sort_array);
$this->auth_admin->build_permission_array($auth_options, $content_array, $categories, $key_sort_array);
$content_array = $content_array[0];
@ -500,8 +501,6 @@ class acp_permission_roles
{
global $db;
$auth_admin = new auth_admin();
// Get complete auth array
$sql = 'SELECT auth_option, auth_option_id
FROM ' . ACL_OPTIONS_TABLE . "
@ -529,19 +528,19 @@ class acp_permission_roles
$db->sql_freeresult($result);
// Get role assignments
$hold_ary = $auth_admin->get_role_mask($role_id);
$hold_ary = $this->auth_admin->get_role_mask($role_id);
// Re-assign permissions
foreach ($hold_ary as $forum_id => $forum_ary)
{
if (isset($forum_ary['users']))
{
$auth_admin->acl_set('user', $forum_id, $forum_ary['users'], $auth_settings, 0, false);
$this->auth_admin->acl_set('user', $forum_id, $forum_ary['users'], $auth_settings, 0, false);
}
if (isset($forum_ary['groups']))
{
$auth_admin->acl_set('group', $forum_id, $forum_ary['groups'], $auth_settings, 0, false);
$this->auth_admin->acl_set('group', $forum_id, $forum_ary['groups'], $auth_settings, 0, false);
}
}
@ -563,6 +562,6 @@ class acp_permission_roles
WHERE role_id = ' . $role_id;
$db->sql_query($sql);
$auth_admin->acl_clear_prefetch();
$this->auth_admin->acl_clear_prefetch();
}
}

View file

@ -50,9 +50,11 @@ Database Tests
By default all tests requiring a database connection will use sqlite. If you
do not have sqlite installed the tests will be skipped. If you wish to run the
tests on a different database you have to create a test_config.php file within
your tests directory following the same format as phpBB's config.php. An
example for mysqli can be found below. More information on configuration
options can be found on the wiki (see below).
your tests directory following the same format as phpBB's config.php. Testing
makes use of a seperate database defined in this config file and before running
the tests each time this database is deleted. An example for mysqli can be
found below. More information on configuration options can be found on the
wiki (see below).
<?php
$dbms = 'phpbb_db_driver_mysqli';
@ -132,8 +134,36 @@ only want the slow tests, run:
$ phpBB/vendor/bin/phpunit --group slow
Functional tests
-----------------
Functional tests test software the way a user would. They simulate a user
browsing the website, but they do these steps in an automated way.
phpBB allows you to write such tests.
Running
=======
Running the tests requires your phpBB3 repository to be accessible through a
local web server. You will need to supply the URL to the webserver in
the 'tests/test_config.php' file. This is as simple as defining the
'$phpbb_functional_url' variable, which contains the URL for the directory containing
the board. Make sure you include the trailing slash. Note that without extensive
changes to the test framework, you cannot use a board outside of the repository
on which to run tests.
$phpbb_functional_url = 'http://localhost/phpBB3/';
To then run the tests, you run PHPUnit, but use the phpunit.xml.functional
config file instead of the default one. Specify this through the "-c" option:
$ phpBB/vendor/bin/phpunit -c phpunit.xml.functional
This will change your board's config.php file, but it makes a backup at
config_dev.php, so you can restore it after the test run is complete.
More Information
================
Further information is available on phpbb wiki:
http://wiki.phpbb.com/Unit_Tests
http://wiki.phpbb.com/Automated_Tests