MDL-28579 scorm: Fix broken unit tests
authorDamyon Wiese <damyon@moodle.com>
Wed, 4 Sep 2013 01:44:05 +0000 (09:44 +0800)
committerDamyon Wiese <damyon@moodle.com>
Wed, 4 Sep 2013 01:44:05 +0000 (09:44 +0800)
mod/scorm/tests/validatepackage_test.php

index 2c24981..a278400 100644 (file)
@@ -36,42 +36,60 @@ require_once($CFG->dirroot . '/mod/scorm/locallib.php');
  * @copyright  2013 Dan Marsden
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-class mod_scorm_validatepackage_testcase extends basic_testcase {
+class mod_scorm_validatepackage_testcase extends advanced_testcase {
+
+    /**
+     * Convenience to take a fixture test file and create a stored_file.
+     *
+     * @param string $filepath
+     * @return stored_file
+     */
+    protected function create_stored_file_from_path($filepath) {
+        $syscontext = context_system::instance();
+        $filerecord = array(
+            'contextid' => $syscontext->id,
+            'component' => 'mod_scorm',
+            'filearea'  => 'unittest',
+            'itemid'    => 0,
+            'filepath'  => '/',
+            'filename'  => basename($filepath)
+        );
+
+        $fs = get_file_storage();
+        return $fs->create_file_from_pathname($filerecord, $filepath);
+    }
+
+
     public function test_validate_package() {
         global $CFG;
+
+        $this->resetAfterTest(true);
+
         $filename = "validscorm.zip";
-        $file = new zip_archive();
-        $file->open($CFG->dirroot.'/mod/scorm/tests/packages/'.$filename, file_archive::OPEN);
+        $file = $this->create_stored_file_from_path($CFG->dirroot.'/mod/scorm/tests/packages/'.$filename, file_archive::OPEN);
         $errors = scorm_validate_package($file);
         $this->assertEmpty($errors);
-        $file->close();
 
         $filename = "validaicc.zip";
-        $file = new zip_archive();
-        $file->open($CFG->dirroot.'/mod/scorm/tests/packages/'.$filename, file_archive::OPEN);
+        $file = $this->create_stored_file_from_path($CFG->dirroot.'/mod/scorm/tests/packages/'.$filename, file_archive::OPEN);
         $errors = scorm_validate_package($file);
         $this->assertEmpty($errors);
-        $file->close();
 
         $filename = "invalid.zip";
-        $file = new zip_archive();
-        $file->open($CFG->dirroot.'/mod/scorm/tests/packages/'.$filename, file_archive::OPEN);
+        $file = $this->create_stored_file_from_path($CFG->dirroot.'/mod/scorm/tests/packages/'.$filename, file_archive::OPEN);
         $errors = scorm_validate_package($file);
         $this->assertArrayHasKey('packagefile', $errors);
         if (isset($errors['packagefile'])) {
             $this->assertEquals(get_string('nomanifest', 'scorm'), $errors['packagefile']);
         }
-        $file->close();
 
         $filename = "badscorm.zip";
-        $file = new zip_archive();
-        $file->open($CFG->dirroot.'/mod/scorm/tests/packages/'.$filename, file_archive::OPEN);
+        $file = $this->create_stored_file_from_path($CFG->dirroot.'/mod/scorm/tests/packages/'.$filename, file_archive::OPEN);
         $errors = scorm_validate_package($file);
         $this->assertArrayHasKey('packagefile', $errors);
         if (isset($errors['packagefile'])) {
             $this->assertEquals(get_string('badimsmanifestlocation', 'scorm'), $errors['packagefile']);
         }
-        $file->close();
     }
 }