forked from moodle/moodle
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
MDL-66659 core: observe viewfullnames capability in flexible_table.
- Loading branch information
1 parent
a672f02
commit d99bbd8
Showing
2 changed files
with
64 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -37,7 +37,7 @@ | |
* @copyright 2013 Damyon Wiese <[email protected]> | ||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | ||
*/ | ||
class core_tablelib_testcase extends basic_testcase { | ||
class core_tablelib_testcase extends advanced_testcase { | ||
protected function generate_columns($cols) { | ||
$columns = array(); | ||
foreach (range(0, $cols - 1) as $j) { | ||
|
@@ -352,6 +352,67 @@ public function test_50_cols() { | |
); | ||
} | ||
|
||
/** | ||
* Data provider for test_fullname_column | ||
* | ||
* @return array | ||
*/ | ||
public function fullname_column_provider() { | ||
return [ | ||
['language'], | ||
['alternatename lastname'], | ||
['firstname lastnamephonetic'], | ||
]; | ||
} | ||
|
||
/** | ||
* Test fullname column observes configured alternate fullname format configuration | ||
* | ||
* @param string $format | ||
* @return void | ||
* | ||
* @dataProvider fullname_column_provider | ||
*/ | ||
public function test_fullname_column(string $format) { | ||
$this->resetAfterTest(); | ||
$this->setAdminUser(); | ||
|
||
set_config('alternativefullnameformat', $format); | ||
|
||
$user = $this->getDataGenerator()->create_user(); | ||
|
||
$table = $this->create_and_setup_table(['fullname'], [], true, false, [], []); | ||
$this->assertContains(fullname($user, true), $table->format_row($user)['fullname']); | ||
} | ||
|
||
/** | ||
* Test fullname column ignores fullname format configuration for a user with viewfullnames capability prohibited | ||
* | ||
* @param string $format | ||
* @return void | ||
* | ||
* @dataProvider fullname_column_provider | ||
*/ | ||
public function test_fullname_column_prohibit_viewfullnames(string $format) { | ||
global $DB, $CFG; | ||
|
||
$this->resetAfterTest(); | ||
|
||
set_config('alternativefullnameformat', $format); | ||
|
||
$currentuser = $this->getDataGenerator()->create_user(); | ||
$this->setUser($currentuser); | ||
|
||
// Prohibit the viewfullnames from the default user role. | ||
$userrole = $DB->get_record('role', ['id' => $CFG->defaultuserroleid]); | ||
role_change_permission($userrole->id, context_system::instance(), 'moodle/site:viewfullnames', CAP_PROHIBIT); | ||
|
||
$user = $this->getDataGenerator()->create_user(); | ||
|
||
$table = $this->create_and_setup_table(['fullname'], [], true, false, [], []); | ||
$this->assertContains(fullname($user, false), $table->format_row($user)['fullname']); | ||
} | ||
|
||
public function test_get_row_html() { | ||
$data = $this->generate_data(1, 5); | ||
$columns = $this->generate_columns(5); | ||
|