aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNathaniel Guse <nathaniel.guse@gmail.com>2013-05-02 15:39:26 -0500
committerNathaniel Guse <nathaniel.guse@gmail.com>2013-05-02 15:39:26 -0500
commit07c972f5d71f7aa56d6623774e977ea7958a906e (patch)
tree058f5fecc58bc24db0609b580c02a3e37bbc9857
parent900467681077b7c4cd48529b53f083c8ea0334f6 (diff)
downloadforums-07c972f5d71f7aa56d6623774e977ea7958a906e.tar
forums-07c972f5d71f7aa56d6623774e977ea7958a906e.tar.gz
forums-07c972f5d71f7aa56d6623774e977ea7958a906e.tar.bz2
forums-07c972f5d71f7aa56d6623774e977ea7958a906e.tar.xz
forums-07c972f5d71f7aa56d6623774e977ea7958a906e.zip
[ticket/11413] Remove changes for ticket 11420 from this branch
PHPBB3-11413
-rw-r--r--phpBB/includes/db/migration/data/310/notifications.php64
-rw-r--r--tests/notification/convert_test.php110
-rw-r--r--tests/notification/fixtures/convert.xml52
3 files changed, 64 insertions, 162 deletions
diff --git a/phpBB/includes/db/migration/data/310/notifications.php b/phpBB/includes/db/migration/data/310/notifications.php
index 17c939d95a..82bfd4cb2d 100644
--- a/phpBB/includes/db/migration/data/310/notifications.php
+++ b/phpBB/includes/db/migration/data/310/notifications.php
@@ -91,6 +91,70 @@ class phpbb_db_migration_data_310_notifications extends phpbb_db_migration
),
)),
array('config.add', array('load_notifications', 1)),
+ array('custom', array(array($this, 'convert_notifications'))),
);
}
+
+ public function convert_notifications()
+ {
+ $convert_notifications = array(
+ array(
+ 'check' => ($this->config['allow_topic_notify']),
+ 'item_type' => 'post',
+ ),
+ array(
+ 'check' => ($this->config['allow_forum_notify']),
+ 'item_type' => 'topic',
+ ),
+ array(
+ 'check' => ($this->config['allow_bookmarks']),
+ 'item_type' => 'bookmark',
+ ),
+ array(
+ 'check' => ($this->config['allow_privmsg']),
+ 'item_type' => 'pm',
+ ),
+ );
+
+ foreach ($convert_notifications as $convert_data)
+ {
+ if ($convert_data['check'])
+ {
+ $sql = 'SELECT user_id, user_notify_type
+ FROM ' . USERS_TABLE . '
+ WHERE user_notify = 1';
+ $result = $this->db->sql_query($sql);
+ while ($row = $this->db->sql_fetchrow($result))
+ {
+ $this->sql_query('INSERT INTO ' . $this->table_prefix . 'user_notifications ' . $this->db->sql_build_array('INSERT', array(
+ 'item_type' => $convert_data['item_type'],
+ 'item_id' => 0,
+ 'user_id' => $row['user_id'],
+ 'method' => '',
+ )));
+
+ if ($row['user_notify_type'] == NOTIFY_EMAIL || $row['user_notify_type'] == NOTIFY_BOTH)
+ {
+ $this->sql_query('INSERT INTO ' . $this->table_prefix . 'user_notifications ' . $this->db->sql_build_array('INSERT', array(
+ 'item_type' => $convert_data['item_type'],
+ 'item_id' => 0,
+ 'user_id' => $row['user_id'],
+ 'method' => 'email',
+ )));
+ }
+
+ if ($row['user_notify_type'] == NOTIFY_IM || $row['user_notify_type'] == NOTIFY_BOTH)
+ {
+ $this->sql_query('INSERT INTO ' . $this->table_prefix . 'user_notifications ' . $this->db->sql_build_array('INSERT', array(
+ 'item_type' => $convert_data['item_type'],
+ 'item_id' => 0,
+ 'user_id' => $row['user_id'],
+ 'method' => 'jabber',
+ )));
+ }
+ }
+ $this->db->sql_freeresult($result);
+ }
+ }
+ }
}
diff --git a/tests/notification/convert_test.php b/tests/notification/convert_test.php
deleted file mode 100644
index ba586b681d..0000000000
--- a/tests/notification/convert_test.php
+++ /dev/null
@@ -1,110 +0,0 @@
-<?php
-/**
-*
-* @package testing
-* @copyright (c) 2013 phpBB Group
-* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
-*
-*/
-
-require_once dirname(__FILE__) . '/../../phpBB/includes/db/db_tools.php';
-require_once dirname(__FILE__) . '/../mock/sql_insert_buffer.php';
-
-class phpbb_notification_convert_test extends phpbb_database_test_case
-{
- protected $notifications, $db, $container, $user, $config, $auth, $cache;
-
- public function getDataSet()
- {
- return $this->createXMLDataSet(dirname(__FILE__) . '/fixtures/convert.xml');
- }
-
- protected function setUp()
- {
- parent::setUp();
-
- global $phpbb_root_path, $phpEx;
-
- $this->db = $this->new_dbal();
-
- $this->migration = new phpbb_db_migration_data_310_notifications2(
- new phpbb_config(array()),
- $this->db,
- new phpbb_db_tools($this->db),
- $phpbb_root_path,
- $phpEx,
- 'phpbb_'
- );
- }
-
- public function test_convert()
- {
- $buffer = new phpbb_mock_sql_insert_buffer($this->db, 'phpbb_user_notifications');
- $this->migration->perform_conversion($buffer, 'phpbb_user_notifications');
-
- $expected = array_merge(
- $this->create_expected('post', 1, 'email'),
- $this->create_expected('topic', 1, 'email'),
-
- $this->create_expected('post', 2, 'email'),
- $this->create_expected('topic', 2, 'email'),
- $this->create_expected('pm', 2, 'email'),
-
- $this->create_expected('post', 3, 'jabber'),
- $this->create_expected('topic', 3, 'jabber'),
-
- $this->create_expected('post', 4, 'jabber'),
- $this->create_expected('topic', 4, 'jabber'),
- $this->create_expected('pm', 4, 'jabber'),
-
- $this->create_expected('post', 5, 'both'),
- $this->create_expected('topic', 5, 'both'),
-
- $this->create_expected('post', 6, 'both'),
- $this->create_expected('topic', 6, 'both'),
- $this->create_expected('pm', 6, 'both')
- );
-
- $this->assertEquals($expected, $buffer->get_buffer());
- }
-
- protected function create_expected($type, $user_id, $method = '')
- {
- $return = array();
-
- if ($method != '')
- {
- $return[] = array(
- 'item_type' => $type,
- 'item_id' => 0,
- 'user_id' => $user_id,
- 'method' => '',
- 'notify' => 1,
- );
- }
-
- if ($method == 'email' || $method == 'both')
- {
- $return[] = array(
- 'item_type' => $type,
- 'item_id' => 0,
- 'user_id' => $user_id,
- 'method' => 'email',
- 'notify' => 1,
- );
- }
-
- if ($method == 'jabber' || $method == 'both')
- {
- $return[] = array(
- 'item_type' => $type,
- 'item_id' => 0,
- 'user_id' => $user_id,
- 'method' => 'jabber',
- 'notify' => 1,
- );
- }
-
- return $return;
- }
-}
diff --git a/tests/notification/fixtures/convert.xml b/tests/notification/fixtures/convert.xml
deleted file mode 100644
index a244070a95..0000000000
--- a/tests/notification/fixtures/convert.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<dataset>
- <table name="phpbb_users">
- <column>user_id</column>
- <column>username</column>
- <column>username_clean</column>
- <column>user_notify_type</column>
- <column>user_notify_pm</column>
- <row>
- <value>1</value>
- <value>1</value>
- <value>1</value>
- <value>0</value>
- <value>0</value>
- </row>
- <row>
- <value>2</value>
- <value>2</value>
- <value>2</value>
- <value>0</value>
- <value>1</value>
- </row>
- <row>
- <value>3</value>
- <value>3</value>
- <value>3</value>
- <value>1</value>
- <value>0</value>
- </row>
- <row>
- <value>4</value>
- <value>4</value>
- <value>4</value>
- <value>1</value>
- <value>1</value>
- </row>
- <row>
- <value>5</value>
- <value>5</value>
- <value>5</value>
- <value>2</value>
- <value>0</value>
- </row>
- <row>
- <value>6</value>
- <value>6</value>
- <value>6</value>
- <value>2</value>
- <value>1</value>
- </row>
- </table>
-</dataset>