aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Alexander <admin@m-a-styles.de>2017-07-23 11:18:07 +0200
committerMarc Alexander <admin@m-a-styles.de>2017-07-23 11:18:07 +0200
commit91f9050a70d95a472daf9f6fa15187c195f05909 (patch)
tree6fb88de3de320cc7082ccd79dfc258959095952a
parent2749bfe26ccae7db4174cdd83453d79366113c28 (diff)
downloadforums-91f9050a70d95a472daf9f6fa15187c195f05909.tar
forums-91f9050a70d95a472daf9f6fa15187c195f05909.tar.gz
forums-91f9050a70d95a472daf9f6fa15187c195f05909.tar.bz2
forums-91f9050a70d95a472daf9f6fa15187c195f05909.tar.xz
forums-91f9050a70d95a472daf9f6fa15187c195f05909.zip
[ticket/security/211] Extend tests for profile field values
SECURITY-211
-rw-r--r--tests/profilefields/type_string_test.php12
-rw-r--r--tests/profilefields/type_url_test.php54
2 files changed, 66 insertions, 0 deletions
diff --git a/tests/profilefields/type_string_test.php b/tests/profilefields/type_string_test.php
index 0417afbfab..43f88c01ae 100644
--- a/tests/profilefields/type_string_test.php
+++ b/tests/profilefields/type_string_test.php
@@ -270,6 +270,18 @@ class phpbb_profilefield_type_string_test extends phpbb_test_case
null,
'Field should simply output null for empty vlaue',
),
+ array(
+ 'http://foobar.com',
+ array('field_show_novalue' => false),
+ 'http://foobar.com',
+ 'Field should output the given value but not make it clickable',
+ ),
+ array(
+ 'javascript://foobar.com',
+ array('field_show_novalue' => true),
+ 'javascript://foobar.com',
+ 'Field should output the given value but not make it clickable',
+ ),
);
}
diff --git a/tests/profilefields/type_url_test.php b/tests/profilefields/type_url_test.php
index aaba227348..af17cc125a 100644
--- a/tests/profilefields/type_url_test.php
+++ b/tests/profilefields/type_url_test.php
@@ -12,6 +12,8 @@
*/
require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
+require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php';
+require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php';
class phpbb_profilefield_type_url_test extends phpbb_test_case
{
@@ -26,6 +28,9 @@ class phpbb_profilefield_type_url_test extends phpbb_test_case
*/
public function setUp()
{
+ global $request, $user, $cache;
+
+ $cache = new phpbb_mock_cache;
$user = $this->getMock('\phpbb\user', array(), array('\phpbb\datetime'));
$user->expects($this->any())
->method('lang')
@@ -175,6 +180,55 @@ class phpbb_profilefield_type_url_test extends phpbb_test_case
);
}
+ public function profile_value_data()
+ {
+ return array(
+ array(
+ 'http://foobar.com',
+ array('field_show_novalue' => true),
+ '<!-- l --><a class="postlink-local" href="http://foobar.com">foobar.com</a><!-- l -->',
+ 'Field should output the given value',
+ ),
+ array(
+ 'http://foobar.com',
+ array('field_show_novalue' => false),
+ '<!-- l --><a class="postlink-local" href="http://foobar.com">foobar.com</a><!-- l -->',
+ 'Field should output the given value',
+ ),
+ array(
+ 'test',
+ array('field_show_novalue' => true),
+ null,
+ 'Field should output nothing for empty value',
+ ),
+ array(
+ 'test',
+ array('field_show_novalue' => false),
+ null,
+ 'Field should simply output null for empty value',
+ ),
+ array(
+ 'javascript://foobar.com',
+ array('field_show_novalue' => true),
+ null,
+ 'Field should output nothing for empty value',
+ ),
+ );
+ }
+
+
+ /**
+ * @dataProvider profile_value_data
+ */
+ public function test_get_profile_value($value, $field_options, $expected, $description)
+ {
+ $field_options = array_merge($this->field_options, $field_options);
+
+ $result = $this->cp->get_profile_value($value, $field_options);
+
+ $this->assertSame($expected, $result, $description);
+ }
+
/**
* @dataProvider profile_value_raw_data
*/