Skip to content
Snippets Groups Projects
Commit 6e95df0d authored by Demian Katz's avatar Demian Katz
Browse files

Added ThemeInfo test + fixtures.

parent 06104d90
No related merge requests found
<?php
return array(
'extends' => 'parent',
);
<?php
return array(
'extends' => false,
);
<?php
/**
* ThemeInfo Test Class
*
* PHP version 5
*
* Copyright (C) Villanova University 2010.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* @category VuFind2
* @package Tests
* @author Demian Katz <demian.katz@villanova.edu>
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License
* @link http://vufind.org/wiki/vufind2:unit_tests Wiki
*/
namespace VuFindTest;
use VuFindTheme\ThemeInfo;
/**
* ThemeInfo Test Class
*
* @category VuFind2
* @package Tests
* @author Demian Katz <demian.katz@villanova.edu>
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License
* @link http://vufind.org/wiki/vufind2:unit_tests Wiki
*/
class ThemeInfoTest extends Unit\TestCase
{
/**
* Path to theme fixtures
*
* @var string
*/
protected $fixturePath;
/**
* Constructor
*/
public function __construct()
{
$this->fixturePath = realpath(__DIR__ . '/../../fixtures/themes');
}
/**
* Test getBaseDir
*
* @return void
*/
public function testGetBaseDir()
{
$this->assertEquals($this->fixturePath, $this->getThemeInfo()->getBaseDir());
}
/**
* Test get/setTheme
*
* @return void
*/
public function testThemeSetting()
{
$ti = $this->getThemeInfo();
$this->assertEquals('parent', $ti->getTheme()); // default
$ti->setTheme('child');
$this->assertEquals('child', $ti->getTheme());
}
/**
* Test setting invalid theme
*
* @return void
* @expectedException Exception
* @expectedExceptionMessage Cannot load theme: invalid
*/
public function testInvalidTheme()
{
$this->getThemeInfo()->setTheme('invalid');
}
/**
* Test theme info
*
* @return void
*/
public function testGetThemeInfo()
{
$ti = $this->getThemeInfo();
$ti->setTheme('child');
$this->assertEquals(array('child' => array('extends' => 'parent'), 'parent' => array('extends' => false)), $ti->getThemeInfo());
}
/**
* Test unfindable item.
*
* @return void
*/
public function testUnfindableItem()
{
$this->assertNull($this->getThemeInfo()->findContainingTheme('does-not-exist'));
}
/**
* Test findContainingTheme()
*
* @return void
*/
public function testFindContainingTheme()
{
$ti = $this->getThemeInfo();
$ti->setTheme('child');
$this->assertEquals('child', $ti->findContainingTheme('child.txt'));
$this->assertEquals('parent', $ti->findContainingTheme('parent.txt'));
}
/**
* Get a test object
*
* @return ThemeInfo
*/
protected function getThemeInfo()
{
return new ThemeInfo($this->fixturePath, 'parent');
}
}
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment