Ejemplo n.º 1
0
 /**
  * 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']);
 }