mirror of
https://github.com/phpbb/phpbb.git
synced 2025-05-07 16:15:22 +02:00
Merge branch 'develop-ascraeus' into develop
* develop-ascraeus: [ticket/13207] Add notification manager mock to user_add method in tests [ticket/13207] Move default user notifications settings to user_add() [ticket/13207] Add default subscription options for newly registered users
This commit is contained in:
commit
33d0872a18
@ -161,9 +161,10 @@ function user_update_name($old_name, $new_name)
|
||||
*
|
||||
* @param mixed $user_row An array containing the following keys (and the appropriate values): username, group_id (the group to place the user in), user_email and the user_type(usually 0). Additional entries not overridden by defaults will be forwarded.
|
||||
* @param string $cp_data custom profile fields, see custom_profile::build_insert_sql_array
|
||||
* @param array $notifications_data The notifications settings for the new user
|
||||
* @return the new user's ID.
|
||||
*/
|
||||
function user_add($user_row, $cp_data = false)
|
||||
function user_add($user_row, $cp_data = false, $notifications_data = null)
|
||||
{
|
||||
global $db, $user, $auth, $config, $phpbb_root_path, $phpEx;
|
||||
global $phpbb_dispatcher, $phpbb_container;
|
||||
@ -347,6 +348,31 @@ function user_add($user_row, $cp_data = false)
|
||||
set_config('newest_user_colour', $row['group_colour'], true);
|
||||
}
|
||||
|
||||
// Use default notifications settings if notifications_data is not set
|
||||
if ($notifications_data === null)
|
||||
{
|
||||
$notifications_data = array(
|
||||
array(
|
||||
'item_type' => 'notification.type.post',
|
||||
'method' => 'notification.method.email',
|
||||
),
|
||||
array(
|
||||
'item_type' => 'notification.type.topic',
|
||||
'method' => 'notification.method.email',
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
// Subscribe user to notifications if necessary
|
||||
if (!empty($notifications_data))
|
||||
{
|
||||
$phpbb_notifications = $phpbb_container->get('notification_manager');
|
||||
foreach ($notifications_data as $subscription)
|
||||
{
|
||||
$phpbb_notifications->add_subscription($subscription['item_type'], 0, $subscription['method'], $user_id);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Event that returns user id, user detals and user CPF of newly registared user
|
||||
*
|
||||
|
@ -45,12 +45,24 @@ class phpbb_functional_registration_test extends phpbb_functional_test_case
|
||||
$form = $crawler->selectButton('Submit')->form(array(
|
||||
'username' => 'user-reg-test',
|
||||
'email' => 'user-reg-test@phpbb.com',
|
||||
'new_password' => 'testtest',
|
||||
'password_confirm' => 'testtest',
|
||||
'new_password' => 'user-reg-testuser-reg-test',
|
||||
'password_confirm' => 'user-reg-testuser-reg-test',
|
||||
));
|
||||
$form['tz']->select('Europe/Berlin');
|
||||
$crawler = self::submit($form);
|
||||
|
||||
$this->assertContainsLang('ACCOUNT_ADDED', $crawler->filter('#message')->text());
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends test_register_new_account
|
||||
*/
|
||||
public function test_default_subscription_options()
|
||||
{
|
||||
$this->login('user-reg-test');
|
||||
$crawler = self::request('GET', 'ucp.php?i=ucp_notifications&mode=notification_options&sid=' . $this->sid);
|
||||
$form_values = $crawler->selectButton('Submit')->form()->getValues();
|
||||
$this->assertEquals(1, $form_values['notification.type.post_notification.method.email']);
|
||||
$this->assertEquals(1, $form_values['notification.type.topic_notification.method.email']);
|
||||
}
|
||||
}
|
||||
|
@ -556,12 +556,10 @@ class phpbb_functional_test_case extends phpbb_test_case
|
||||
$cache = new phpbb_mock_null_cache;
|
||||
|
||||
$cache_driver = new \phpbb\cache\driver\null();
|
||||
$phpbb_container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
|
||||
$phpbb_container
|
||||
->expects($this->any())
|
||||
->method('get')
|
||||
->with('cache.driver')
|
||||
->will($this->returnValue($cache_driver));
|
||||
$phpbb_container = new phpbb_mock_container_builder();
|
||||
$phpbb_container->set('cache.driver', $cache_driver);
|
||||
$phpbb_notifications = new phpbb_mock_notification_manager();
|
||||
$phpbb_container->set('notification_manager', $phpbb_notifications);
|
||||
|
||||
if (!function_exists('utf_clean_string'))
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user