mirror of
https://github.com/moodle/moodle.git
synced 2025-08-04 16:36:37 +02:00
MDL-74910 core_files: Additional unit tests for get_conversions_for_file
This commit is contained in:
parent
c9da36d731
commit
70bd5a2161
1 changed files with 48 additions and 0 deletions
|
@ -75,6 +75,53 @@ class conversion_test extends \advanced_testcase {
|
||||||
$this->assertFalse($conversion->get_destfile());
|
$this->assertFalse($conversion->get_destfile());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ensure that get_conversions_for_file returns an existing conversion
|
||||||
|
* record with matching sourcefileid and targetformat when a file with the same
|
||||||
|
* contenthash is uploaded several times.
|
||||||
|
*
|
||||||
|
* @covers \core_files\conversion::get_conversions_for_file
|
||||||
|
*/
|
||||||
|
public function test_get_conversions_for_multiple_files_existing_conversion_incomplete() {
|
||||||
|
$this->resetAfterTest();
|
||||||
|
|
||||||
|
// Create a bunch of files with the same content.
|
||||||
|
for ($i = 0; $i < 5; $i++) {
|
||||||
|
$sourcefiles[] = $this->create_stored_file('test content', 'testfile' . $i . '.txt');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Use only one file for the conversion.
|
||||||
|
// Pick some file in the middle.
|
||||||
|
$sourcefile = $sourcefiles[count($sourcefiles) - 2];
|
||||||
|
|
||||||
|
$existing = new conversion(0, (object) [
|
||||||
|
'sourcefileid' => $sourcefile->get_id(),
|
||||||
|
'targetformat' => 'pdf',
|
||||||
|
]);
|
||||||
|
$existing->create();
|
||||||
|
|
||||||
|
$conversions = conversion::get_conversions_for_file($sourcefile, 'pdf');
|
||||||
|
$this->assertCount(1, $conversions);
|
||||||
|
|
||||||
|
$conversion = array_shift($conversions);
|
||||||
|
$conversionfile = $conversion->get_sourcefile();
|
||||||
|
|
||||||
|
$this->assertEquals($sourcefile->get_id(), $conversionfile->get_id());
|
||||||
|
$this->assertFalse($conversion->get_destfile());
|
||||||
|
|
||||||
|
// Check that getting the conversion for a different file record with the same contenthash
|
||||||
|
// returns the same conversion as above.
|
||||||
|
$conversions = conversion::get_conversions_for_file($sourcefiles[count($sourcefiles) - 1], 'pdf');
|
||||||
|
$this->assertCount(1, $conversions);
|
||||||
|
|
||||||
|
$conversion = array_shift($conversions);
|
||||||
|
$conversionfile = $conversion->get_sourcefile();
|
||||||
|
|
||||||
|
$this->assertEquals($existing->get('id'), $conversion->get('id'));
|
||||||
|
$this->assertEquals($sourcefile->get_id(), $conversionfile->get_id());
|
||||||
|
$this->assertFalse($conversion->get_destfile());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ensure that get_conversions_for_file returns an existing conversion
|
* Ensure that get_conversions_for_file returns an existing conversion
|
||||||
* record with matching sourcefileid and targetformat when a second
|
* record with matching sourcefileid and targetformat when a second
|
||||||
|
@ -139,6 +186,7 @@ class conversion_test extends \advanced_testcase {
|
||||||
|
|
||||||
$conversion = array_shift($conversions);
|
$conversion = array_shift($conversions);
|
||||||
|
|
||||||
|
$this->assertEquals($existing->get('id'), $conversion->get('id'));
|
||||||
$this->assertEquals($sourcefile->get_id(), $conversion->get_sourcefile()->get_id());
|
$this->assertEquals($sourcefile->get_id(), $conversion->get_sourcefile()->get_id());
|
||||||
$this->assertEquals($destfile->get_id(), $conversion->get_destfile()->get_id());
|
$this->assertEquals($destfile->get_id(), $conversion->get_destfile()->get_id());
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue