William Panting
11 years ago
3 changed files with 115 additions and 0 deletions
@ -0,0 +1,83 @@
|
||||
<?php |
||||
|
||||
/** |
||||
* @file |
||||
* Tests for our islandora_temp_file_entry() function. |
||||
*/ |
||||
|
||||
class IslandoraManageTempfileTestCase extends IslandoraWebTestCase { |
||||
|
||||
/** |
||||
* Gets info to display to describe this test. |
||||
* |
||||
* @see IslandoraWebTestCase::getInfo() |
||||
*/ |
||||
public static function getInfo() { |
||||
return array( |
||||
'name' => 'Islandora Managed Tempfile Interface', |
||||
'description' => 'Ensure that our managed tempfile interface returns appropriate results.', |
||||
'group' => 'Islandora', |
||||
); |
||||
} |
||||
|
||||
/** |
||||
* Creates an admin user and a connection to a fedora repository. |
||||
* |
||||
* @see IslandoraWebTestCase::setUp() |
||||
*/ |
||||
public function setUp() { |
||||
parent::setUp('islandora'); |
||||
$this->tempUri = file_create_filename('temp.txt', 'temporary://'); |
||||
$this->publicUri = file_create_filename('temp.txt', 'public://'); |
||||
} |
||||
|
||||
/** |
||||
* Free any objects/resources created for this test. |
||||
* |
||||
* @see IslandoraWebTestCase::tearDown() |
||||
*/ |
||||
public function tearDown() { |
||||
parent::tearDown(); |
||||
file_unmanaged_delete($this->tempUri); |
||||
file_unmanaged_delete($this->publicUri); |
||||
} |
||||
|
||||
/** |
||||
* Existing files are made temporary. |
||||
*/ |
||||
public function testExistingFile() { |
||||
$temp_file = file_save_data('blah', $this->tempUri, FILE_EXISTS_REPLACE); |
||||
$public_file = file_save_data('blah', $this->publicUri, FILE_EXISTS_REPLACE); |
||||
|
||||
$this->existingFileHelper($temp_file); |
||||
$this->existingFileHelper($public_file); |
||||
} |
||||
|
||||
/** |
||||
* Helper function; ensure file is permanent (as file_save_data() creates). |
||||
*/ |
||||
protected function existingFileHelper($file_object) { |
||||
$this->assertEqual($file_object->status & FILE_STATUS_PERMANENT, FILE_STATUS_PERMANENT, 'Existing file is permanent.'); |
||||
$this->baseFileHelper($file_object->uri); |
||||
$this->assertTrue(file_delete($file_object)); |
||||
} |
||||
|
||||
/** |
||||
* Helper function; ensure our function produces an temporary file object. |
||||
*/ |
||||
protected function baseFileHelper($file_uri) { |
||||
$temp_file = islandora_temp_file_entry($file_uri); |
||||
$this->assertNotEqual($temp_file->status & FILE_STATUS_PERMANENT, FILE_STATUS_PERMANENT, 'File has been made temporary.'); |
||||
} |
||||
|
||||
/** |
||||
* Unmanaged files start being managed. |
||||
*/ |
||||
public function testNewFileUri() { |
||||
file_put_contents($this->tempUri, 'test'); |
||||
file_put_contents($this->publicUri, 'test'); |
||||
|
||||
$this->baseFileHelper($this->tempUri); |
||||
$this->baseFileHelper($this->publicUri); |
||||
} |
||||
} |
Loading…
Reference in new issue