$forum1->numdiscussions = 1;
$forum1->cancreatediscussions = true;
$forum1->istracked = true;
+ $forum1->unreadpostscount = 0;
$forum1->introfiles = [];
$record = new stdClass();
$record = new stdClass();
$record->course = $course1->id;
$forum2 = self::getDataGenerator()->create_module('forum', $record);
+ $forum2cm = get_coursemodule_from_id('forum', $forum2->cmid);
$forum2context = context_module::instance($forum2->cmid);
// Add discussions to the forums.
array_pop($posts['posts']);
$this->assertEquals($expectedposts, $posts);
+ // Check we receive the unread count correctly on tracked forum.
+ forum_tp_count_forum_unread_posts($forum2cm, $course1, true); // Reset static cache.
+ $result = mod_forum_external::get_forums_by_courses(array($course1->id));
+ $result = external_api::clean_returnvalue(mod_forum_external::get_forums_by_courses_returns(), $result);
+ foreach ($result as $f) {
+ if ($f['id'] == $forum2->id) {
+ $this->assertEquals(1, $f['unreadpostscount']);
+ }
+ }
+
// Test discussion without additional posts. There should be only one post (the one created by the discussion).
$posts = mod_forum_external::get_forum_discussion_posts($discussion2->id, 'modified', 'DESC');
$posts = external_api::clean_returnvalue(mod_forum_external::get_forum_discussion_posts_returns(), $posts);
foreach ($posts['posts'] as $post) {
$this->assertTrue($post['postread']);
}
+
+ // Check we receive 0 unread posts.
+ forum_tp_count_forum_unread_posts($forum2cm, $course1, true); // Reset static cache.
+ $result = mod_forum_external::get_forums_by_courses(array($course1->id));
+ $result = external_api::clean_returnvalue(mod_forum_external::get_forums_by_courses_returns(), $result);
+ foreach ($result as $f) {
+ if ($f['id'] == $forum2->id) {
+ $this->assertEquals(0, $f['unreadpostscount']);
+ }
+ }
}
/**