/** * Test get_glossaries_by_courses */ public function test_get_glossaries_by_courses() { $this->resetAfterTest(true); // As admin. $this->setAdminUser(); $c1 = self::getDataGenerator()->create_course(); $c2 = self::getDataGenerator()->create_course(); $g1 = self::getDataGenerator()->create_module('glossary', array('course' => $c1->id, 'name' => 'First Glossary')); $g2 = self::getDataGenerator()->create_module('glossary', array('course' => $c1->id, 'name' => 'Second Glossary')); $g3 = self::getDataGenerator()->create_module('glossary', array('course' => $c2->id, 'name' => 'Third Glossary')); $s1 = $this->getDataGenerator()->create_user(); self::getDataGenerator()->enrol_user($s1->id, $c1->id); // Check results where student is enrolled. $this->setUser($s1); $glossaries = mod_glossary_external::get_glossaries_by_courses(array()); $glossaries = external_api::clean_returnvalue(mod_glossary_external::get_glossaries_by_courses_returns(), $glossaries); $this->assertCount(2, $glossaries['glossaries']); $this->assertEquals('First Glossary', $glossaries['glossaries'][0]['name']); $this->assertEquals('Second Glossary', $glossaries['glossaries'][1]['name']); // Check results with specific course IDs. $glossaries = mod_glossary_external::get_glossaries_by_courses(array($c1->id, $c2->id)); $glossaries = external_api::clean_returnvalue(mod_glossary_external::get_glossaries_by_courses_returns(), $glossaries); $this->assertCount(2, $glossaries['glossaries']); $this->assertEquals('First Glossary', $glossaries['glossaries'][0]['name']); $this->assertEquals('Second Glossary', $glossaries['glossaries'][1]['name']); $this->assertEquals('course', $glossaries['warnings'][0]['item']); $this->assertEquals($c2->id, $glossaries['warnings'][0]['itemid']); $this->assertEquals('1', $glossaries['warnings'][0]['warningcode']); // Now as admin. $this->setAdminUser(); $glossaries = mod_glossary_external::get_glossaries_by_courses(array($c2->id)); $glossaries = external_api::clean_returnvalue(mod_glossary_external::get_glossaries_by_courses_returns(), $glossaries); $this->assertCount(1, $glossaries['glossaries']); $this->assertEquals('Third Glossary', $glossaries['glossaries'][0]['name']); }