Browse Source

Add a test for unknow mimetype and use finfo_file in this case. Inspired by At_Libitum. re #72

master
Sébastien Lucas 10 years ago
parent
commit
b4d3fe6b22
2 changed files with 35 additions and 2 deletions
  1. +12
    -2
      data.php
  2. +23
    -0
      test/bookTest.php

+ 12
- 2
data.php View File

@@ -64,11 +64,21 @@ class Data extends Base {
}

public function getMimeType () {
$result = "application/octet-stream";
if ($this->isKnownType ()) {
return self::$mimetypes [$this->extension];
} else {
return "application/octet-stream";
} elseif (function_exists('finfo_open') === true) {
$finfo = finfo_open(FILEINFO_MIME_TYPE);

if (is_resource($finfo) === true)
{
$result = finfo_file($finfo, $this->getLocalPath ());
}

finfo_close($finfo);
}
return $result;
}

public function getFilename () {


+ 23
- 0
test/bookTest.php View File

@@ -291,6 +291,29 @@ class BookTest extends PHPUnit_Framework_TestCase

$this->assertNull ($book->getDataFormat ("FB2"));
}
public function testGetMimeType () {
$book = Book::getBookById(17);

// Get Alice MOBI=>17, PDF=>19, EPUB=>20
$data = $book->getDataFormat ("EPUB");
$this->assertEquals ("application/epub+zip", $data->getMimeType ());
$data = $book->getDataFormat ("MOBI");
$this->assertEquals ("application/x-mobipocket-ebook", $data->getMimeType ());
$data = $book->getDataFormat ("PDF");
$this->assertEquals ("application/pdf", $data->getMimeType ());
// Alter a data to make a test for finfo_file if enabled
$data->extension = "ico";
$data->format = "ICO";
$data->name = "favicon";
$data->book->path = realpath (dirname(__FILE__) . "/../");
if (function_exists('finfo_open') === true) {
$this->assertEquals ("image/x-icon", $data->getMimeType ());
} else {
$this->assertEquals ("application/octet-stream", $data->getMimeType ());
}
}

public function testTypeaheadSearch ()
{


Loading…
Cancel
Save