Proyectos de Subversion Moodle

Rev

Rev 1 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 1 Rev 1441
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);