Proyectos de Subversion Moodle

Rev

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

Rev 1 Rev 11
Línea 96... Línea 96...
96
 
96
 
97
    /**
97
    /**
98
     * @covers ::is_enabled_for_site
98
     * @covers ::is_enabled_for_site
99
     * @covers ::is_enabled
99
     * @covers ::is_enabled
100
     */
100
     */
101
    public function test_is_enabled() {
101
    public function test_is_enabled(): void {
102
        global $CFG;
102
        global $CFG;
Línea 103... Línea 103...
103
        $this->mock_setup();
103
        $this->mock_setup();
104
 
104
 
Línea 134... Línea 134...
134
    }
134
    }
Línea 135... Línea 135...
135
 
135
 
136
    /**
136
    /**
137
     * @covers ::update_state
137
     * @covers ::update_state
138
     */
138
     */
139
    public function test_update_state() {
139
    public function test_update_state(): void {
Línea 140... Línea 140...
140
        $this->mock_setup();
140
        $this->mock_setup();
141
 
141
 
142
        $mockbuilder = $this->getMockBuilder('completion_info');
142
        $mockbuilder = $this->getMockBuilder('completion_info');
Línea 359... Línea 359...
359
     * @param int $completionusegrade
359
     * @param int $completionusegrade
360
     * @param string $unsetfield
360
     * @param string $unsetfield
361
     * @param int $expectedstate
361
     * @param int $expectedstate
362
     * @covers ::internal_get_state
362
     * @covers ::internal_get_state
363
     */
363
     */
364
    public function test_internal_get_state(int $completionview, int $completionusegrade, string $unsetfield, int $expectedstate) {
364
    public function test_internal_get_state(int $completionview, int $completionusegrade, string $unsetfield, int $expectedstate): void {
365
        $this->setup_data();
365
        $this->setup_data();
Línea 366... Línea 366...
366
 
366
 
367
        /** @var \mod_assign_generator $assigngenerator */
367
        /** @var \mod_assign_generator $assigngenerator */
368
        $assigngenerator = $this->getDataGenerator()->get_plugin_generator('mod_assign');
368
        $assigngenerator = $this->getDataGenerator()->get_plugin_generator('mod_assign');
Línea 444... Línea 444...
444
     * @param array $completioncriteria The completion criteria to use
444
     * @param array $completioncriteria The completion criteria to use
445
     * @param int|null $studentgrade Grade to assign to student
445
     * @param int|null $studentgrade Grade to assign to student
446
     * @param int $expectedstate Expected completion state
446
     * @param int $expectedstate Expected completion state
447
     * @covers ::internal_get_state
447
     * @covers ::internal_get_state
448
     */
448
     */
449
    public function test_internal_get_state_with_grade_criteria(array $completioncriteria, ?int $studentgrade, int $expectedstate) {
449
    public function test_internal_get_state_with_grade_criteria(array $completioncriteria, ?int $studentgrade, int $expectedstate): void {
450
        $this->setup_data();
450
        $this->setup_data();
Línea 451... Línea 451...
451
 
451
 
452
        /** @var \mod_assign_generator $assigngenerator */
452
        /** @var \mod_assign_generator $assigngenerator */
453
        $assigngenerator = $this->getDataGenerator()->get_plugin_generator('mod_assign');
453
        $assigngenerator = $this->getDataGenerator()->get_plugin_generator('mod_assign');
Línea 486... Línea 486...
486
    /**
486
    /**
487
     * Covers the case where internal_get_state() is being called for a user different from the logged in user.
487
     * Covers the case where internal_get_state() is being called for a user different from the logged in user.
488
     *
488
     *
489
     * @covers ::internal_get_state
489
     * @covers ::internal_get_state
490
     */
490
     */
491
    public function test_internal_get_state_with_different_user() {
491
    public function test_internal_get_state_with_different_user(): void {
492
        $this->setup_data();
492
        $this->setup_data();
Línea 493... Línea 493...
493
 
493
 
494
        /** @var \mod_assign_generator $assigngenerator */
494
        /** @var \mod_assign_generator $assigngenerator */
495
        $assigngenerator = $this->getDataGenerator()->get_plugin_generator('mod_assign');
495
        $assigngenerator = $this->getDataGenerator()->get_plugin_generator('mod_assign');
Línea 530... Línea 530...
530
    /**
530
    /**
531
     * Test for internal_get_state() for an activity that supports custom completion.
531
     * Test for internal_get_state() for an activity that supports custom completion.
532
     *
532
     *
533
     * @covers ::internal_get_state
533
     * @covers ::internal_get_state
534
     */
534
     */
535
    public function test_internal_get_state_with_custom_completion() {
535
    public function test_internal_get_state_with_custom_completion(): void {
536
        $this->setup_data();
536
        $this->setup_data();
Línea 537... Línea 537...
537
 
537
 
538
        $choicerecord = [
538
        $choicerecord = [
539
            'course' => $this->course,
539
            'course' => $this->course,
Línea 558... Línea 558...
558
    }
558
    }
Línea 559... Línea 559...
559
 
559
 
560
    /**
560
    /**
561
     * @covers ::set_module_viewed
561
     * @covers ::set_module_viewed
562
     */
562
     */
563
    public function test_set_module_viewed() {
563
    public function test_set_module_viewed(): void {
Línea 564... Línea 564...
564
        $this->mock_setup();
564
        $this->mock_setup();
565
 
565
 
566
        $mockbuilder = $this->getMockBuilder('completion_info');
566
        $mockbuilder = $this->getMockBuilder('completion_info');
Línea 616... Línea 616...
616
    }
616
    }
Línea 617... Línea 617...
617
 
617
 
618
    /**
618
    /**
619
     * @covers ::count_user_data
619
     * @covers ::count_user_data
620
     */
620
     */
621
    public function test_count_user_data() {
621
    public function test_count_user_data(): void {
622
        global $DB;
622
        global $DB;
Línea 623... Línea 623...
623
        $this->mock_setup();
623
        $this->mock_setup();
624
 
624
 
Línea 635... Línea 635...
635
    }
635
    }
Línea 636... Línea 636...
636
 
636
 
637
    /**
637
    /**
638
     * @covers ::delete_all_state
638
     * @covers ::delete_all_state
639
     */
639
     */
640
    public function test_delete_all_state() {
640
    public function test_delete_all_state(): void {
641
        global $DB;
641
        global $DB;
Línea 642... Línea 642...
642
        $this->mock_setup();
642
        $this->mock_setup();
643
 
643
 
Línea 655... Línea 655...
655
    }
655
    }
Línea 656... Línea 656...
656
 
656
 
657
    /**
657
    /**
658
     * @covers ::reset_all_state
658
     * @covers ::reset_all_state
659
     */
659
     */
660
    public function test_reset_all_state() {
660
    public function test_reset_all_state(): void {
661
        global $DB;
661
        global $DB;
Línea 662... Línea 662...
662
        $this->mock_setup();
662
        $this->mock_setup();
663
 
663
 
Línea 732... Línea 732...
732
     * @param bool $sameuser Whether the user calling get_data() is the user itself.
732
     * @param bool $sameuser Whether the user calling get_data() is the user itself.
733
     * @param bool $hasrecord Whether to create a course_modules_completion record.
733
     * @param bool $hasrecord Whether to create a course_modules_completion record.
734
     * @param int $completion The completion state expected.
734
     * @param int $completion The completion state expected.
735
     * @covers ::get_data
735
     * @covers ::get_data
736
     */
736
     */
737
    public function test_get_data(bool $wholecourse, bool $sameuser, bool $hasrecord, int $completion) {
737
    public function test_get_data(bool $wholecourse, bool $sameuser, bool $hasrecord, int $completion): void {
738
        global $DB;
738
        global $DB;
Línea 739... Línea 739...
739
 
739
 
740
        $this->setup_data();
740
        $this->setup_data();
Línea 873... Línea 873...
873
    /**
873
    /**
874
     * Tests for get_completion_data().
874
     * Tests for get_completion_data().
875
     *
875
     *
876
     * @covers ::get_completion_data
876
     * @covers ::get_completion_data
877
     */
877
     */
878
    public function test_get_completion_data() {
878
    public function test_get_completion_data(): void {
-
 
879
        $this->setAdminUser();
879
        $this->setup_data();
880
        $this->setup_data();
880
        $choicegenerator = $this->getDataGenerator()->get_plugin_generator('mod_choice');
881
        $choicegenerator = $this->getDataGenerator()->get_plugin_generator('mod_choice');
881
        $choice = $choicegenerator->create_instance([
882
        $choice = $choicegenerator->create_instance([
882
            'course' => $this->course->id,
883
            'course' => $this->course->id,
883
            'completion' => COMPLETION_TRACKING_AUTOMATIC,
884
            'completion' => COMPLETION_TRACKING_AUTOMATIC,
Línea 903... Línea 904...
903
        $this->assertTrue(array_key_exists('viewed', $completiondatabeforeview));
904
        $this->assertTrue(array_key_exists('viewed', $completiondatabeforeview));
904
        $this->assertTrue(array_key_exists('coursemoduleid', $completiondatabeforeview));
905
        $this->assertTrue(array_key_exists('coursemoduleid', $completiondatabeforeview));
905
        $this->assertEquals(0, $completiondatabeforeview['viewed']);
906
        $this->assertEquals(0, $completiondatabeforeview['viewed']);
906
        $this->assertEquals($cm->id, $completiondatabeforeview['coursemoduleid']);
907
        $this->assertEquals($cm->id, $completiondatabeforeview['coursemoduleid']);
Línea -... Línea 908...
-
 
908
 
-
 
909
        // Mark as completed before viewing it.
-
 
910
        $completioninfo->update_state($cm, COMPLETION_COMPLETE, $this->user->id, true);
-
 
911
        $completiondatabeforeview = $completioninfo->get_completion_data($cm->id, $this->user->id, $defaultdata);
-
 
912
        $this->assertEquals(0, $completiondatabeforeview['viewed']);
907
 
913
 
908
        // Set viewed.
914
        // Set viewed.
Línea 909... Línea 915...
909
        $completioninfo->set_module_viewed($cm, $this->user->id);
915
        $completioninfo->set_module_viewed($cm, $this->user->id);
910
 
916
 
Línea 926... Línea 932...
926
    /**
932
    /**
927
     * Tests for completion_info::get_other_cm_completion_data().
933
     * Tests for completion_info::get_other_cm_completion_data().
928
     *
934
     *
929
     * @covers ::get_other_cm_completion_data
935
     * @covers ::get_other_cm_completion_data
930
     */
936
     */
931
    public function test_get_other_cm_completion_data() {
937
    public function test_get_other_cm_completion_data(): void {
932
        global $DB;
938
        global $DB;
Línea 933... Línea 939...
933
 
939
 
934
        $this->setup_data();
940
        $this->setup_data();
Línea 1000... Línea 1006...
1000
    }
1006
    }
Línea 1001... Línea 1007...
1001
 
1007
 
1002
    /**
1008
    /**
1003
     * @covers ::internal_set_data
1009
     * @covers ::internal_set_data
1004
     */
1010
     */
1005
    public function test_internal_set_data() {
1011
    public function test_internal_set_data(): void {
1006
        global $DB;
1012
        global $DB;
Línea 1007... Línea 1013...
1007
        $this->setup_data();
1013
        $this->setup_data();
1008
 
1014
 
Línea 1110... Línea 1116...
1110
    }
1116
    }
Línea 1111... Línea 1117...
1111
 
1117
 
1112
    /**
1118
    /**
1113
     * @covers ::get_progress_all
1119
     * @covers ::get_progress_all
1114
     */
1120
     */
1115
    public function test_get_progress_all_few() {
1121
    public function test_get_progress_all_few(): void {
1116
        global $DB;
1122
        global $DB;
Línea 1117... Línea 1123...
1117
        $this->mock_setup();
1123
        $this->mock_setup();
1118
 
1124
 
Línea 1147... Línea 1153...
1147
    }
1153
    }
Línea 1148... Línea 1154...
1148
 
1154
 
1149
    /**
1155
    /**
1150
     * @covers ::get_progress_all
1156
     * @covers ::get_progress_all
1151
     */
1157
     */
1152
    public function test_get_progress_all_lots() {
1158
    public function test_get_progress_all_lots(): void {
1153
        global $DB;
1159
        global $DB;
Línea 1154... Línea 1160...
1154
        $this->mock_setup();
1160
        $this->mock_setup();
1155
 
1161
 
Línea 1205... Línea 1211...
1205
    }
1211
    }
Línea 1206... Línea 1212...
1206
 
1212
 
1207
    /**
1213
    /**
1208
     * @covers ::inform_grade_changed
1214
     * @covers ::inform_grade_changed
1209
     */
1215
     */
1210
    public function test_inform_grade_changed() {
1216
    public function test_inform_grade_changed(): void {
Línea 1211... Línea 1217...
1211
        $this->mock_setup();
1217
        $this->mock_setup();
1212
 
1218
 
1213
        $mockbuilder = $this->getMockBuilder('completion_info');
1219
        $mockbuilder = $this->getMockBuilder('completion_info');
Línea 1276... Línea 1282...
1276
    }
1282
    }
Línea 1277... Línea 1283...
1277
 
1283
 
1278
    /**
1284
    /**
1279
     * @covers ::internal_get_grade_state
1285
     * @covers ::internal_get_grade_state
1280
     */
1286
     */
1281
    public function test_internal_get_grade_state() {
1287
    public function test_internal_get_grade_state(): void {
Línea 1282... Línea 1288...
1282
        $this->mock_setup();
1288
        $this->mock_setup();
1283
 
1289
 
Línea 1345... Línea 1351...
1345
    }
1351
    }
Línea 1346... Línea 1352...
1346
 
1352
 
1347
    /**
1353
    /**
1348
     * @test ::get_activities
1354
     * @test ::get_activities
1349
     */
1355
     */
1350
    public function test_get_activities() {
1356
    public function test_get_activities(): void {
1351
        global $CFG;
1357
        global $CFG;
Línea 1352... Línea 1358...
1352
        $this->resetAfterTest();
1358
        $this->resetAfterTest();
1353
 
1359
 
Línea 1389... Línea 1395...
1389
    }
1395
    }
Línea 1390... Línea 1396...
1390
 
1396
 
1391
    /**
1397
    /**
1392
     * @test ::has_activities
1398
     * @test ::has_activities
1393
     */
1399
     */
1394
    public function test_has_activities() {
1400
    public function test_has_activities(): void {
1395
        global $CFG;
1401
        global $CFG;
Línea 1396... Línea 1402...
1396
        $this->resetAfterTest();
1402
        $this->resetAfterTest();
1397
 
1403
 
Línea 1417... Línea 1423...
1417
     * Test that data is cleaned up when we delete courses that are set as completion criteria for other courses
1423
     * Test that data is cleaned up when we delete courses that are set as completion criteria for other courses
1418
     *
1424
     *
1419
     * @covers ::delete_course_completion_data
1425
     * @covers ::delete_course_completion_data
1420
     * @covers ::delete_all_completion_data
1426
     * @covers ::delete_all_completion_data
1421
     */
1427
     */
1422
    public function test_course_delete_prerequisite() {
1428
    public function test_course_delete_prerequisite(): void {
1423
        global $DB;
1429
        global $DB;
Línea 1424... Línea 1430...
1424
 
1430
 
Línea 1425... Línea 1431...
1425
        $this->setup_data();
1431
        $this->setup_data();
Línea 1455... Línea 1461...
1455
    /**
1461
    /**
1456
     * Test course module completion update event.
1462
     * Test course module completion update event.
1457
     *
1463
     *
1458
     * @covers \core\event\course_module_completion_updated
1464
     * @covers \core\event\course_module_completion_updated
1459
     */
1465
     */
1460
    public function test_course_module_completion_updated_event() {
1466
    public function test_course_module_completion_updated_event(): void {
1461
        global $USER, $CFG;
1467
        global $USER, $CFG;
Línea 1462... Línea 1468...
1462
 
1468
 
Línea 1463... Línea 1469...
1463
        $this->setup_data();
1469
        $this->setup_data();
Línea 1493... Línea 1499...
1493
    /**
1499
    /**
1494
     * Test course completed event.
1500
     * Test course completed event.
1495
     *
1501
     *
1496
     * @covers \core\event\course_completed
1502
     * @covers \core\event\course_completed
1497
     */
1503
     */
1498
    public function test_course_completed_event() {
1504
    public function test_course_completed_event(): void {
1499
        global $USER;
1505
        global $USER;
Línea 1500... Línea 1506...
1500
 
1506
 
1501
        $this->setup_data();
1507
        $this->setup_data();
Línea 1522... Línea 1528...
1522
    /**
1528
    /**
1523
     * Test course completed message.
1529
     * Test course completed message.
1524
     *
1530
     *
1525
     * @covers \core\event\course_completed
1531
     * @covers \core\event\course_completed
1526
     */
1532
     */
1527
    public function test_course_completed_message() {
1533
    public function test_course_completed_message(): void {
1528
        $this->setup_data();
1534
        $this->setup_data();
1529
        $this->setAdminUser();
1535
        $this->setAdminUser();
Línea 1530... Línea 1536...
1530
 
1536
 
1531
        $completionauto = array('completion' => COMPLETION_TRACKING_AUTOMATIC);
1537
        $completionauto = array('completion' => COMPLETION_TRACKING_AUTOMATIC);
Línea 1550... Línea 1556...
1550
    /**
1556
    /**
1551
     * Test course completed event.
1557
     * Test course completed event.
1552
     *
1558
     *
1553
     * @covers \core\event\course_completion_updated
1559
     * @covers \core\event\course_completion_updated
1554
     */
1560
     */
1555
    public function test_course_completion_updated_event() {
1561
    public function test_course_completion_updated_event(): void {
1556
        $this->setup_data();
1562
        $this->setup_data();
1557
        $coursecontext = context_course::instance($this->course->id);
1563
        $coursecontext = context_course::instance($this->course->id);
1558
        $coursecompletionevent = \core\event\course_completion_updated::create(
1564
        $coursecompletionevent = \core\event\course_completion_updated::create(
1559
                array(
1565
                array(
1560
                    'courseid' => $this->course->id,
1566
                    'courseid' => $this->course->id,
Línea 1576... Línea 1582...
1576
    }
1582
    }
Línea 1577... Línea 1583...
1577
 
1583
 
1578
    /**
1584
    /**
1579
     * @covers \completion_can_view_data
1585
     * @covers \completion_can_view_data
1580
     */
1586
     */
1581
    public function test_completion_can_view_data() {
1587
    public function test_completion_can_view_data(): void {
Línea 1582... Línea 1588...
1582
        $this->setup_data();
1588
        $this->setup_data();
1583
 
1589
 
Línea 1614... Línea 1620...
1614
     * @param string|null $expectedexception Expected exception.
1620
     * @param string|null $expectedexception Expected exception.
1615
     * @param int|null $expectedresult The expected completion status.
1621
     * @param int|null $expectedresult The expected completion status.
1616
     * @covers ::get_grade_completion
1622
     * @covers ::get_grade_completion
1617
     */
1623
     */
1618
    public function test_get_grade_completion(bool $completionusegrade, bool $hasgrade, ?int $passinggrade,
1624
    public function test_get_grade_completion(bool $completionusegrade, bool $hasgrade, ?int $passinggrade,
1619
        ?string $expectedexception, ?int $expectedresult) {
1625
        ?string $expectedexception, ?int $expectedresult): void {
1620
        $this->setup_data();
1626
        $this->setup_data();
Línea 1621... Línea 1627...
1621
 
1627
 
1622
        /** @var \mod_assign_generator $assigngenerator */
1628
        /** @var \mod_assign_generator $assigngenerator */
1623
        $assigngenerator = $this->getDataGenerator()->get_plugin_generator('mod_assign');
1629
        $assigngenerator = $this->getDataGenerator()->get_plugin_generator('mod_assign');
Línea 1647... Línea 1653...
1647
    /**
1653
    /**
1648
     * Test the return value for cases when the activity module does not have associated grade_item.
1654
     * Test the return value for cases when the activity module does not have associated grade_item.
1649
     *
1655
     *
1650
     * @covers ::get_grade_completion
1656
     * @covers ::get_grade_completion
1651
     */
1657
     */
1652
    public function test_get_grade_completion_without_grade_item() {
1658
    public function test_get_grade_completion_without_grade_item(): void {
1653
        global $DB;
1659
        global $DB;
Línea 1654... Línea 1660...
1654
 
1660
 
Línea 1655... Línea 1661...
1655
        $this->setup_data();
1661
        $this->setup_data();
Línea 1687... Línea 1693...
1687
    /**
1693
    /**
1688
     * Test for aggregate_completions().
1694
     * Test for aggregate_completions().
1689
     *
1695
     *
1690
     * @covers \aggregate_completions
1696
     * @covers \aggregate_completions
1691
     */
1697
     */
1692
    public function test_aggregate_completions() {
1698
    public function test_aggregate_completions(): void {
1693
        global $DB, $CFG;
1699
        global $DB, $CFG;
1694
        require_once($CFG->dirroot.'/completion/criteria/completion_criteria_activity.php');
1700
        require_once($CFG->dirroot.'/completion/criteria/completion_criteria_activity.php');
1695
        $this->resetAfterTest(true);
1701
        $this->resetAfterTest(true);
1696
        $time = time();
1702
        $time = time();
Línea 1784... Línea 1790...
1784
    /**
1790
    /**
1785
     * Test for completion_completion::_save().
1791
     * Test for completion_completion::_save().
1786
     *
1792
     *
1787
     * @covers \completion_completion::_save
1793
     * @covers \completion_completion::_save
1788
     */
1794
     */
1789
    public function test_save() {
1795
    public function test_save(): void {
1790
        global $DB;
1796
        global $DB;
1791
        $this->resetAfterTest(true);
1797
        $this->resetAfterTest(true);
Línea 1792... Línea 1798...
1792
 
1798
 
Línea 1828... Línea 1834...
1828
    /**
1834
    /**
1829
     * Test for completion_completion::mark_enrolled().
1835
     * Test for completion_completion::mark_enrolled().
1830
     *
1836
     *
1831
     * @covers \completion_completion::mark_enrolled
1837
     * @covers \completion_completion::mark_enrolled
1832
     */
1838
     */
1833
    public function test_mark_enrolled() {
1839
    public function test_mark_enrolled(): void {
1834
        global $DB;
1840
        global $DB;
1835
        $this->resetAfterTest(true);
1841
        $this->resetAfterTest(true);
Línea 1836... Línea 1842...
1836
 
1842
 
Línea 1871... Línea 1877...
1871
    /**
1877
    /**
1872
     * Test for completion_completion::mark_inprogress().
1878
     * Test for completion_completion::mark_inprogress().
1873
     *
1879
     *
1874
     * @covers \completion_completion::mark_inprogress
1880
     * @covers \completion_completion::mark_inprogress
1875
     */
1881
     */
1876
    public function test_mark_inprogress() {
1882
    public function test_mark_inprogress(): void {
1877
        global $DB;
1883
        global $DB;
1878
        $this->resetAfterTest(true);
1884
        $this->resetAfterTest(true);
Línea 1879... Línea 1885...
1879
 
1885
 
Línea 1914... Línea 1920...
1914
    /**
1920
    /**
1915
     * Test for completion_completion::mark_complete().
1921
     * Test for completion_completion::mark_complete().
1916
     *
1922
     *
1917
     * @covers \completion_completion::mark_complete
1923
     * @covers \completion_completion::mark_complete
1918
     */
1924
     */
1919
    public function test_mark_complete() {
1925
    public function test_mark_complete(): void {
1920
        global $DB;
1926
        global $DB;
1921
        $this->resetAfterTest(true);
1927
        $this->resetAfterTest(true);
Línea 1922... Línea 1928...
1922
 
1928
 
Línea 1956... Línea 1962...
1956
    /**
1962
    /**
1957
     * Test for completion_criteria_completion::mark_complete().
1963
     * Test for completion_criteria_completion::mark_complete().
1958
     *
1964
     *
1959
     * @covers \completion_criteria_completion::mark_complete
1965
     * @covers \completion_criteria_completion::mark_complete
1960
     */
1966
     */
1961
    public function test_criteria_mark_complete() {
1967
    public function test_criteria_mark_complete(): void {
1962
        global $DB;
1968
        global $DB;
1963
        $this->resetAfterTest(true);
1969
        $this->resetAfterTest(true);
Línea 1964... Línea 1970...
1964
 
1970
 
Línea 1994... Línea 2000...
1994
    /**
2000
    /**
1995
     * Test that data is cleaned when we reset a course completion data
2001
     * Test that data is cleaned when we reset a course completion data
1996
     *
2002
     *
1997
     * @covers ::delete_all_completion_data
2003
     * @covers ::delete_all_completion_data
1998
     */
2004
     */
1999
    public function test_course_reset_completion() {
2005
    public function test_course_reset_completion(): void {
2000
        global $DB;
2006
        global $DB;
Línea 2001... Línea 2007...
2001
 
2007
 
Línea 2002... Línea 2008...
2002
        $this->setup_data();
2008
        $this->setup_data();