diff --git a/question/classes/bank/column_base.php b/question/classes/bank/column_base.php
index b300ec7df67..9994b9f1813 100644
--- a/question/classes/bank/column_base.php
+++ b/question/classes/bank/column_base.php
@@ -84,7 +84,7 @@ abstract class column_base {
$links = array();
foreach ($sortable as $subsort => $details) {
$links[] = $this->make_sort_link($name . '-' . $subsort,
- $details['title'], '', !empty($details['reverse']));
+ $details['title'], isset($details['tip']) ? $details['tip'] : '', !empty($details['reverse']));
}
echo '
' . implode(' / ', $links) . '
';
} else if ($sortable) {
diff --git a/question/tests/fixtures/testable_core_question_column.php b/question/tests/fixtures/testable_core_question_column.php
new file mode 100644
index 00000000000..d467124479d
--- /dev/null
+++ b/question/tests/fixtures/testable_core_question_column.php
@@ -0,0 +1,66 @@
+.
+
+/**
+ * Helper class to to test column_base class.
+ *
+ * @package core_question
+ * @copyright 2018 Huong Nguyen
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+defined('MOODLE_INTERNAL') || die();
+
+/**
+ * Helper class to to test column_base class.
+ *
+ * @package core_question
+ * @copyright 2018 Huong Nguyen
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+class testable_core_question_column extends \core_question\bank\column_base {
+
+ /** @var array sortable columns. */
+ private $sortable = [];
+
+ /**
+ * Output the column header cell.
+ */
+ public function is_sortable() {
+ return $this->sortable;
+ }
+
+ /**
+ * Set the sortable columns for testing.
+ *
+ * @param array $sortable
+ */
+ public function set_sortable(array $sortable) {
+ $this->sortable = $sortable;
+ }
+
+ protected function display_content($question, $rowclasses) {
+ echo 'Test Column';
+ }
+
+ public function get_name() {
+ return 'test_column';
+ }
+
+ protected function get_title() {
+ return 'Test Column';
+ }
+}
diff --git a/question/tests/question_bank_column_test.php b/question/tests/question_bank_column_test.php
new file mode 100644
index 00000000000..a263a6fd1fe
--- /dev/null
+++ b/question/tests/question_bank_column_test.php
@@ -0,0 +1,109 @@
+.
+
+/**
+ * This file contains tests for the question bank column class.
+ *
+ * @package core_question
+ * @copyright 2018 Huong Nguyen
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+defined('MOODLE_INTERNAL') || die();
+
+global $CFG;
+require_once($CFG->dirroot . '/question/editlib.php');
+require_once($CFG->dirroot . '/question/tests/fixtures/testable_core_question_column.php');
+
+/**
+ * Unit tests for the question bank column class.
+ *
+ * @package core_question
+ * @copyright 2018 Huong Nguyen
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+class question_bank_column_testcase extends advanced_testcase {
+
+ /**
+ * Test function display_header multiple sorts with no custom tooltips.
+ *
+ */
+ public function test_column_header_multi_sort_no_tooltips() {
+ $this->resetAfterTest();
+ $course = $this->getDataGenerator()->create_course();
+ $questionbank = new core_question\bank\view(
+ new question_edit_contexts(context_course::instance($course->id)),
+ new moodle_url('/'),
+ $course
+ );
+ $columnbase = new testable_core_question_column($questionbank);
+
+ $sortable = [
+ 'apple' => [
+ 'field' => 'apple',
+ 'title' => 'Apple'
+ ],
+ 'banana' => [
+ 'field' => 'banana',
+ 'title' => 'Banana'
+ ]
+ ];
+ $columnbase->set_sortable($sortable);
+
+ ob_start();
+ $columnbase->display_header();
+ $output = ob_get_clean();
+
+ $this->assertContains(' title="Sort by Apple ascending">Apple', $output);
+ $this->assertContains(' title="Sort by Banana ascending">Banana', $output);
+ }
+
+ /**
+ * Test function display_header multiple sorts with custom tooltips.
+ *
+ */
+ public function test_column_header_multi_sort_with_tooltips() {
+ $this->resetAfterTest();
+ $course = $this->getDataGenerator()->create_course();
+ $questionbank = new core_question\bank\view(
+ new question_edit_contexts(context_course::instance($course->id)),
+ new moodle_url('/'),
+ $course
+ );
+ $columnbase = new testable_core_question_column($questionbank);
+
+ $sortable = [
+ 'apple' => [
+ 'field' => 'apple',
+ 'title' => 'Apple',
+ 'tip' => 'Apple Tooltips'
+ ],
+ 'banana' => [
+ 'field' => 'banana',
+ 'title' => 'Banana',
+ 'tip' => 'Banana Tooltips'
+ ]
+ ];
+ $columnbase->set_sortable($sortable);
+
+ ob_start();
+ $columnbase->display_header();
+ $output = ob_get_clean();
+
+ $this->assertContains(' title="Sort by Apple Tooltips ascending">Apple', $output);
+ $this->assertContains(' title="Sort by Banana Tooltips ascending">Banana', $output);
+ }
+}