95 lines
2.9 KiB
PHP
95 lines
2.9 KiB
PHP
<?php
|
|
|
|
/**
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; under version 2
|
|
* of the License (non-upgradable).
|
|
*
|
|
* 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*
|
|
* Copyright (c) 2014 (original work) Open Assessment Technologies SA;
|
|
*
|
|
*
|
|
*/
|
|
|
|
use oat\tao\test\TaoPhpUnitTestRunner;
|
|
use oat\taoQtiItem\model\qti\ImportService;
|
|
use oat\taoItems\model\media\LocalItemSource;
|
|
|
|
include_once dirname(__FILE__) . '/../../includes/raw_start.php';
|
|
|
|
/**
|
|
* test the item content access
|
|
*
|
|
*/
|
|
class ItemContentTest extends TaoPhpUnitTestRunner
|
|
{
|
|
|
|
/**
|
|
* tests initialization
|
|
* load qti service
|
|
*/
|
|
public function setUp(): void
|
|
{
|
|
TaoPhpUnitTestRunner::initTest();
|
|
}
|
|
|
|
|
|
public function testResourceManager()
|
|
{
|
|
$itemClass = taoItems_models_classes_ItemsService::singleton()->getRootClass();
|
|
$report = ImportService::singleton()->importQTIPACKFile(dirname(__FILE__) . '/samples/package/QTI/package.zip', $itemClass);
|
|
|
|
$items = [];
|
|
foreach ($report as $itemReport) {
|
|
$data = $itemReport->getData();
|
|
if (!is_null($data)) {
|
|
$items[] = $data;
|
|
}
|
|
}
|
|
$this->assertEquals(1, count($items));
|
|
|
|
$item = current($items);
|
|
$this->assertIsA($item, 'core_kernel_classes_Resource');
|
|
$this->assertTrue($item->exists());
|
|
|
|
$rm = new LocalItemSource(['item' => $item , 'lang' => DEFAULT_LANG]);
|
|
|
|
$data = $rm->getDirectory();
|
|
$this->assertTrue(is_array($data));
|
|
$this->assertTrue(isset($data['path']));
|
|
$this->assertEquals('/', $data['path']);
|
|
|
|
$this->assertTrue(isset($data['children']));
|
|
$children = $data['children'];
|
|
$this->assertEquals(3, count($children));
|
|
$check = ['/images/','/style/'];
|
|
$file = null;
|
|
$dir = null;
|
|
foreach ($children as $child) {
|
|
if (isset($child['path'])) {
|
|
$this->assertContains($child['path'], $check);
|
|
}
|
|
if (isset($child['name'])) {
|
|
$file = $child;
|
|
}
|
|
}
|
|
|
|
$this->assertEquals("qti.xml", $file['name']);
|
|
$this->assertTrue(strpos($file['mime'], '/xml') !== false); //can be 'application/xml' or 'text/xml'
|
|
$this->assertTrue($file['size'] > 0);
|
|
|
|
|
|
taoItems_models_classes_ItemsService::singleton()->deleteItem($item);
|
|
$this->assertFalse($item->exists());
|
|
}
|
|
}
|