aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@gmx.de>2013-12-04 17:20:20 +0100
committerJoas Schilling <nickvergessen@gmx.de>2013-12-04 17:20:20 +0100
commitb474917ba3fbb26e50a7145fa904efec949f20ce (patch)
tree4de591fc65811bd1b82c7a5f322c55faf41bd406
parentfa33abaf0d6cf5c12e5dadeff2c2d59561e19b22 (diff)
parent80fa658e8fc94972349b5f0d01f93afba7744e0e (diff)
downloadforums-b474917ba3fbb26e50a7145fa904efec949f20ce.tar
forums-b474917ba3fbb26e50a7145fa904efec949f20ce.tar.gz
forums-b474917ba3fbb26e50a7145fa904efec949f20ce.tar.bz2
forums-b474917ba3fbb26e50a7145fa904efec949f20ce.tar.xz
forums-b474917ba3fbb26e50a7145fa904efec949f20ce.zip
Merge remote-tracking branch 'Marc/ticket/11842' into develop
* Marc/ticket/11842: [ticket/11842] Add functional test for creating group [ticket/11842] Use avatar_data for obtaining driver that should be deleted [ticket/11842] Use type map for updating avatar types in database [ticket/11842] Add missing prefix for group id in avatar data [ticket/11842] Use only new avatar type in user_delete function [ticket/11842] Add migration file for updating avatar type in database [ticket/11842] Replace outdated occurences of user and group avatar_type [ticket/11842] Use group_id 0 and correct avatar name after creating group
-rw-r--r--phpBB/includes/acp/acp_groups.php6
-rw-r--r--phpBB/includes/acp/acp_users.php2
-rw-r--r--phpBB/includes/functions_user.php12
-rw-r--r--phpBB/includes/ucp/ucp_groups.php2
-rw-r--r--phpBB/includes/ucp/ucp_profile.php2
-rw-r--r--phpBB/phpbb/db/migration/data/v310/avatar_types.php60
-rw-r--r--tests/functional/avatar_acp_groups_test.php9
-rw-r--r--tests/functional/group_create_test.php31
-rw-r--r--tests/functions_user/group_user_attributes_test.php12
9 files changed, 120 insertions, 16 deletions
diff --git a/phpBB/includes/acp/acp_groups.php b/phpBB/includes/acp/acp_groups.php
index c170c67d49..b36ea1a8d8 100644
--- a/phpBB/includes/acp/acp_groups.php
+++ b/phpBB/includes/acp/acp_groups.php
@@ -325,6 +325,10 @@ class acp_groups
// This is normalised data, without the group_ prefix
$avatar_data = \phpbb\avatar\manager::clean_row($group_row, 'group');
+ if (!isset($avatar_data['id']))
+ {
+ $avatar_data['id'] = 'g' . $group_id;
+ }
}
@@ -379,7 +383,7 @@ class acp_groups
}
else
{
- $driver = $phpbb_avatar_manager->get_driver($user->data['user_avatar_type']);
+ $driver = $phpbb_avatar_manager->get_driver($avatar_data['avatar_type']);
if ($driver)
{
$driver->delete($avatar_data);
diff --git a/phpBB/includes/acp/acp_users.php b/phpBB/includes/acp/acp_users.php
index fbc1cc1f14..1a7bc2d186 100644
--- a/phpBB/includes/acp/acp_users.php
+++ b/phpBB/includes/acp/acp_users.php
@@ -1775,7 +1775,7 @@ class acp_users
}
else
{
- $driver = $phpbb_avatar_manager->get_driver($user->data['user_avatar_type']);
+ $driver = $phpbb_avatar_manager->get_driver($avatar_data['avatar_type']);
if ($driver)
{
$driver->delete($avatar_data);
diff --git a/phpBB/includes/functions_user.php b/phpBB/includes/functions_user.php
index b54197ac03..dba6d3d6c2 100644
--- a/phpBB/includes/functions_user.php
+++ b/phpBB/includes/functions_user.php
@@ -213,7 +213,7 @@ function user_add($user_row, $cp_data = false)
'user_occ' => '',
'user_interests' => '',
'user_avatar' => '',
- 'user_avatar_type' => 0,
+ 'user_avatar_type' => '',
'user_avatar_width' => 0,
'user_avatar_height' => 0,
'user_new_privmsg' => 0,
@@ -464,7 +464,7 @@ function user_delete($mode, $user_ids, $retain_username = true)
$added_guest_posts = 0;
foreach ($user_rows as $user_id => $user_row)
{
- if ($user_row['user_avatar'] && $user_row['user_avatar_type'] == AVATAR_UPLOAD)
+ if ($user_row['user_avatar'] && $user_row['user_avatar_type'] == 'avatar.driver.upload')
{
avatar_delete('user', $user_row);
}
@@ -2315,7 +2315,7 @@ function group_create(&$group_id, $type, $name, $desc, $group_attributes, $allow
{
$group_id = $db->sql_nextid();
- if (isset($sql_ary['group_avatar_type']) && $sql_ary['group_avatar_type'] == AVATAR_UPLOAD)
+ if (isset($sql_ary['group_avatar_type']) && $sql_ary['group_avatar_type'] == 'avatar.driver.upload')
{
group_correct_avatar($group_id, $sql_ary['group_avatar']);
}
@@ -2416,7 +2416,7 @@ function avatar_remove_db($avatar_name)
$sql = 'UPDATE ' . USERS_TABLE . "
SET user_avatar = '',
- user_avatar_type = 0
+ user_avatar_type = ''
WHERE user_avatar = '" . $db->sql_escape($avatar_name) . '\'';
$db->sql_query($sql);
}
@@ -2826,7 +2826,7 @@ function remove_default_avatar($group_id, $user_ids)
$sql = 'UPDATE ' . USERS_TABLE . "
SET user_avatar = '',
- user_avatar_type = 0,
+ user_avatar_type = '',
user_avatar_width = 0,
user_avatar_height = 0
WHERE group_id = " . (int) $group_id . "
@@ -3084,7 +3084,7 @@ function group_set_user_default($group_id, $user_id_ary, $group_attributes = fal
'group_colour' => 'string',
'group_rank' => 'int',
'group_avatar' => 'string',
- 'group_avatar_type' => 'int',
+ 'group_avatar_type' => 'string',
'group_avatar_width' => 'int',
'group_avatar_height' => 'int',
);
diff --git a/phpBB/includes/ucp/ucp_groups.php b/phpBB/includes/ucp/ucp_groups.php
index 716289eded..7c4bc8f617 100644
--- a/phpBB/includes/ucp/ucp_groups.php
+++ b/phpBB/includes/ucp/ucp_groups.php
@@ -509,7 +509,7 @@ class ucp_groups
}
else
{
- if ($driver = $phpbb_avatar_manager->get_driver($user->data['user_avatar_type']))
+ if ($driver = $phpbb_avatar_manager->get_driver($avatar_data['avatar_type']))
{
$driver->delete($avatar_data);
}
diff --git a/phpBB/includes/ucp/ucp_profile.php b/phpBB/includes/ucp/ucp_profile.php
index f7c6aca9e8..2252b2ea17 100644
--- a/phpBB/includes/ucp/ucp_profile.php
+++ b/phpBB/includes/ucp/ucp_profile.php
@@ -603,7 +603,7 @@ class ucp_profile
}
else
{
- if ($driver = $phpbb_avatar_manager->get_driver($user->data['user_avatar_type']))
+ if ($driver = $phpbb_avatar_manager->get_driver($avatar_data['avatar_type']))
{
$driver->delete($avatar_data);
}
diff --git a/phpBB/phpbb/db/migration/data/v310/avatar_types.php b/phpBB/phpbb/db/migration/data/v310/avatar_types.php
new file mode 100644
index 0000000000..5750a43ddd
--- /dev/null
+++ b/phpBB/phpbb/db/migration/data/v310/avatar_types.php
@@ -0,0 +1,60 @@
+<?php
+/**
+*
+* @package migration
+* @copyright (c) 2013 phpBB Group
+* @license http://opensource.org/licenses/gpl-license.php GNU Public License v2
+*
+*/
+
+namespace phpbb\db\migration\data\v310;
+
+class avatar_types extends \phpbb\db\migration\migration
+{
+ /**
+ * @var avatar type map
+ */
+ protected $avatar_type_map = array(
+ AVATAR_UPLOAD => 'avatar.driver.upload',
+ AVATAR_REMOTE => 'avatar.driver.remote',
+ AVATAR_GALLERY => 'avatar.driver.local',
+ );
+
+ static public function depends_on()
+ {
+ return array(
+ '\phpbb\db\migration\data\v310\dev',
+ '\phpbb\db\migration\data\v310\avatars',
+ );
+ }
+
+ public function update_data()
+ {
+ return array(
+ array('custom', array(array($this, 'update_user_avatar_type'))),
+ array('custom', array(array($this, 'update_group_avatar_type'))),
+ );
+ }
+
+ public function update_user_avatar_type()
+ {
+ foreach ($this->avatar_type_map as $old => $new)
+ {
+ $sql = 'UPDATE ' . $this->table_prefix . "users
+ SET user_avatar_type = '$new'
+ WHERE user_avatar_type = $old";
+ $this->db->sql_query($sql);
+ }
+ }
+
+ public function update_group_avatar_type()
+ {
+ foreach ($this->avatar_type_map as $old => $new)
+ {
+ $sql = 'UPDATE ' . $this->table_prefix . "groups
+ SET group_avatar_type = '$new'
+ WHERE group_avatar_type = $old";
+ $this->db->sql_query($sql);
+ }
+ }
+}
diff --git a/tests/functional/avatar_acp_groups_test.php b/tests/functional/avatar_acp_groups_test.php
index 5e908bc6da..5f767b44f2 100644
--- a/tests/functional/avatar_acp_groups_test.php
+++ b/tests/functional/avatar_acp_groups_test.php
@@ -69,4 +69,13 @@ class phpbb_functional_avatar_acp_groups_test extends phpbb_functional_common_av
{
$this->assert_avatar_submit($expected, $avatar_type, $data);
}
+
+ // Test if avatar was really deleted
+ public function test_no_avatar_acp_groups()
+ {
+ $crawler = self::request('GET', $this->get_url() . '&sid=' . $this->sid);
+ $form = $crawler->selectButton($this->lang('SUBMIT'))->form();
+ $form_data = $form->getValues();
+ $this->assertEmpty($form_data['avatar_type']);
+ }
}
diff --git a/tests/functional/group_create_test.php b/tests/functional/group_create_test.php
new file mode 100644
index 0000000000..96780069f7
--- /dev/null
+++ b/tests/functional/group_create_test.php
@@ -0,0 +1,31 @@
+<?php
+/**
+*
+* @package testing
+* @copyright (c) 2013 phpBB Group
+* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
+*
+*/
+
+/**
+* @group functional
+*/
+class phpbb_functional_group_create_test extends phpbb_functional_test_case
+{
+
+ public function test_create_group()
+ {
+ $this->login();
+ $this->admin_login();
+ $this->add_lang('acp/groups');
+
+ $crawler = self::request('GET', 'adm/index.php?i=acp_groups&mode=manage&sid=' . $this->sid);
+ $form = $crawler->selectButton($this->lang('SUBMIT'))->form();
+ $crawler = self::submit($form, array('group_name' => 'testtest'));
+
+ $form = $crawler->selectButton($this->lang('SUBMIT'))->form();
+ $crawler = self::submit($form, array('group_name' => 'testtest'));
+
+ $this->assertContainsLang('GROUP_CREATED', $crawler->filter('#main')->text());
+ }
+}
diff --git a/tests/functions_user/group_user_attributes_test.php b/tests/functions_user/group_user_attributes_test.php
index 4317cf79da..86e4767970 100644
--- a/tests/functions_user/group_user_attributes_test.php
+++ b/tests/functions_user/group_user_attributes_test.php
@@ -27,7 +27,7 @@ class phpbb_functions_user_group_user_attributes_test extends phpbb_database_tes
2,
array(
'group_avatar' => '',
- 'group_avatar_type' => 0,
+ 'group_avatar_type' => '',
'group_avatar_height' => 0,
'group_avatar_width' => 0,
'group_rank' => 0,
@@ -43,7 +43,7 @@ class phpbb_functions_user_group_user_attributes_test extends phpbb_database_tes
2,
array(
'group_avatar' => '',
- 'group_avatar_type' => 0,
+ 'group_avatar_type' => '',
'group_avatar_height' => 0,
'group_avatar_width' => 0,
'group_rank' => 0,
@@ -59,7 +59,7 @@ class phpbb_functions_user_group_user_attributes_test extends phpbb_database_tes
2,
array(
'group_avatar' => '',
- 'group_avatar_type' => 0,
+ 'group_avatar_type' => '',
'group_avatar_height' => 0,
'group_avatar_width' => 0,
'group_rank' => 0,
@@ -75,7 +75,7 @@ class phpbb_functions_user_group_user_attributes_test extends phpbb_database_tes
3,
array(
'group_avatar' => 'default2',
- 'group_avatar_type' => 1,
+ 'group_avatar_type' => 'avatar.driver.upload',
'group_avatar_height' => 1,
'group_avatar_width' => 1,
'group_rank' => 3,
@@ -91,7 +91,7 @@ class phpbb_functions_user_group_user_attributes_test extends phpbb_database_tes
3,
array(
'group_avatar' => 'default2',
- 'group_avatar_type' => 1,
+ 'group_avatar_type' => 'avatar.driver.upload',
'group_avatar_height' => 1,
'group_avatar_width' => 1,
'group_rank' => 3,
@@ -107,7 +107,7 @@ class phpbb_functions_user_group_user_attributes_test extends phpbb_database_tes
3,
array(
'group_avatar' => 'default2',
- 'group_avatar_type' => 1,
+ 'group_avatar_type' => 'avatar.driver.upload',
'group_avatar_height' => 1,
'group_avatar_width' => 1,
'group_rank' => 3,