Commit 935ee1c6 authored by Eric Merrill's avatar Eric Merrill
Browse files

MDL-53167 search: Adding unit tests for external API change

parent 427e3cbc
...@@ -2221,7 +2221,7 @@ class core_course_external extends external_api { ...@@ -2221,7 +2221,7 @@ class core_course_external extends external_api {
foreach ($courses as $course) { foreach ($courses as $course) {
if (!empty($limittoenrolled)) { if (!empty($limittoenrolled)) {
// Filter out not enrolled courses. // Filter out not enrolled courses.
if (empty($enrolled[$course->id])) { if (!isset($enrolled[$course->id])) {
$totalcount--; $totalcount--;
continue; continue;
} }
......
...@@ -652,6 +652,14 @@ class core_course_externallib_testcase extends externallib_advanced_testcase { ...@@ -652,6 +652,14 @@ class core_course_externallib_testcase extends externallib_advanced_testcase {
// Now as a normal user. // Now as a normal user.
$user = self::getDataGenerator()->create_user(); $user = self::getDataGenerator()->create_user();
// Add a 3rd, hidden, course we shouldn't see, even when enrolled as student.
$coursedata3['fullname'] = 'HIDDEN COURSE';
$coursedata3['visible'] = 0;
$course3 = self::getDataGenerator()->create_course($coursedata3);
$this->getDataGenerator()->enrol_user($user->id, $course3->id, 'student');
$this->getDataGenerator()->enrol_user($user->id, $course2->id, 'student');
$this->setUser($user); $this->setUser($user);
$results = core_course_external::search_courses('search', 'FIRST'); $results = core_course_external::search_courses('search', 'FIRST');
...@@ -660,6 +668,19 @@ class core_course_externallib_testcase extends externallib_advanced_testcase { ...@@ -660,6 +668,19 @@ class core_course_externallib_testcase extends externallib_advanced_testcase {
$this->assertEquals(1, $results['total']); $this->assertEquals(1, $results['total']);
$this->assertEquals($coursedata1['fullname'], $results['courses'][0]['fullname']); $this->assertEquals($coursedata1['fullname'], $results['courses'][0]['fullname']);
// Check that we can see both without the limit to enrolled setting.
$results = core_course_external::search_courses('search', 'COURSE', 0, 0, array(), 0);
$results = external_api::clean_returnvalue(core_course_external::search_courses_returns(), $results);
$this->assertCount(2, $results['courses']);
$this->assertEquals(2, $results['total']);
// Check that we only see our enrolled course when limiting.
$results = core_course_external::search_courses('search', 'COURSE', 0, 0, array(), 1);
$results = external_api::clean_returnvalue(core_course_external::search_courses_returns(), $results);
$this->assertCount(1, $results['courses']);
$this->assertEquals(1, $results['total']);
$this->assertEquals($coursedata2['fullname'], $results['courses'][0]['fullname']);
// Search by block (use news_items default block). Should fail (only admins allowed). // Search by block (use news_items default block). Should fail (only admins allowed).
$this->setExpectedException('required_capability_exception'); $this->setExpectedException('required_capability_exception');
$results = core_course_external::search_courses('blocklist', $blockid); $results = core_course_external::search_courses('blocklist', $blockid);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment