/** * Issue #3, issue #6 */ public function testMenuHasMissingAttributes() { $submenu1 = new \GreenCape\Manifest\MenuSection(); $submenu1->setLabel('menu1')->setIcon('icon1')->setAlt('alt1')->setLink('link1')->setAttribute('view', 'view1'); $this->section->setLabel('menu')->setIcon('icon')->setAlt('alt')->setLink('link')->setAttribute('view', 'view')->setAttribute('foo', 'bar')->addMenu($submenu1); $xml = new \GreenCape\Xml\Converter(array('administration' => $this->section->getStructure())); $expected = '<?xml version="1.0" encoding="UTF-8"?>'; $expected .= '<administration>'; $expected .= '<menu link="link" view="view" img="icon" alt="alt" foo="bar">menu</menu>'; $expected .= '<submenu>'; $expected .= '<menu link="link1" view="view1" img="icon1" alt="alt1">menu1</menu>'; $expected .= '</submenu>'; $expected .= '</administration>'; $this->assertXmlStringEqualsXmlString($expected, (string) $xml); }
public static function getManifest() { // Create the component manifest $manifest = new \GreenCape\Manifest\ComponentManifest(); // Meta data $manifest->setTarget('1.6')->setMethod('upgrade')->setName('com_alpha')->setAuthor('John Doe')->setAuthorEmail('*****@*****.**')->setAuthorUrl('http://www.example.org')->setCopyright(2008, 'Copyright Info', false)->setLicense('License Info')->setVersion('1.0')->setCreationDate('March 2006'); // Installer hooks $manifest->setInstallFile('file.install.php')->setUninstallFile('file.uninstall.php')->setScriptFile('file.script.php'); // SQL files $install = new \GreenCape\Manifest\SqlSection(); $install->addFile('mysql', 'sql/install.mysql.utf8.sql', array('charset' => 'utf8')); $manifest->addSection('install', $install); $uninstall = new \GreenCape\Manifest\SqlSection(); $uninstall->addFile('mysql', 'sql/uninstall.mysql.utf8.sql', array('charset' => 'utf8', 'folder' => 'sql')); $manifest->addSection('uninstall', $uninstall); $update = new \GreenCape\Manifest\SchemaSection(); $update->addFolder('mysql', 'sql/updates/mysql')->addFolder('sqlsrv', 'sql/updates/sqlsrv'); $manifest->addSection('update', $update); // Front-end files $files = new \GreenCape\Manifest\FileSection(); $files->setBase('site')->addFile('alpha.php'); $manifest->addSection('files', $files); // Front-end language (legacy 1.5 support) $language = new \GreenCape\Manifest\LanguageSection(); $language->setBase('site')->addFile('en-GB', 'language/en-GB/en-GB.com_alpha.ini'); $manifest->addSection('languages', $language); // Media Files $media = new \GreenCape\Manifest\MediaSection(); $media->setDestination('com_alpha')->addFile('com_alpha.jpg'); $manifest->addSection('media', $media); // Backend files $menu = new \GreenCape\Manifest\MenuSection(); $menu->setLabel('Alpha')->setIcon('components/com_alpha/applications-internet-16.png')->addMenu('Installer', 'option=com_installer')->addMenu('Users', 'option=com_users'); $adminFiles = new \GreenCape\Manifest\FileSection(); $adminFiles->setBase('admin')->addFile('admin.alpha.php')->addFile('image.png')->addFile('applications-internet.png')->addFile('applications-internet-16.png')->addFolder('sql'); $adminLanguage = new \GreenCape\Manifest\LanguageSection(); $adminLanguage->setBase('admin/language')->addFile('en-GB', 'en-GB/en-GB.com_alpha.ini')->addFile('en-GB', 'en-GB/en-GB.com_alpha.sys.ini'); $admin = new \GreenCape\Manifest\AdminSection(); $admin->setMenu($menu)->setFiles($adminFiles)->setLanguage($adminLanguage); $manifest->addSection('administration', $admin); // Extension Update Specification $server = new \GreenCape\Manifest\ServerSection(); $server->addServer('extension', 'Extension Update Site', 'http://jsitepoint.com/update/components/com_alpha/extension.xml', 1)->addServer('collection', 'Collection Update Site', 'http://jsitepoint.com/update/update.xml', 2); $manifest->addSection('updateservers', $server); // Tables $tables = new \GreenCape\Manifest\TableSection(); $tables->addTable('#__alpha_install')->addTable('#__alpha_update', true); $manifest->addSection('tables', $tables); // Dependencies $dependencies = new \GreenCape\Manifest\DependencySection(); $dependencies->addDependency('platform', 'joomla', '=', '1.5'); $manifest->addSection('dependencies', $dependencies); return $manifest; }