/******************************************************************************* * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Exadel, Inc. and Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.jsf.kb.test; import junit.framework.TestCase; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.ResourcesPlugin; import org.jboss.tools.jst.web.kb.IKbProject; import org.jboss.tools.jst.web.kb.internal.KbProject; import org.jboss.tools.jst.web.kb.internal.taglib.myfaces.MyFacesTagLibrary; import org.jboss.tools.jst.web.kb.taglib.IComponent; import org.jboss.tools.jst.web.kb.taglib.ITagLibrary; import org.jboss.tools.test.util.JUnitUtils; public class MyFacesKbModelTest extends TestCase { protected IProject project = null; protected boolean makeCopy = true; public MyFacesKbModelTest() { super("MyFaces Kb Model Test"); } public void setUp() throws Exception { project = ResourcesPlugin.getWorkspace().getRoot().getProject("MyFaces"); assertNotNull("Can't load TestKbModel", project); //$NON-NLS-1$ } private IKbProject getKbProject() { IKbProject kbProject = null; try { kbProject = (IKbProject)project.getNature(IKbProject.NATURE_ID); } catch (Exception e) { JUnitUtils.fail("Cannot get seam nature.",e); } return kbProject; } public void testKbProjectObjects() { IKbProject kbProject = getKbProject(); assertNotNull(kbProject); ITagLibrary[] ls = kbProject.getTagLibraries("http://java.sun.com/jsf/facelets"); assertEquals(1, ls.length); assertTrue(ls[0] instanceof MyFacesTagLibrary); MyFacesTagLibrary faceletsTagLib = (MyFacesTagLibrary)ls[0]; String[] faceletTags = {"component", "fragment", "composition", "decorate", "define", "include", "insert", "param"}; for (String tag: faceletTags) { assertNotNull(faceletsTagLib.getComponent(tag)); } MyFacesTagLibrary coreTagLib = null; ls = kbProject.getTagLibraries("http://java.sun.com/jsf/core"); for (int i = 0; i < ls.length; i++) { if(ls[i] instanceof MyFacesTagLibrary) { coreTagLib = (MyFacesTagLibrary)ls[i]; } } assertNotNull(coreTagLib); String[] coreTags = {"event", "metadata"}; for (String tag: coreTags) { IComponent component = null; for (int i = 0; i < ls.length; i++) { if(ls[i] instanceof MyFacesTagLibrary) { coreTagLib = (MyFacesTagLibrary)ls[i]; component = coreTagLib.getComponent(tag); } if(component != null) break; } assertNotNull("Cannot find tag '" + tag + "'", component); } assertEquals(2, coreTagLib.getComponent("event").getAttributes().length); } public void testReload() { IKbProject kbProject = getKbProject(); ((KbProject)kbProject).reload(); testKbProjectObjects(); } }