aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build/build.xml13
-rw-r--r--build/code_sniffer/phpbb/Sniffs/Commenting/FileCommentSniff.php225
-rw-r--r--build/code_sniffer/phpbb/Tests/Commenting/FileCommentUnitTest.inc19
-rw-r--r--build/code_sniffer/phpbb/Tests/Commenting/FileCommentUnitTest.php54
-rw-r--r--build/code_sniffer/phpbb/build.xml23
-rw-r--r--build/code_sniffer/phpbb/phpbbCodingStandard.php46
-rw-r--r--build/code_sniffer/ruleset-php-extensions.xml8
-rw-r--r--build/code_sniffer/ruleset-php-legacy-core.xml11
-rw-r--r--build/code_sniffer/ruleset-php-strict-core.xml9
-rw-r--r--phpBB/config/profilefields.yml9
-rw-r--r--phpBB/includes/acp/acp_contact.php11
-rw-r--r--phpBB/includes/acp/info/acp_contact.php10
-rw-r--r--phpBB/install/phpinfo.php11
-rw-r--r--phpBB/install/schemas/schema.json4
-rw-r--r--phpBB/install/schemas/schema_data.sql1
-rw-r--r--phpBB/language/en/acp/profile.php1
-rw-r--r--phpBB/language/en/common.php1
-rw-r--r--phpBB/language/en/memberlist.php1
-rw-r--r--phpBB/language/en/plupload.php2
-rw-r--r--phpBB/language/en/ucp.php2
-rw-r--r--phpBB/phpbb/console/command/cron/run.php2
-rw-r--r--phpBB/phpbb/db/migration/data/v310/contact_admin_acp_module.php10
-rw-r--r--phpBB/phpbb/db/migration/data/v310/contact_admin_form.php10
-rw-r--r--phpBB/phpbb/db/migration/data/v310/profilefield_googleplus.php60
-rw-r--r--phpBB/phpbb/message/admin_form.php12
-rw-r--r--phpBB/phpbb/message/form.php12
-rw-r--r--phpBB/phpbb/message/message.php12
-rw-r--r--phpBB/phpbb/message/topic_form.php12
-rw-r--r--phpBB/phpbb/message/user_form.php12
-rw-r--r--phpBB/phpbb/profilefields/type/type_googleplus.php58
-rw-r--r--phpBB/styles/prosilver/template/overall_header.html2
-rw-r--r--phpBB/styles/prosilver/theme/bidi.css2
-rw-r--r--phpBB/styles/prosilver/theme/buttons.css2
-rw-r--r--phpBB/styles/prosilver/theme/common.css4
-rw-r--r--phpBB/styles/prosilver/theme/responsive.css2
-rw-r--r--tests/functional/ucp_profile_test.php2
-rw-r--r--tests/profilefields/type_googleplus_test.php62
37 files changed, 440 insertions, 297 deletions
diff --git a/build/build.xml b/build/build.xml
index 510e7d0955..d3489ab607 100644
--- a/build/build.xml
+++ b/build/build.xml
@@ -77,16 +77,17 @@
<exec command="phpBB/vendor/bin/phpcs
-s
--extensions=php
- --standard=build/code_sniffer/ruleset-php-strict.xml
+ --standard=build/code_sniffer/ruleset-php-strict-core.xml
--ignore=${project.basedir}/phpBB/phpbb/db/migration/data/v30x/*
phpBB/phpbb"
dir="." returnProperty="retval-php-strict" passthru="true" />
<exec command="phpBB/vendor/bin/phpcs
-s
--extensions=php
- --standard=build/code_sniffer/ruleset-php-legacy.xml
+ --standard=build/code_sniffer/ruleset-php-legacy-core.xml
--ignore=${project.basedir}/phpBB/cache/*
--ignore=${project.basedir}/phpBB/develop/*
+ --ignore=${project.basedir}/phpBB/ext/*
--ignore=${project.basedir}/phpBB/includes/diff/*.php
--ignore=${project.basedir}/phpBB/includes/sphinxapi.php
--ignore=${project.basedir}/phpBB/includes/utf/data/*
@@ -96,10 +97,18 @@
--ignore=${project.basedir}/phpBB/vendor/*
phpBB"
dir="." returnProperty="retval-php-legacy" passthru="true" />
+ <exec command="phpBB/vendor/bin/phpcs
+ -s
+ --extensions=php
+ --standard=build/code_sniffer/ruleset-php-extensions.xml
+ --ignore=${project.basedir}/phpBB/ext/*/tests/*
+ phpBB/ext"
+ dir="." returnProperty="retval-php-ext" passthru="true" />
<if>
<or>
<not><equals arg1="${retval-php-strict}" arg2="0" /></not>
<not><equals arg1="${retval-php-legacy}" arg2="0" /></not>
+ <not><equals arg1="${retval-php-ext}" arg2="0" /></not>
</or>
<then>
<fail message="PHP Code Sniffer failed." />
diff --git a/build/code_sniffer/phpbb/Sniffs/Commenting/FileCommentSniff.php b/build/code_sniffer/phpbb/Sniffs/Commenting/FileCommentSniff.php
index fcf53b5061..fa7d3b40c1 100644
--- a/build/code_sniffer/phpbb/Sniffs/Commenting/FileCommentSniff.php
+++ b/build/code_sniffer/phpbb/Sniffs/Commenting/FileCommentSniff.php
@@ -12,9 +12,8 @@
*/
/**
-* Checks that each source file contains the standard header.
-*
-* Based on Coding Guidelines 1.ii File Header.
+* Checks that each PHP source file contains a valid header as defined by the
+* phpBB Coding Guidelines.
*
* @package code_sniffer
* @author Manuel Pichler <mapi@phpundercontrol.org>
@@ -47,10 +46,10 @@ class phpbb_Sniffs_Commenting_FileCommentSniff implements PHP_CodeSniffer_Sniff
{
if ($phpcsFile->findPrevious(T_OPEN_TAG, $stackPtr - 1) !== false)
{
- return;
+ return;
}
}
-
+
// Fetch next non whitespace token
$tokens = $phpcsFile->getTokens();
$start = $phpcsFile->findNext(T_WHITESPACE, $stackPtr + 1, null, true);
@@ -66,65 +65,68 @@ class phpbb_Sniffs_Commenting_FileCommentSniff implements PHP_CodeSniffer_Sniff
$phpcsFile->addError('Missing required file doc comment.', $stackPtr);
return;
}
-
+
// Find comment end token
$end = $phpcsFile->findNext(T_DOC_COMMENT, $start + 1, null, true) - 1;
-
+
// If there is no end, skip processing here
if ($end === false)
{
return;
}
-
+
// List of found comment tags
$tags = array();
-
+
// check comment lines without the first(/**) an last(*/) line
- for ($i = $start + 1, $c = ($end - $start); $i <= $c; ++$i)
+ for ($i = $start + 1, $c = $end - 1; $i <= $c; ++$i)
{
$line = $tokens[$i]['content'];
// Check that each line starts with a '*'
if (substr($line, 0, 1) !== '*')
{
- $message = 'The file doc comment should not be idented.';
+ $message = 'The file doc comment should not be idented.';
$phpcsFile->addWarning($message, $i);
}
else if (preg_match('/^\*\s+@([\w]+)\s+(.*)$/', $line, $match) !== 0)
{
- $tags[$match[1]] = array($match[2], $i);
+ if (!isset($tags[$match[1]]))
+ {
+ $tags[$match[1]] = array();
+ }
+
+ $tags[$match[1]][] = array($match[2], $i);
}
}
-
+
// Check that the first and last line is empty
if (trim($tokens[$start + 1]['content']) !== '*')
{
$message = 'The first file comment line should be empty.';
- $phpcsFile->addWarning($message, ($start + 1));
- }
- if (trim($tokens[$end - $start]['content']) !== '*')
- {
- $message = 'The last file comment line should be empty.';
- $phpcsFile->addWarning($message, ($end - $start));
- }
-
- $this->processPackage($phpcsFile, $start, $tags);
- $this->processVersion($phpcsFile, $start, $tags);
- $this->processCopyright($phpcsFile, $start, $tags);
- $this->processLicense($phpcsFile, $start, $tags);
-
- //print_r($tags);
+ $phpcsFile->addWarning($message, ($start + 1));
+ }
+ if (trim($tokens[$end - 1]['content']) !== '*')
+ {
+ $message = 'The last file comment line should be empty.';
+ $phpcsFile->addWarning($message, $end - 1);
+ }
+
+ //$this->processPackage($phpcsFile, $start, $tags);
+ //$this->processVersion($phpcsFile, $start, $tags);
+ $this->processCopyright($phpcsFile, $start, $tags);
+ $this->processLicense($phpcsFile, $start, $tags);
}
-
+
/**
- * Checks that the tags array contains a valid package tag
- *
- * @param PHP_CodeSniffer_File $phpcsFile The context source file instance.
- * @param integer The stack pointer for the first comment token.
- * @param array(string=>array) $tags The found file doc comment tags.
- *
- * @return null
- */
+ * Checks that the tags array contains a valid package tag
+ *
+ * @param PHP_CodeSniffer_File $phpcsFile The context source file instance.
+ * @param integer The stack pointer for the first comment token.
+ * @param array(string=>array) $tags The found file doc comment tags.
+ *
+ * @return null
+ */
protected function processPackage(PHP_CodeSniffer_File $phpcsFile, $ptr, $tags)
{
if (!isset($tags['package']))
@@ -134,80 +136,87 @@ class phpbb_Sniffs_Commenting_FileCommentSniff implements PHP_CodeSniffer_Sniff
}
else if (preg_match('/^([\w]+)$/', $tags['package'][0]) === 0)
{
- $message = 'Invalid content found for @package tag.';
- $phpcsFile->addWarning($message, $tags['package'][1]);
+ $message = 'Invalid content found for @package tag.';
+ $phpcsFile->addWarning($message, $tags['package'][1]);
}
}
-
+
/**
- * Checks that the tags array contains a valid version tag
- *
- * @param PHP_CodeSniffer_File $phpcsFile The context source file instance.
- * @param integer The stack pointer for the first comment token.
- * @param array(string=>array) $tags The found file doc comment tags.
- *
- * @return null
- */
+ * Checks that the tags array contains a valid version tag
+ *
+ * @param PHP_CodeSniffer_File $phpcsFile The context source file instance.
+ * @param integer The stack pointer for the first comment token.
+ * @param array(string=>array) $tags The found file doc comment tags.
+ *
+ * @return null
+ */
protected function processVersion(PHP_CodeSniffer_File $phpcsFile, $ptr, $tags)
- {
- if (!isset($tags['version']))
- {
- $message = 'Missing require @version tag in file doc comment.';
- $phpcsFile->addError($message, $ptr);
- }
- else if (preg_match('/^\$Id:[^\$]+\$$/', $tags['version'][0]) === 0)
- {
- $message = 'Invalid content found for @version tag, use "$Id: $".';
- $phpcsFile->addError($message, $tags['version'][1]);
- }
- }
-
- /**
- * Checks that the tags array contains a valid copyright tag
- *
- * @param PHP_CodeSniffer_File $phpcsFile The context source file instance.
- * @param integer The stack pointer for the first comment token.
- * @param array(string=>array) $tags The found file doc comment tags.
- *
- * @return null
- */
- protected function processCopyright(PHP_CodeSniffer_File $phpcsFile, $ptr, $tags)
- {
- if (!isset($tags['copyright']))
- {
- $message = 'Missing require @copyright tag in file doc comment.';
- $phpcsFile->addError($message, $ptr);
- }
- else if (preg_match('/^\(c\) 2[0-9]{3} phpBB Group\s*$/', $tags['copyright'][0]) === 0)
- {
- $message = 'Invalid content found for @copyright tag, use "(c) <year> phpBB Group".';
- $phpcsFile->addError($message, $tags['copyright'][1]);
- }
- }
-
- /**
- * Checks that the tags array contains a valid license tag
- *
- * @param PHP_CodeSniffer_File $phpcsFile The context source file instance.
- * @param integer The stack pointer for the first comment token.
- * @param array(string=>array) $tags The found file doc comment tags.
- *
- * @return null
- */
- protected function processLicense(PHP_CodeSniffer_File $phpcsFile, $ptr, $tags)
- {
- $license = 'http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2';
-
- if (!isset($tags['license']))
- {
- $message = 'Missing require @license tag in file doc comment.';
- $phpcsFile->addError($message, $ptr);
- }
- else if (trim($tags['license'][0]) !== $license)
- {
- $message = 'Invalid content found for @license tag, use '
- . '"' . $license . '".';
- $phpcsFile->addError($message, $tags['license'][1]);
- }
- }
+ {
+ if (!isset($tags['version']))
+ {
+ $message = 'Missing require @version tag in file doc comment.';
+ $phpcsFile->addError($message, $ptr);
+ }
+ else if (preg_match('/^\$Id:[^\$]+\$$/', $tags['version'][0]) === 0)
+ {
+ $message = 'Invalid content found for @version tag, use "$Id: $".';
+ $phpcsFile->addError($message, $tags['version'][1]);
+ }
+ }
+
+ /**
+ * Checks that the tags array contains a valid copyright tag
+ *
+ * @param PHP_CodeSniffer_File $phpcsFile The context source file instance.
+ * @param integer The stack pointer for the first comment token.
+ * @param array(string=>array) $tags The found file doc comment tags.
+ *
+ * @return null
+ */
+ protected function processCopyright(PHP_CodeSniffer_File $phpcsFile, $ptr, $tags)
+ {
+ $copyright = '(c) phpBB Limited <https://www.phpbb.com>';
+
+ if (!isset($tags['copyright']))
+ {
+ $message = 'Missing require @copyright tag in file doc comment.';
+ $phpcsFile->addError($message, $ptr);
+ }
+ else if ($tags['copyright'][0][0] !== $copyright)
+ {
+ $message = 'Invalid content found for the first @copyright tag, use "' . $copyright . '".';
+ $phpcsFile->addError($message, $tags['copyright'][0][1]);
+ }
+ }
+
+ /**
+ * Checks that the tags array contains a valid license tag
+ *
+ * @param PHP_CodeSniffer_File $phpcsFile The context source file instance.
+ * @param integer The stack pointer for the first comment token.
+ * @param array(string=>array) $tags The found file doc comment tags.
+ *
+ * @return null
+ */
+ protected function processLicense(PHP_CodeSniffer_File $phpcsFile, $ptr, $tags)
+ {
+ $license = 'GNU General Public License, version 2 (GPL-2.0)';
+
+ if (!isset($tags['license']))
+ {
+ $message = 'Missing require @license tag in file doc comment.';
+ $phpcsFile->addError($message, $ptr);
+ }
+ else if (sizeof($tags['license']) !== 1)
+ {
+ $message = 'It must be only one @license tag in file doc comment.';
+ $phpcsFile->addError($message, $ptr);
+ }
+ else if (trim($tags['license'][0][0]) !== $license)
+ {
+ $message = 'Invalid content found for @license tag, use '
+ . '"' . $license . '".';
+ $phpcsFile->addError($message, $tags['license'][0][1]);
+ }
+ }
}
diff --git a/build/code_sniffer/phpbb/Tests/Commenting/FileCommentUnitTest.inc b/build/code_sniffer/phpbb/Tests/Commenting/FileCommentUnitTest.inc
deleted file mode 100644
index 0ace1c1bda..0000000000
--- a/build/code_sniffer/phpbb/Tests/Commenting/FileCommentUnitTest.inc
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-/**
-*
-* @package code_sniffer³
-* @version $Id: $
-* @copyright (c) 2008 phpBB Group
-* @license http://opensource.org/licenses/gpl-license.php BSD License
- *
-*/
-?>
-<?php
-/**
-* Broken but not first file doc comment.
-*
-* @version @package_version@
-* @license http://www.opensource.org/licenses/bsd-license.php BSD License
-* @copyright (c) 2007 phpBB Group
-*
-*/
diff --git a/build/code_sniffer/phpbb/Tests/Commenting/FileCommentUnitTest.php b/build/code_sniffer/phpbb/Tests/Commenting/FileCommentUnitTest.php
deleted file mode 100644
index 23aaa45bd3..0000000000
--- a/build/code_sniffer/phpbb/Tests/Commenting/FileCommentUnitTest.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-/**
-*
-* This file is part of the phpBB Forum Software package.
-*
-* @copyright (c) phpBB Limited <https://www.phpbb.com>
-* @license GNU General Public License, version 2 (GPL-2.0)
-*
-* For full copyright and license information, please see
-* the docs/CREDITS.txt file.
-*
-*/
-
-/**
-* Unit test class for the EmptyStatement sniff.
-*
-* @package code_sniffer
-* @author Manuel Pichler <mapi@phpundercontrol.org>
-*/
-class phpbb_Tests_Commenting_FileCommentUnitTest extends AbstractSniffUnitTest
-{
-
- /**
- * Returns the lines where errors should occur.
- *
- * The key of the array should represent the line number and the value
- * should represent the number of errors that should occur on that line.
- *
- * @return array(int => int)
- */
- public function getErrorList()
- {
- return array(
- 7 => 1 // BSD License error :)
- );
- }//end getErrorList()
-
-
- /**
- * Returns the lines where warnings should occur.
- *
- * The key of the array should represent the line number and the value
- * should represent the number of warnings that should occur on that line.
- *
- * @return array(int => int)
- */
- public function getWarningList()
- {
- return array(
- 4 => 1,
- 8 => 1
- );
- }//end getWarningList()
-}
diff --git a/build/code_sniffer/phpbb/build.xml b/build/code_sniffer/phpbb/build.xml
deleted file mode 100644
index b6d3bf6451..0000000000
--- a/build/code_sniffer/phpbb/build.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="code_sniffer" basedir="." default="install">
-
- <property name="working.dir" value="${basedir}" />
- <property name="target.dir" value="/usr/share/php/PHP/CodeSniffer/Standards" />
-
- <!--
- Install phpbb sniff
- -->
- <target name="install">
- <delete dir="${target.dir}/phpbb" />
- <mkdir dir="${target.dir}/phpbb"/>
-
- <copy todir="${target.dir}/phpbb">
- <fileset file="${working.dir}/phpbbCodingStandard.php" />
- </copy>
- <copy todir="${target.dir}/phpbb/Sniffs">
- <fileset dir="${working.dir}/Sniffs" />
- </copy>
-
- </target>
-
-</project>
diff --git a/build/code_sniffer/phpbb/phpbbCodingStandard.php b/build/code_sniffer/phpbb/phpbbCodingStandard.php
deleted file mode 100644
index b94186ab6c..0000000000
--- a/build/code_sniffer/phpbb/phpbbCodingStandard.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/**
-*
-* This file is part of the phpBB Forum Software package.
-*
-* @copyright (c) phpBB Limited <https://www.phpbb.com>
-* @license GNU General Public License, version 2 (GPL-2.0)
-*
-* For full copyright and license information, please see
-* the docs/CREDITS.txt file.
-*
-*/
-
-/**
- * @ignore
- */
-if (class_exists('PHP_CodeSniffer_Standards_CodingStandard', true) === false) {
- throw new PHP_CodeSniffer_Exception(
- 'Class PHP_CodeSniffer_Standards_CodingStandard not found'
- );
-}
-
-/**
- * Primary class for the phpbb coding standard.
- *
- * @package code_sniffer
- */
-class PHP_CodeSniffer_Standards_phpbb_phpbbCodingStandard extends PHP_CodeSniffer_Standards_CodingStandard
-{
- /**
- * Return a list of external sniffs to include with this standard.
- *
- * External locations can be single sniffs, a whole directory of sniffs, or
- * an entire coding standard. Locations start with the standard name. For
- * example:
- * PEAR => include all sniffs in this standard
- * PEAR/Sniffs/Files => include all sniffs in this dir
- * PEAR/Sniffs/Files/LineLengthSniff => include this single sniff
- *
- * @return array
- */
- public function getIncludedSniffs()
- {
- return array();
- }
-}
diff --git a/build/code_sniffer/ruleset-php-extensions.xml b/build/code_sniffer/ruleset-php-extensions.xml
new file mode 100644
index 0000000000..2d388103c3
--- /dev/null
+++ b/build/code_sniffer/ruleset-php-extensions.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<ruleset name="phpBB PHP Strict Standard Extensions">
+
+ <description>phpBB coding standard for PHP files of phpBB extensions</description>
+
+ <rule ref="./ruleset-php-strict.xml" />
+
+</ruleset>
diff --git a/build/code_sniffer/ruleset-php-legacy-core.xml b/build/code_sniffer/ruleset-php-legacy-core.xml
new file mode 100644
index 0000000000..55f2461a04
--- /dev/null
+++ b/build/code_sniffer/ruleset-php-legacy-core.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<ruleset name="phpBB PHP Legacy Standard Core">
+
+ <description>phpBB legacy coding standard for PHP files of phpBB core</description>
+
+ <rule ref="./ruleset-php-legacy.xml" />
+
+ <!-- Each file MUST start with a valid header as defined by the Coding Guidelines -->
+ <rule ref="./phpbb/Sniffs/Commenting/FileCommentSniff.php" />
+
+</ruleset>
diff --git a/build/code_sniffer/ruleset-php-strict-core.xml b/build/code_sniffer/ruleset-php-strict-core.xml
new file mode 100644
index 0000000000..5ca4d0cf1e
--- /dev/null
+++ b/build/code_sniffer/ruleset-php-strict-core.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<ruleset name="phpBB PHP Strict Standard Core">
+
+ <description>phpBB coding standard for PHP files of phpBB core</description>
+
+ <rule ref="./ruleset-php-legacy-core.xml" />
+ <rule ref="./ruleset-php-strict.xml" />
+
+</ruleset>
diff --git a/phpBB/config/profilefields.yml b/phpBB/config/profilefields.yml
index 00f025e141..ce2a84b12b 100644
--- a/phpBB/config/profilefields.yml
+++ b/phpBB/config/profilefields.yml
@@ -55,6 +55,15 @@ services:
tags:
- { name: profilefield.type }
+ profilefields.type.googleplus:
+ class: phpbb\profilefields\type\type_googleplus
+ arguments:
+ - @request
+ - @template
+ - @user
+ tags:
+ - { name: profilefield.type }
+
profilefields.type.int:
class: phpbb\profilefields\type\type_int
arguments:
diff --git a/phpBB/includes/acp/acp_contact.php b/phpBB/includes/acp/acp_contact.php
index 13d38d9f29..4e46df21e0 100644
--- a/phpBB/includes/acp/acp_contact.php
+++ b/phpBB/includes/acp/acp_contact.php
@@ -1,9 +1,14 @@
<?php
/**
*
-* @package acp
-* @copyright (c) 2014 phpBB Group
-* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
+*
*/
/**
diff --git a/phpBB/includes/acp/info/acp_contact.php b/phpBB/includes/acp/info/acp_contact.php
index b8326f34ea..548eb52816 100644
--- a/phpBB/includes/acp/info/acp_contact.php
+++ b/phpBB/includes/acp/info/acp_contact.php
@@ -1,9 +1,13 @@
<?php
/**
*
-* @package acp
-* @copyright (c) 2014 phpBB Group
-* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
*
*/
diff --git a/phpBB/install/phpinfo.php b/phpBB/install/phpinfo.php
index 83f154933a..1512b00563 100644
--- a/phpBB/install/phpinfo.php
+++ b/phpBB/install/phpinfo.php
@@ -1,3 +1,14 @@
<?php
+/**
+*
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
+*
+*/
phpinfo();
diff --git a/phpBB/install/schemas/schema.json b/phpBB/install/schemas/schema.json
index c6974aab21..a3ffd923a1 100644
--- a/phpBB/install/schemas/schema.json
+++ b/phpBB/install/schemas/schema.json
@@ -2104,6 +2104,10 @@
"VCHAR",
""
],
+ "pf_phpbb_googleplus": [
+ "VCHAR",
+ ""
+ ],
"pf_phpbb_interests": [
"MTEXT",
""
diff --git a/phpBB/install/schemas/schema_data.sql b/phpBB/install/schemas/schema_data.sql
index 1087ba1851..9b9b7f77f1 100644
--- a/phpBB/install/schemas/schema_data.sql
+++ b/phpBB/install/schemas/schema_data.sql
@@ -810,6 +810,7 @@ INSERT INTO phpbb_profile_fields (field_name, field_type, field_ident, field_len
INSERT INTO phpbb_profile_fields (field_name, field_type, field_ident, field_length, field_minlen, field_maxlen, field_novalue, field_default_value, field_validation, field_required, field_show_novalue, field_show_on_reg, field_show_on_pm, field_show_on_vt, field_show_on_ml, field_show_profile, field_hide, field_no_view, field_active, field_order, field_is_contact, field_contact_desc, field_contact_url) VALUES ('phpbb_twitter', 'profilefields.type.string', 'phpbb_twitter', '20', '1', '15', '', '', '[\w_]+', 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 10, 1, 'VIEW_TWITTER_PROFILE', 'http://twitter.com/%s');
INSERT INTO phpbb_profile_fields (field_name, field_type, field_ident, field_length, field_minlen, field_maxlen, field_novalue, field_default_value, field_validation, field_required, field_show_novalue, field_show_on_reg, field_show_on_pm, field_show_on_vt, field_show_on_ml, field_show_profile, field_hide, field_no_view, field_active, field_order, field_is_contact, field_contact_desc, field_contact_url) VALUES ('phpbb_skype', 'profilefields.type.string', 'phpbb_skype', '20', '6', '32', '', '', '[a-zA-Z][\w\.,\-_]+', 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 11, 1, 'VIEW_SKYPE_PROFILE', 'skype:%s?userinfo');
INSERT INTO phpbb_profile_fields (field_name, field_type, field_ident, field_length, field_minlen, field_maxlen, field_novalue, field_default_value, field_validation, field_required, field_show_novalue, field_show_on_reg, field_show_on_pm, field_show_on_vt, field_show_on_ml, field_show_profile, field_hide, field_no_view, field_active, field_order, field_is_contact, field_contact_desc, field_contact_url) VALUES ('phpbb_youtube', 'profilefields.type.string', 'phpbb_youtube', '20', '3', '60', '', '', '[a-zA-Z][\w\.,\-_]+', 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 12, 1, 'VIEW_YOUTUBE_CHANNEL', 'http://youtube.com/user/%s');
+INSERT INTO phpbb_profile_fields (field_name, field_type, field_ident, field_length, field_minlen, field_maxlen, field_novalue, field_default_value, field_validation, field_required, field_show_novalue, field_show_on_reg, field_show_on_pm, field_show_on_vt, field_show_on_ml, field_show_profile, field_hide, field_no_view, field_active, field_order, field_is_contact, field_contact_desc, field_contact_url) VALUES ('phpbb_googleplus', 'profilefields.type.googleplus', 'phpbb_googleplus', '20', '3', '255', '', '', '[\w]+', 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 13, 1, 'VIEW_GOOGLEPLUS_PROFILE', 'http://plus.google.com/%s');
# User Notification Options (for first user)
INSERT INTO phpbb_user_notifications (item_type, item_id, user_id, method) VALUES('post', 0, 2, '');
diff --git a/phpBB/language/en/acp/profile.php b/phpBB/language/en/acp/profile.php
index fe3ad814cb..67813bcba4 100644
--- a/phpBB/language/en/acp/profile.php
+++ b/phpBB/language/en/acp/profile.php
@@ -93,6 +93,7 @@ $lang = array_merge($lang, array(
'FIELD_DESCRIPTION' => 'Field description',
'FIELD_DESCRIPTION_EXPLAIN' => 'The explanation for this field presented to the user.',
'FIELD_DROPDOWN' => 'Dropdown box',
+ 'FIELD_GOOGLEPLUS' => 'Google+',
'FIELD_IDENT' => 'Field identification',
'FIELD_IDENT_ALREADY_EXIST' => 'The chosen field identification already exist. Please choose another name.',
'FIELD_IDENT_EXPLAIN' => 'The field identification is a name to identify the profile field within the database and the templates.',
diff --git a/phpBB/language/en/common.php b/phpBB/language/en/common.php
index 46f19359cd..757b9d7251 100644
--- a/phpBB/language/en/common.php
+++ b/phpBB/language/en/common.php
@@ -284,6 +284,7 @@ $lang = array_merge($lang, array(
'GB' => 'GB',
'GIB' => 'GiB',
'GO' => 'Go',
+ 'GOOGLEPLUS' => 'Google+',
'GOTO_FIRST_POST' => 'Go to first post',
'GOTO_LAST_POST' => 'Go to last post',
'GOTO_PAGE' => 'Go to page',
diff --git a/phpBB/language/en/memberlist.php b/phpBB/language/en/memberlist.php
index b5fd21e5e3..e02f9ff525 100644
--- a/phpBB/language/en/memberlist.php
+++ b/phpBB/language/en/memberlist.php
@@ -148,4 +148,5 @@ $lang = array_merge($lang, array(
'VIEW_SKYPE_PROFILE' => 'View Skype Profile',
'VIEW_TWITTER_PROFILE' => 'View Twitter Profile',
'VIEW_YOUTUBE_CHANNEL' => 'View YouTube Channel',
+ 'VIEW_GOOGLEPLUS_PROFILE' => 'View Google+ Profile',
));
diff --git a/phpBB/language/en/plupload.php b/phpBB/language/en/plupload.php
index c4a8d770a0..15c3955a1a 100644
--- a/phpBB/language/en/plupload.php
+++ b/phpBB/language/en/plupload.php
@@ -3,8 +3,8 @@
*
* This file is part of the phpBB Forum Software package.
*
-* @copyright (c) 2010-2013 Moxiecode Systems AB
* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @copyright (c) 2010-2013 Moxiecode Systems AB
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
diff --git a/phpBB/language/en/ucp.php b/phpBB/language/en/ucp.php
index c3ace160e9..d4e1915076 100644
--- a/phpBB/language/en/ucp.php
+++ b/phpBB/language/en/ucp.php
@@ -209,7 +209,9 @@ $lang = array_merge($lang, array(
'FIELD_TOO_LARGE' => 'The value of “%2$s” is too large, a maximum value of %1$d is allowed.',
'FIELD_INVALID_CHARS_INVALID' => 'The field “%s” has invalid characters.',
'FIELD_INVALID_CHARS_NUMBERS_ONLY' => 'The field “%s” has invalid characters, only numbers are allowed.',
+ 'FIELD_INVALID_CHARS_ALPHA_DOTS' => 'The field “%s” has invalid characters, only alphanumeric or . characters are allowed.',
'FIELD_INVALID_CHARS_ALPHA_ONLY' => 'The field “%s” has invalid characters, only alphanumeric characters are allowed.',
+ 'FIELD_INVALID_CHARS_ALPHA_PUNCTUATION' => 'The field “%s” has invalid characters, only alphanumeric or _,-. characters are allowed and the first character must be alphabetic.',
'FIELD_INVALID_CHARS_ALPHA_SPACERS' => 'The field “%s” has invalid characters, only alphanumeric, space or -+_[] characters are allowed.',
'FIELD_INVALID_CHARS_ALPHA_UNDERSCORE' => 'The field “%s” has invalid characters, only alphanumeric or _ characters are allowed.',
'FIELD_INVALID_DATE' => 'The field “%s” has an invalid date.',
diff --git a/phpBB/phpbb/console/command/cron/run.php b/phpBB/phpbb/console/command/cron/run.php
index 32774bebe4..0b365ece67 100644
--- a/phpBB/phpbb/console/command/cron/run.php
+++ b/phpBB/phpbb/console/command/cron/run.php
@@ -3,7 +3,7 @@
*
* This file is part of the phpBB Forum Software package.
*
-* @copyright (c) phpBB Limited
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
diff --git a/phpBB/phpbb/db/migration/data/v310/contact_admin_acp_module.php b/phpBB/phpbb/db/migration/data/v310/contact_admin_acp_module.php
index bd682e2f7c..20bd547ac3 100644
--- a/phpBB/phpbb/db/migration/data/v310/contact_admin_acp_module.php
+++ b/phpBB/phpbb/db/migration/data/v310/contact_admin_acp_module.php
@@ -1,9 +1,13 @@
<?php
/**
*
-* @package migration
-* @copyright (c) 2014 phpBB Group
-* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
*
*/
diff --git a/phpBB/phpbb/db/migration/data/v310/contact_admin_form.php b/phpBB/phpbb/db/migration/data/v310/contact_admin_form.php
index e255efb99d..c2dd09ddf6 100644
--- a/phpBB/phpbb/db/migration/data/v310/contact_admin_form.php
+++ b/phpBB/phpbb/db/migration/data/v310/contact_admin_form.php
@@ -1,9 +1,13 @@
<?php
/**
*
-* @package migration
-* @copyright (c) 2014 phpBB Group
-* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
*
*/
diff --git a/phpBB/phpbb/db/migration/data/v310/profilefield_googleplus.php b/phpBB/phpbb/db/migration/data/v310/profilefield_googleplus.php
new file mode 100644
index 0000000000..9bef0a4c0b
--- /dev/null
+++ b/phpBB/phpbb/db/migration/data/v310/profilefield_googleplus.php
@@ -0,0 +1,60 @@
+<?php
+/**
+*
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
+*
+*/
+
+namespace phpbb\db\migration\data\v310;
+
+class profilefield_googleplus extends \phpbb\db\migration\profilefield_base_migration
+{
+ static public function depends_on()
+ {
+ return array(
+ '\phpbb\db\migration\data\v310\profilefield_types',
+ '\phpbb\db\migration\data\v310\profilefield_show_novalue',
+ );
+ }
+
+ public function update_data()
+ {
+ return array(
+ array('custom', array(array($this, 'create_custom_field'))),
+ );
+ }
+
+ protected $profilefield_name = 'phpbb_googleplus';
+
+ protected $profilefield_database_type = array('VCHAR', '');
+
+ protected $profilefield_data = array(
+ 'field_name' => 'phpbb_googleplus',
+ 'field_type' => 'profilefields.type.googleplus',
+ 'field_ident' => 'phpbb_googleplus',
+ 'field_length' => '20',
+ 'field_minlen' => '3',
+ 'field_maxlen' => '255',
+ 'field_novalue' => '',
+ 'field_default_value' => '',
+ 'field_validation' => '[\w]+',
+ 'field_required' => 0,
+ 'field_show_novalue' => 0,
+ 'field_show_on_reg' => 0,
+ 'field_show_on_pm' => 1,
+ 'field_show_on_vt' => 1,
+ 'field_show_profile' => 1,
+ 'field_hide' => 0,
+ 'field_no_view' => 0,
+ 'field_active' => 1,
+ 'field_is_contact' => 1,
+ 'field_contact_desc' => 'VIEW_GOOGLEPLUS_PROFILE',
+ 'field_contact_url' => 'http://plus.google.com/%s',
+ );
+}
diff --git a/phpBB/phpbb/message/admin_form.php b/phpBB/phpbb/message/admin_form.php
index b71b3fc535..93db59880c 100644
--- a/phpBB/phpbb/message/admin_form.php
+++ b/phpBB/phpbb/message/admin_form.php
@@ -1,9 +1,13 @@
<?php
/**
*
-* @package message
-* @copyright (c) 2014 phpBB Group
-* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
*
*/
@@ -12,8 +16,6 @@ namespace phpbb\message;
/**
* Class admin_form
* Displays a message to the user and allows him to send an email
-*
-* @package phpbb\message
*/
class admin_form extends form
{
diff --git a/phpBB/phpbb/message/form.php b/phpBB/phpbb/message/form.php
index d7a42c4080..076b41dc07 100644
--- a/phpBB/phpbb/message/form.php
+++ b/phpBB/phpbb/message/form.php
@@ -1,9 +1,13 @@
<?php
/**
*
-* @package message
-* @copyright (c) 2014 phpBB Group
-* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
*
*/
@@ -11,8 +15,6 @@ namespace phpbb\message;
/**
* Abstract class form
-*
-* @package phpbb\message
*/
abstract class form
{
diff --git a/phpBB/phpbb/message/message.php b/phpBB/phpbb/message/message.php
index 7ba2b2f32d..5fd24b542e 100644
--- a/phpBB/phpbb/message/message.php
+++ b/phpBB/phpbb/message/message.php
@@ -1,9 +1,13 @@
<?php
/**
*
-* @package message
-* @copyright (c) 2014 phpBB Group
-* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
*
*/
@@ -12,8 +16,6 @@ namespace phpbb\message;
/**
* Class message
* Holds all information for an email and sends it in the end
-*
-* @package phpbb\message
*/
class message
{
diff --git a/phpBB/phpbb/message/topic_form.php b/phpBB/phpbb/message/topic_form.php
index 3a35c35d21..1e0f2a1945 100644
--- a/phpBB/phpbb/message/topic_form.php
+++ b/phpBB/phpbb/message/topic_form.php
@@ -1,9 +1,13 @@
<?php
/**
*
-* @package message
-* @copyright (c) 2014 phpBB Group
-* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
*
*/
@@ -12,8 +16,6 @@ namespace phpbb\message;
/**
* Class topic_form
* Form used to send topics as notification emails
-*
-* @package phpbb\message
*/
class topic_form extends form
{
diff --git a/phpBB/phpbb/message/user_form.php b/phpBB/phpbb/message/user_form.php
index 7aa4b94def..007e575407 100644
--- a/phpBB/phpbb/message/user_form.php
+++ b/phpBB/phpbb/message/user_form.php
@@ -1,9 +1,13 @@
<?php
/**
*
-* @package message
-* @copyright (c) 2014 phpBB Group
-* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
*
*/
@@ -12,8 +16,6 @@ namespace phpbb\message;
/**
* Class user_form
* Allows users to send emails to other users
-*
-* @package phpbb\message
*/
class user_form extends form
{
diff --git a/phpBB/phpbb/profilefields/type/type_googleplus.php b/phpBB/phpbb/profilefields/type/type_googleplus.php
new file mode 100644
index 0000000000..df1bcc7f4b
--- /dev/null
+++ b/phpBB/phpbb/profilefields/type/type_googleplus.php
@@ -0,0 +1,58 @@
+<?php
+/**
+*
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
+*
+*/
+
+namespace phpbb\profilefields\type;
+
+class type_googleplus extends type_string
+{
+ /**
+ * {@inheritDoc}
+ */
+ public function get_service_name()
+ {
+ return 'profilefields.type.googleplus';
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public function get_default_option_values()
+ {
+ return array(
+ 'field_length' => 20,
+ 'field_minlen' => 3,
+ 'field_maxlen' => 255,
+ 'field_validation' => '[\w]+',
+ 'field_novalue' => '',
+ 'field_default_value' => '',
+ );
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public function get_profile_contact_value($field_value, $field_data)
+ {
+ if (!$field_value && !$field_data['field_show_novalue'])
+ {
+ return null;
+ }
+
+ if (!is_numeric($field_value))
+ {
+ $field_value = '+' . $field_value;
+ }
+
+ return $field_value;
+ }
+}
diff --git a/phpBB/styles/prosilver/template/overall_header.html b/phpBB/styles/prosilver/template/overall_header.html
index e5371e792e..df09fc6a30 100644
--- a/phpBB/styles/prosilver/template/overall_header.html
+++ b/phpBB/styles/prosilver/template/overall_header.html
@@ -63,7 +63,7 @@
<div class="inner">
<div id="site-description">
- <a href="<!-- IF U_SITE_HOME -->{U_SITE_HOME}<!-- ELSE -->{U_INDEX}<!-- ENDIF -->" title="<!-- IF U_SITE_HOME -->{L_SITE_HOME}<!-- ELSE -->{L_INDEX}<!-- ENDIF -->" id="logo">{SITE_LOGO_IMG}</a>
+ <a id="logo" class="logo" href="<!-- IF U_SITE_HOME -->{U_SITE_HOME}<!-- ELSE -->{U_INDEX}<!-- ENDIF -->" title="<!-- IF U_SITE_HOME -->{L_SITE_HOME}<!-- ELSE -->{L_INDEX}<!-- ENDIF -->">{SITE_LOGO_IMG}</a>
<h1>{SITENAME}</h1>
<p>{SITE_DESCRIPTION}</p>
<p class="skiplink"><a href="#start_here">{L_SKIP}</a></p>
diff --git a/phpBB/styles/prosilver/theme/bidi.css b/phpBB/styles/prosilver/theme/bidi.css
index f1a6f8ebe0..bf108fd9c8 100644
--- a/phpBB/styles/prosilver/theme/bidi.css
+++ b/phpBB/styles/prosilver/theme/bidi.css
@@ -20,7 +20,7 @@
/* Main blocks
---------------------------------------- */
-.rtl #logo {
+.rtl .logo {
float: right;
padding: 10px 10px 0 13px;
}
diff --git a/phpBB/styles/prosilver/theme/buttons.css b/phpBB/styles/prosilver/theme/buttons.css
index 19cb547bd4..c5e97d03c4 100644
--- a/phpBB/styles/prosilver/theme/buttons.css
+++ b/phpBB/styles/prosilver/theme/buttons.css
@@ -143,7 +143,7 @@ ul.linklist.bulletin li.small-icon:before {
.phpbb_website-icon { background-position: -40px 0; }
.phpbb_youtube-icon { background-position: -98px 0; }
.phpbb_facebook-icon { background-position: -119px 0; }
-.phpbb_google_plus-icon { background-position: -140px 0; }
+.phpbb_googleplus-icon { background-position: -140px 0; }
.phpbb_skype-icon { background-position: -161px 0; }
.phpbb_twitter-icon { background-position: -203px 0; }
.phpbb_yahoo-icon { background-position: -224px 0; }
diff --git a/phpBB/styles/prosilver/theme/common.css b/phpBB/styles/prosilver/theme/common.css
index aa28cd6962..7e0e2cdea4 100644
--- a/phpBB/styles/prosilver/theme/common.css
+++ b/phpBB/styles/prosilver/theme/common.css
@@ -196,13 +196,13 @@ ol ol ul, ol ul ul, ul ol ul, ul ul ul {
margin-top: 20px;
}
-#logo {
+.logo {
float: left;
width: auto;
padding: 10px 13px 0 10px;
}
-a#logo:hover {
+.logo:hover {
text-decoration: none;
}
diff --git a/phpBB/styles/prosilver/theme/responsive.css b/phpBB/styles/prosilver/theme/responsive.css
index da0499e60e..e27a2292b3 100644
--- a/phpBB/styles/prosilver/theme/responsive.css
+++ b/phpBB/styles/prosilver/theme/responsive.css
@@ -41,7 +41,7 @@ body {
text-align: center;
}
-#logo {
+.logo {
/* change display value to inline-block to show logo */
display: none;
float: none;
diff --git a/tests/functional/ucp_profile_test.php b/tests/functional/ucp_profile_test.php
index 2d68704162..e7abba9255 100644
--- a/tests/functional/ucp_profile_test.php
+++ b/tests/functional/ucp_profile_test.php
@@ -26,6 +26,7 @@ class phpbb_functional_ucp_profile_test extends phpbb_functional_test_case
$form = $crawler->selectButton('Submit')->form(array(
'pf_phpbb_facebook' => 'phpbb',
+ 'pf_phpbb_googleplus' => 'phpbb',
'pf_phpbb_location' => 'Bertie´s Empire',
'pf_phpbb_skype' => 'phpbb.skype.account',
'pf_phpbb_twitter' => 'phpbb_twitter',
@@ -39,6 +40,7 @@ class phpbb_functional_ucp_profile_test extends phpbb_functional_test_case
$form = $crawler->selectButton('Submit')->form();
$this->assertEquals('phpbb', $form->get('pf_phpbb_facebook')->getValue());
+ $this->assertEquals('phpbb', $form->get('pf_phpbb_googleplus')->getValue());
$this->assertEquals('Bertie´s Empire', $form->get('pf_phpbb_location')->getValue());
$this->assertEquals('phpbb.skype.account', $form->get('pf_phpbb_skype')->getValue());
$this->assertEquals('phpbb_twitter', $form->get('pf_phpbb_twitter')->getValue());
diff --git a/tests/profilefields/type_googleplus_test.php b/tests/profilefields/type_googleplus_test.php
new file mode 100644
index 0000000000..fdbdd86553
--- /dev/null
+++ b/tests/profilefields/type_googleplus_test.php
@@ -0,0 +1,62 @@
+<?php
+/**
+*
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
+*
+*/
+
+class phpbb_profilefield_type_googleplus_test extends phpbb_test_case
+{
+ public function get_profile_contact_value_data()
+ {
+ return array(
+ array(
+ '112010191010100',
+ array(),
+ '112010191010100',
+ 'Field should return a numerical Google+ ID as is',
+ ),
+ array(
+ 'TestUsername',
+ array(),
+ '+TestUsername',
+ 'Field should return a string Google+ ID with a + prefixed',
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider get_profile_contact_value_data
+ */
+ public function test_get_profile_contact_value($value, $field_options, $expected, $description)
+ {
+ $user = $this->getMock('\phpbb\user');
+ $request = $this->getMock('\phpbb\request\request');
+ $template = $this->getMock('\phpbb\template\template');
+
+ $field = new \phpbb\profilefields\type\type_googleplus(
+ $request,
+ $template,
+ $user
+ );
+
+ $default_field_options = array(
+ 'field_type' => '\phpbb\profilefields\type\type_googleplus',
+ 'field_name' => 'field',
+ 'field_id' => 1,
+ 'lang_id' => 1,
+ 'lang_name' => 'field',
+ 'field_required' => false,
+ 'field_validation' => '[\w]+',
+ );
+ $field_options = array_merge($default_field_options, $field_options);
+
+ $this->assertSame($expected, $field->get_profile_contact_value($value, $field_options), $description);
+ }
+}