/** * Update a template. */ public function test_update_template() { $syscontextid = context_system::instance()->id; $catcontextid = context_coursecat::instance($this->category->id)->id; // Set a due date for the next year. $date = new DateTime('now'); $date->modify('+1 year'); $duedate = $date->getTimestamp(); // Creating two templates. $this->setUser($this->creator); $systemplate = $this->create_template(1, true); $cattemplate = $this->create_template(2, false); // Trying to update in a without permissions. $this->setUser($this->user); try { $this->update_template($systemplate->id, 3); $this->fail('Invalid permissions'); } catch (required_capability_exception $e) { // All good. } try { $this->update_template($cattemplate->id, 3); $this->fail('Invalid permissions'); } catch (required_capability_exception $e) { // All good. } // User with permissions to update in category. $this->setUser($this->catcreator); try { $this->update_template($systemplate->id, 3); $this->fail('Invalid permissions'); } catch (required_capability_exception $e) { // All good. } $result = $this->update_template($cattemplate->id, 3); $this->assertTrue($result); $result = external::read_template($cattemplate->id); $result = external_api::clean_returnvalue(external::read_template_returns(), $result); $this->assertEquals($cattemplate->id, $result['id']); $this->assertEquals('shortname3', $result['shortname']); $this->assertEquals("description3", $result['description']); $this->assertEquals(FORMAT_HTML, $result['descriptionformat']); $this->assertEquals(true, $result['visible']); $this->assertEquals(0, $result['duedate']); $this->assertEquals(userdate(0), $result['duedateformatted']); // User with permissions to update in the system. $this->setUser($this->creator); $result = $this->update_template($systemplate->id, 4); $this->assertTrue($result); $result = external::read_template($systemplate->id); $result = external_api::clean_returnvalue(external::read_template_returns(), $result); $this->assertEquals($systemplate->id, $result['id']); $this->assertEquals('shortname4', $result['shortname']); $this->assertEquals('description4', $result['description']); $this->assertEquals(FORMAT_HTML, $result['descriptionformat']); $this->assertEquals(true, $result['visible']); $this->assertEquals(0, $result['duedate']); $this->assertEquals(userdate(0), $result['duedateformatted']); $result = $this->update_template($cattemplate->id, 5); $this->assertTrue($result); $result = external::read_template($cattemplate->id); $result = external_api::clean_returnvalue(external::read_template_returns(), $result); $this->assertEquals($cattemplate->id, $result['id']); $this->assertEquals('shortname5', $result['shortname']); $this->assertEquals('description5', $result['description']); $this->assertEquals(FORMAT_HTML, $result['descriptionformat']); $this->assertEquals(1, $result['visible']); $this->assertEquals(0, $result['duedate']); $this->assertEquals(userdate(0), $result['duedateformatted']); }