public function testImport() { $itemClass = $this->itemService->getRootClass(); $report = $this->importService->importQTIPACKFile($this->getSampleDir() . '/package/QTI/package.zip', $itemClass); $items = array(); foreach ($report as $itemReport) { $data = $itemReport->getData(); if (!is_null($data)) { $items[] = $data; } } $this->assertEquals(1, count($items)); $item = current($items); $this->assertInstanceOf('\\core_kernel_classes_Resource', $item); $this->assertTrue($item->exists()); $resourceManager = new \taoItems_helpers_ResourceManager(array('item' => $item, 'lang' => DEFAULT_LANG)); $data = $resourceManager->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(2, count($children)); $file = null; $dir = null; foreach ($children as $child) { if (isset($child['path'])) { $dir = $child; } if (isset($child['name'])) { $file = $child; } } $this->assertEquals("qti.xml", $file['name']); $this->assertEquals("application/xml", $file['mime']); $this->assertTrue($file['size'] > 0); $this->assertEquals("/images", $dir['path']); $this->assertEquals(ROOT_URL, substr($dir['url'], 0, strlen(ROOT_URL))); return $item; }
/** * Apply the css to this item * * @param \core_kernel_classes_Resource $item * @param $destPath * @return \common_report_Report */ public function applyToItem(\core_kernel_classes_Resource $item, $destPath) { $itemService = \taoItems_models_classes_ItemsService::singleton(); $availableLangs = array(DEFAULT_LANG); foreach ($availableLangs as $lang) { if ($itemService->hasItemContent($item, $lang)) { // get the new $modifiedXml = $this->applyToXml($itemService->getItemContent($item), $destPath); $manager = new \taoItems_helpers_ResourceManager(array('item' => $item, 'lang' => $lang)); $manager->add($this->cssFile, $destPath, ''); $itemService->setItemContent($item, $modifiedXml, $lang); return new \common_report_Report(\common_report_Report::TYPE_SUCCESS, $item->getLabel()); } else { return new \common_report_Report(\common_report_Report::TYPE_INFO, $item->getLabel() . ' (n/a)'); } } }