diff --git a/module/VuFind/tests/unit-tests/src/VuFindTest/ExportTest.php b/module/VuFind/tests/unit-tests/src/VuFindTest/ExportTest.php new file mode 100644 index 0000000000000000000000000000000000000000..ca47fe445201361c6e832a37df8b02db39ef9904 --- /dev/null +++ b/module/VuFind/tests/unit-tests/src/VuFindTest/ExportTest.php @@ -0,0 +1,106 @@ +<?php +/** + * Export Support 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 VuFind\Export, Zend\Config\Config; + +/** + * Export Support 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 ExportTest extends \PHPUnit_Framework_TestCase +{ + /** + * Test bulk options. + * + * @return void + */ + public function testGetBulkOptions() + { + $config = array( + 'BulkExport' => array( + 'enabled' => 1, + 'options' => 'foo:bar:baz', + ), + 'Export' => array( + 'foo' => 1, + 'bar' => 1, + 'baz' => 0, + 'xyzzy' => 1, + ), + ); + $export = $this->getExport($config); + $this->assertEquals(array('foo', 'bar'), $export->getBulkOptions()); + } + + /** + * Test "needs redirect" + * + * @return void + */ + public function testNeedsRedirect() + { + $config = array( + 'foo' => array('redirectUrl' => 'http://foo'), + 'bar' => array(), + ); + $export = $this->getExport(array(), $config); + $this->assertTrue($export->needsRedirect('foo')); + $this->assertFalse($export->needsRedirect('bar')); + } + + /** + * Test non-XML case of process group + * + * @return void + */ + public function testProcessGroupNonXML() + { + $this->assertEquals( + "a\nb\nc\n", + $this->getExport()->processGroup('foo', array("a\n", "b\n", "c\n")) + ); + } + + /** + * Get a configured Export object. + * + * @param array $main Main config + * @param array $export Export config + * + * @return Export + */ + protected function getExport($main = array(), $export = array()) + { + return new Export(new Config($main), new Config($export)); + } +} \ No newline at end of file