You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
2.7 KiB
89 lines
2.7 KiB
<?php |
|
|
|
/** |
|
* @file |
|
* Tests to see if the hooks get called when appropriate. |
|
* |
|
* In the test module 'islandora_hooked_access_test' there are implementations |
|
* of hooks being tested. These implementations modifies the session, and |
|
* that's how we test if the hook gets called. |
|
* |
|
* To make sense of these tests reference islandora_hooked_access_test.module. |
|
*/ |
|
|
|
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); |
|
} |
|
}
|
|
|