mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-22 19:15:19 +00:00
190 lines
5.4 KiB
PHP
190 lines
5.4 KiB
PHP
<?php
|
|
|
|
require '../epub.php';
|
|
|
|
|
|
class EPubTest extends PHPUnit_Framework_TestCase {
|
|
|
|
protected $epub;
|
|
|
|
protected function setUp(){
|
|
// sometime I might have accidentally broken the test file
|
|
if(filesize('test.epub') != 768780){
|
|
die('test.epub has wrong size, make sure it\'s unmodified');
|
|
}
|
|
|
|
// we work on a copy to test saving
|
|
if(!copy('test.epub','test.copy.epub')){
|
|
die('failed to create copy of the test book');
|
|
}
|
|
|
|
$this->epub = new EPub('test.copy.epub');
|
|
}
|
|
|
|
protected function tearDown(){
|
|
unlink('test.copy.epub');
|
|
}
|
|
|
|
public function testAuthors(){
|
|
// read curent value
|
|
$this->assertEquals(
|
|
$this->epub->Authors(),
|
|
array('Shakespeare, William' => 'William Shakespeare')
|
|
);
|
|
|
|
// remove value with string
|
|
$this->assertEquals(
|
|
$this->epub->Authors(''),
|
|
array()
|
|
);
|
|
|
|
// set single value by String
|
|
|
|
$this->assertEquals(
|
|
$this->epub->Authors('John Doe'),
|
|
array('John Doe' => 'John Doe')
|
|
);
|
|
|
|
// set single value by indexed array
|
|
$this->assertEquals(
|
|
$this->epub->Authors(array('John Doe')),
|
|
array('John Doe' => 'John Doe')
|
|
);
|
|
|
|
// remove value with array
|
|
$this->assertEquals(
|
|
$this->epub->Authors(array()),
|
|
array()
|
|
);
|
|
|
|
// set single value by associative array
|
|
$this->assertEquals(
|
|
$this->epub->Authors(array('Doe, John' => 'John Doe')),
|
|
array('Doe, John' => 'John Doe')
|
|
);
|
|
|
|
// set multi value by string
|
|
$this->assertEquals(
|
|
$this->epub->Authors('John Doe, Jane Smith'),
|
|
array('John Doe' => 'John Doe', 'Jane Smith' => 'Jane Smith')
|
|
);
|
|
|
|
// set multi value by indexed array
|
|
$this->assertEquals(
|
|
$this->epub->Authors(array('John Doe', 'Jane Smith')),
|
|
array('John Doe' => 'John Doe', 'Jane Smith' => 'Jane Smith')
|
|
);
|
|
|
|
// set multi value by associative array
|
|
$this->assertEquals(
|
|
$this->epub->Authors(array('Doe, John' => 'John Doe', 'Smith, Jane' => 'Jane Smith')),
|
|
array('Doe, John' => 'John Doe', 'Smith, Jane' => 'Jane Smith')
|
|
);
|
|
|
|
// check escaping
|
|
$this->assertEquals(
|
|
$this->epub->Authors(array('Doe, John ' => 'John Doe ')),
|
|
array('Doe, John ' => 'John Doe ')
|
|
);
|
|
}
|
|
|
|
public function testTitle(){
|
|
// get current value
|
|
$this->assertEquals(
|
|
$this->epub->Title(),
|
|
'Romeo and Juliet'
|
|
);
|
|
|
|
// delete current value
|
|
$this->assertEquals(
|
|
$this->epub->Title(''),
|
|
''
|
|
);
|
|
|
|
// get current value
|
|
$this->assertEquals(
|
|
$this->epub->Title(),
|
|
''
|
|
);
|
|
|
|
// set new value
|
|
$this->assertEquals(
|
|
$this->epub->Title('Foo Bar'),
|
|
'Foo Bar'
|
|
);
|
|
|
|
// check escaping
|
|
$this->assertEquals(
|
|
$this->epub->Title('Foo Bar'),
|
|
'Foo Bar'
|
|
);
|
|
}
|
|
|
|
public function testSubject(){
|
|
// get current values
|
|
$this->assertEquals(
|
|
$this->epub->Subjects(),
|
|
array('Fiction','Drama','Romance')
|
|
);
|
|
|
|
// delete current values with String
|
|
$this->assertEquals(
|
|
$this->epub->Subjects(''),
|
|
array()
|
|
);
|
|
|
|
// set new values with String
|
|
$this->assertEquals(
|
|
$this->epub->Subjects('Fiction, Drama, Romance'),
|
|
array('Fiction','Drama','Romance')
|
|
);
|
|
|
|
// delete current values with Array
|
|
$this->assertEquals(
|
|
$this->epub->Subjects(array()),
|
|
array()
|
|
);
|
|
|
|
// set new values with array
|
|
$this->assertEquals(
|
|
$this->epub->Subjects(array('Fiction','Drama','Romance')),
|
|
array('Fiction','Drama','Romance')
|
|
);
|
|
|
|
// check escaping
|
|
$this->assertEquals(
|
|
$this->epub->Subjects(array('Fiction','Drama ','Romance')),
|
|
array('Fiction','Drama ','Romance')
|
|
);
|
|
}
|
|
|
|
|
|
public function testCover(){
|
|
// read current cover
|
|
$cover = $this->epub->Cover();
|
|
$this->assertEquals($cover['mime'],'image/png');
|
|
$this->assertEquals($cover['found'],'OPS/images/cover.png');
|
|
$this->assertEquals(strlen($cover['data']), 657911);
|
|
|
|
// delete cover
|
|
$cover = $this->epub->Cover('');
|
|
$this->assertEquals($cover['mime'],'image/gif');
|
|
$this->assertEquals($cover['found'],false);
|
|
$this->assertEquals(strlen($cover['data']), 42);
|
|
|
|
// set new cover (will return a not-found as it's not yet saved)
|
|
$cover = $this->epub->Cover('test.jpg','image/jpeg');
|
|
$this->assertEquals($cover['mime'],'image/jpeg');
|
|
$this->assertEquals($cover['found'],'OPS/php-epub-meta-cover.img');
|
|
$this->assertEquals(strlen($cover['data']), 0);
|
|
|
|
// save
|
|
$this->epub->save();
|
|
|
|
// read now changed cover
|
|
$cover = $this->epub->Cover();
|
|
$this->assertEquals($cover['mime'],'image/jpeg');
|
|
$this->assertEquals($cover['found'],'OPS/php-epub-meta-cover.img');
|
|
$this->assertEquals(strlen($cover['data']), filesize('test.jpg'));
|
|
}
|
|
}
|