| Línea 19... |
Línea 19... |
| 19 |
namespace core_reportbuilder\external\columns\sort;
|
19 |
namespace core_reportbuilder\external\columns\sort;
|
| Línea 20... |
Línea 20... |
| 20 |
|
20 |
|
| 21 |
use core_reportbuilder_generator;
|
21 |
use core_reportbuilder_generator;
|
| 22 |
use core_external\external_api;
|
22 |
use core_external\external_api;
|
| 23 |
use externallib_advanced_testcase;
|
23 |
use externallib_advanced_testcase;
|
| 24 |
use core_reportbuilder\report_access_exception;
|
24 |
use core_reportbuilder\exception\report_access_exception;
|
| 25 |
use core_reportbuilder\local\models\column;
|
25 |
use core_reportbuilder\local\models\column;
|
| Línea 26... |
Línea 26... |
| 26 |
use core_user\reportbuilder\datasource\users;
|
26 |
use core_user\reportbuilder\datasource\users;
|
| Línea 36... |
Línea 36... |
| 36 |
* @package core_reportbuilder
|
36 |
* @package core_reportbuilder
|
| 37 |
* @covers \core_reportbuilder\external\columns\sort\toggle
|
37 |
* @covers \core_reportbuilder\external\columns\sort\toggle
|
| 38 |
* @copyright 2021 Paul Holden <paulh@moodle.com>
|
38 |
* @copyright 2021 Paul Holden <paulh@moodle.com>
|
| 39 |
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
39 |
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
| 40 |
*/
|
40 |
*/
|
| 41 |
class toggle_test extends externallib_advanced_testcase {
|
41 |
final class toggle_test extends externallib_advanced_testcase {
|
| Línea 42... |
Línea 42... |
| 42 |
|
42 |
|
| 43 |
/**
|
43 |
/**
|
| 44 |
* Text execute method
|
44 |
* Text execute method
|
| 45 |
*/
|
45 |
*/
|
| 46 |
public function test_execute(): void {
|
46 |
public function test_execute(): void {
|
| 47 |
$this->resetAfterTest();
|
47 |
$this->resetAfterTest();
|
| Línea 48... |
Línea 48... |
| 48 |
$this->setAdminUser();
|
48 |
$this->setAdminUser();
|
| 49 |
|
49 |
|
| 50 |
/** @var core_reportbuilder_generator $generator */
|
50 |
/** @var core_reportbuilder_generator $generator */
|
| 51 |
$generator = $this->getDataGenerator()->get_plugin_generator('core_reportbuilder');
|
51 |
$generator = $this->getDataGenerator()->get_plugin_generator('core_reportbuilder');
|
| Línea 52... |
Línea 52... |
| 52 |
$report = $generator->create_report(['name' => 'My report', 'source' => users::class]);
|
52 |
$report = $generator->create_report(['name' => 'My report', 'source' => users::class, 'default' => false]);
|
| 53 |
$column = $generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'user:email']);
|
53 |
$column = $generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'user:email']);
|
| 54 |
|
54 |
|
| Línea 55... |
Línea 55... |
| 55 |
// Toggle sort descending.
|
55 |
// Toggle sort descending.
|
| 56 |
$result = toggle::execute($report->get('id'), $column->get('id'), true, SORT_DESC);
|
56 |
$result = toggle::execute($report->get('id'), $column->get('id'), true, SORT_DESC);
|
| 57 |
$result = external_api::clean_returnvalue(toggle::execute_returns(), $result);
|
- |
|
| 58 |
|
- |
|
| 59 |
$this->assertTrue($result['hassortablecolumns']);
|
- |
|
| 60 |
$this->assertCount(4, $result['sortablecolumns']);
|
57 |
$result = external_api::clean_returnvalue(toggle::execute_returns(), $result);
|
| 61 |
$columnid = $column->get('id');
|
58 |
|
| 62 |
$sortablecolumn = array_filter($result['sortablecolumns'], function(array $column) use($columnid) {
|
- |
|
| 63 |
return $column['id'] == $columnid;
|
59 |
$this->assertTrue($result['hassortablecolumns']);
|
| 64 |
});
|
60 |
$this->assertCount(1, $result['sortablecolumns']);
|
| 65 |
$sortablecolumn = reset($sortablecolumn);
|
61 |
|
| 66 |
$this->assertEquals($columnid, $sortablecolumn['id']);
|
62 |
$sortablecolumn = reset($result['sortablecolumns']);
|
| 67 |
$this->assertEquals('Email address', $sortablecolumn['title']);
|
63 |
$this->assertEquals('Email address', $sortablecolumn['title']);
|
| 68 |
$this->assertEquals(SORT_DESC, $sortablecolumn['sortdirection']);
|
- |
|
| 69 |
$this->assertEquals(1, $sortablecolumn['sortenabled']);
|
- |
|
| 70 |
$this->assertEquals(4, $sortablecolumn['sortorder']);
|
- |
|
| Línea 71... |
Línea 64... |
| 71 |
$this->assertEquals('t/downlong', $sortablecolumn['sorticon']['key']);
|
64 |
$this->assertEquals(SORT_DESC, $sortablecolumn['sortdirection']);
|
| 72 |
$this->assertEquals('moodle', $sortablecolumn['sorticon']['component']);
|
65 |
$this->assertEquals(1, $sortablecolumn['sortenabled']);
|
| 73 |
$str = get_string('columnsortdirectionasc', 'core_reportbuilder', 'Email address');
|
66 |
$this->assertEquals(1, $sortablecolumn['sortorder']);
|
| 74 |
$this->assertEquals($str, $sortablecolumn['sorticon']['title']);
|
67 |
$this->assertArrayHasKey('sorticon', $sortablecolumn);
|