diff options
-rw-r--r-- | .travis.yml | 1 | ||||
-rw-r--r-- | phpBB/adm/style/editor.js | 2 | ||||
-rw-r--r-- | phpBB/includes/db/db_tools.php | 2 | ||||
-rw-r--r-- | phpBB/includes/functions_profile_fields.php | 2 | ||||
-rw-r--r-- | phpBB/styles/prosilver/template/editor.js | 2 | ||||
-rw-r--r-- | phpBB/styles/subsilver2/template/editor.js | 2 | ||||
-rw-r--r-- | tests/profile/get_profile_value_test.php | 42 |
7 files changed, 48 insertions, 5 deletions
diff --git a/.travis.yml b/.travis.yml index c8b3de547e..44067cba3f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,7 @@ php: - 5.3 - 5.4 - 5.5 + - 5.6 env: - DB=mariadb diff --git a/phpBB/adm/style/editor.js b/phpBB/adm/style/editor.js index 217aa699e2..cad01aa9f2 100644 --- a/phpBB/adm/style/editor.js +++ b/phpBB/adm/style/editor.js @@ -292,7 +292,7 @@ function mozWrap(txtarea, open, close) */ function storeCaret(textEl) { - if (textEl.createTextRange) + if (textEl.createTextRange && document.selection) { textEl.caretPos = document.selection.createRange().duplicate(); } diff --git a/phpBB/includes/db/db_tools.php b/phpBB/includes/db/db_tools.php index f63ff18cbe..e394b1ffa0 100644 --- a/phpBB/includes/db/db_tools.php +++ b/phpBB/includes/db/db_tools.php @@ -477,7 +477,7 @@ class phpbb_db_tools // here lies an array, filled with information compiled on the column's data $prepared_column = $this->sql_prepare_column_data($table_name, $column_name, $column_data); - if (isset($prepared_column['auto_increment']) && strlen($column_name) > 26) // "${column_name}_gen" + if (isset($prepared_column['auto_increment']) && $prepared_column['auto_increment'] && strlen($column_name) > 26) // "${column_name}_gen" { trigger_error("Index name '${column_name}_gen' on table '$table_name' is too long. The maximum auto increment column length is 26 characters.", E_USER_ERROR); } diff --git a/phpBB/includes/functions_profile_fields.php b/phpBB/includes/functions_profile_fields.php index 8573533c2c..a2c0656ca4 100644 --- a/phpBB/includes/functions_profile_fields.php +++ b/phpBB/includes/functions_profile_fields.php @@ -532,7 +532,7 @@ class custom_profile switch ($this->profile_types[$field_type]) { case 'int': - if ($value === '' && !$ident_ary['data']['field_show_novalue']) + if (($value === '' || $value === null) && !$ident_ary['data']['field_show_novalue']) { return NULL; } diff --git a/phpBB/styles/prosilver/template/editor.js b/phpBB/styles/prosilver/template/editor.js index c16b0ef703..42be70be92 100644 --- a/phpBB/styles/prosilver/template/editor.js +++ b/phpBB/styles/prosilver/template/editor.js @@ -347,7 +347,7 @@ function mozWrap(txtarea, open, close) */ function storeCaret(textEl) { - if (textEl.createTextRange) + if (textEl.createTextRange && document.selection) { textEl.caretPos = document.selection.createRange().duplicate(); } diff --git a/phpBB/styles/subsilver2/template/editor.js b/phpBB/styles/subsilver2/template/editor.js index 151cf53ff1..103a271a71 100644 --- a/phpBB/styles/subsilver2/template/editor.js +++ b/phpBB/styles/subsilver2/template/editor.js @@ -351,7 +351,7 @@ function mozWrap(txtarea, open, close) */ function storeCaret(textEl) { - if (textEl.createTextRange) + if (textEl.createTextRange && document.selection) { textEl.caretPos = document.selection.createRange().duplicate(); } diff --git a/tests/profile/get_profile_value_test.php b/tests/profile/get_profile_value_test.php new file mode 100644 index 0000000000..a5f37a85ce --- /dev/null +++ b/tests/profile/get_profile_value_test.php @@ -0,0 +1,42 @@ +<?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_profile_fields.php'; + +class phpbb_profile_get_profile_value_test extends phpbb_test_case +{ + static public function get_profile_value_int_data() + { + return array( + array(FIELD_INT, '10', true, 10), + array(FIELD_INT, '0', true, 0), + array(FIELD_INT, '', true, 0), + array(FIELD_INT, null, true, 0), + array(FIELD_INT, '10', false, 10), + array(FIELD_INT, '0', false, 0), + array(FIELD_INT, '', false, null), + array(FIELD_INT, null, false, null), + ); + } + + /** + * @dataProvider get_profile_value_int_data + */ + public function test_get_profile_value_int($type, $value, $show_novalue, $expected) + { + $cp = new custom_profile; + $this->assertSame($expected, $cp->get_profile_value(array( + 'value' => $value, + 'data' => array( + 'field_type' => $type, + 'field_show_novalue' => $show_novalue, + ), + ))); + } +} |