aboutsummaryrefslogtreecommitdiffstats
path: root/tests/notification
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@gmx.de>2014-03-29 20:39:22 +0100
committerJoas Schilling <nickvergessen@gmx.de>2014-03-29 20:39:22 +0100
commitf426fa02951b5131f77ad2c4596a0bd87ef23d84 (patch)
tree454e5130824322b55ccd7688428532b8ca162590 /tests/notification
parent3e281790e3da8342a7c106aa0d181bc556912baa (diff)
parentb893dae105f72b7c34abe855e24f0dec35206208 (diff)
downloadforums-f426fa02951b5131f77ad2c4596a0bd87ef23d84.tar
forums-f426fa02951b5131f77ad2c4596a0bd87ef23d84.tar.gz
forums-f426fa02951b5131f77ad2c4596a0bd87ef23d84.tar.bz2
forums-f426fa02951b5131f77ad2c4596a0bd87ef23d84.tar.xz
forums-f426fa02951b5131f77ad2c4596a0bd87ef23d84.zip
Merge remote-tracking branch 'prototech/ticket/11959' into develop-ascraeus
* prototech/ticket/11959: [ticket/11959] Move phpbb_generate_string_list() to functions_content.php. [ticket/11959] Add unit tests. [ticket/11959] Remove use of plurals and make it possible to use Oxford comma. [ticket/11959] Rename phpbb_gen_string_list() & fix incorrect var name. [ticket/11959] Simplify how the users are trimmed. [ticket/11959] Add function to create a string list. [ticket/11959] Add samples for the untrimmed strings. [ticket/11959] List the last user with "and" instead of a comma. [ticket/11959] Use the plurals system for the untrimmed language strings. [ticket/11959] Fix the NOTIFICATION_QUOTE_TRIMMED text. [ticket/11959] Use plurals for the language strings.
Diffstat (limited to 'tests/notification')
-rw-r--r--tests/notification/fixtures/user_list_trim.xml51
-rw-r--r--tests/notification/user_list_trim_test.php139
2 files changed, 190 insertions, 0 deletions
diff --git a/tests/notification/fixtures/user_list_trim.xml b/tests/notification/fixtures/user_list_trim.xml
new file mode 100644
index 0000000000..4f708714da
--- /dev/null
+++ b/tests/notification/fixtures/user_list_trim.xml
@@ -0,0 +1,51 @@
+<?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_colour</column>
+ <column>user_permissions</column>
+ <column>user_sig</column>
+ <row>
+ <value>2</value>
+ <value>A</value>
+ <value>a</value>
+ <value></value>
+ <value></value>
+ <value></value>
+ </row>
+ <row>
+ <value>3</value>
+ <value>B</value>
+ <value>b</value>
+ <value></value>
+ <value></value>
+ <value></value>
+ </row>
+ <row>
+ <value>4</value>
+ <value>C</value>
+ <value>c</value>
+ <value></value>
+ <value></value>
+ <value></value>
+ </row>
+ <row>
+ <value>5</value>
+ <value>D</value>
+ <value>d</value>
+ <value></value>
+ <value></value>
+ <value></value>
+ </row>
+ <row>
+ <value>6</value>
+ <value>E</value>
+ <value>e</value>
+ <value></value>
+ <value></value>
+ <value></value>
+ </row>
+ </table>
+</dataset>
diff --git a/tests/notification/user_list_trim_test.php b/tests/notification/user_list_trim_test.php
new file mode 100644
index 0000000000..a8422f80b5
--- /dev/null
+++ b/tests/notification/user_list_trim_test.php
@@ -0,0 +1,139 @@
+<?php
+/**
+*
+* @package testing
+* @copyright (c) 2014 phpBB Group
+* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
+*
+*/
+
+require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php';
+require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
+
+class phpbb_notification_user_list_trim_test extends phpbb_database_test_case
+{
+ protected $notification;
+
+ public function getDataSet()
+ {
+ return $this->createXMLDataSet(dirname(__FILE__) . '/fixtures/user_list_trim.xml');
+ }
+
+ public function setUp()
+ {
+ global $phpbb_root_path, $phpEx, $phpbb_dispatcher, $user, $cache, $auth;
+
+ parent::setUp();
+
+ $phpbb_dispatcher = new phpbb_mock_event_dispatcher();
+ $db = $this->new_dbal();
+
+ $config = new \phpbb\config\config(array());
+ set_config(null, null, null, $config);
+ set_config_count(null, null, null, $config);
+
+ $cache = new \phpbb\cache\service(
+ new \phpbb\cache\driver\null(),
+ $config,
+ $db,
+ $phpbb_root_path,
+ $phpEx
+ );
+
+ $auth = $this->getMock('\phpbb\auth\auth');
+ $auth->expects($this->any())
+ ->method('acl_get')
+ ->with($this->stringContains('_'),
+ $this->anything())
+ ->will($this->returnValueMap(array(
+ array('u_viewprofile', 1, false),
+ )));
+
+ $user = new \phpbb\user();
+ $user->data = array('user_lang' => 'en');
+ $user->add_lang('common');
+
+ $user_loader = new phpbb\user_loader($db, $phpbb_root_path, $phpEx, USERS_TABLE);
+ $user_loader->load_users(array(2, 3, 4, 5, 6));
+
+ $this->notification = new phpbb_mock_notification_type_post(
+ $user_loader, null, null, $user, null, null, $phpbb_root_path, $phpEx, null, null, null
+ );
+ }
+
+ public function user_list_trim_data()
+ {
+ return array(
+ array(
+ array(
+ 'topic_title' => 'Test',
+ 'poster_id' => 2,
+ 'post_username' => 'A',
+ 'responders' => null,
+ ),
+ 'A replied to the topic “Test”.',
+ ),
+ array(
+ array(
+ 'topic_title' => 'Test',
+ 'poster_id' => 2,
+ 'post_username' => 'A',
+ 'responders' => array(
+ array('username' => '', 'poster_id' => 3),
+ ),
+ ),
+ 'A and B replied to the topic “Test”.',
+ ),
+ array(
+ array(
+ 'topic_title' => 'Test',
+ 'poster_id' => 2,
+ 'post_username' => 'A',
+ 'responders' => array(
+ array('username' => '', 'poster_id' => 3),
+ array('username' => '', 'poster_id' => 4),
+ ),
+ ),
+ 'A, B, and C replied to the topic “Test”.',
+ ),
+ array(
+ array(
+ 'topic_title' => 'Test',
+ 'poster_id' => 2,
+ 'post_username' => 'A',
+ 'responders' => array(
+ array('username' => '', 'poster_id' => 3),
+ array('username' => '', 'poster_id' => 4),
+ array('username' => '', 'poster_id' => 5),
+ ),
+ ),
+ 'A, B, C, and D replied to the topic “Test”.',
+ ),
+ array(
+ array(
+ 'topic_title' => 'Test',
+ 'poster_id' => 2,
+ 'post_username' => 'A',
+ 'responders' => array(
+ array('username' => '', 'poster_id' => 3),
+ array('username' => '', 'poster_id' => 4),
+ array('username' => '', 'poster_id' => 5),
+ array('username' => '', 'poster_id' => 6),
+ ),
+ ),
+ 'A, B, C, and 2 others replied to the topic “Test”.',
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider user_list_trim_data
+ */
+ public function test_user_list_trim($data, $expected_result)
+ {
+ $data = array('notification_data' => serialize($data));
+ $this->notification->set_initial_data($data);
+
+ $this->assertEquals($expected_result, $this->notification->get_title());
+ }
+}