/******************************************************************************* * 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.jsp.ca.test; import java.util.List; import java.util.Properties; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IncrementalProjectBuilder; import org.eclipse.core.resources.ResourcesPlugin; import org.jboss.tools.common.model.XModel; import org.jboss.tools.common.model.XModelObject; import org.jboss.tools.common.model.project.Watcher; import org.jboss.tools.common.model.util.EclipseResourceUtil; import org.jboss.tools.jst.web.project.list.WebPromptingProvider; import org.jboss.tools.test.util.JobUtils; import org.jboss.tools.test.util.TestProjectProvider; public class WebContentAssistProviderTest extends TestCase { TestProjectProvider provider = null; IProject project = null; boolean makeCopy = true; XModel projectModel; WebPromptingProvider webPromptingProvider; public static Test suite() { return new TestSuite(WebContentAssistProviderTest.class); } public void testTlds() { // Wait all the builders to finish JobUtils.waitForIdle(2000); List tldList = webPromptingProvider.getList(projectModel, WebPromptingProvider.JSF_GET_TAGLIBS, "", null); assertTrue("TLD list does not contain expected TLD in XModel. Available TLDs:" + tldListToString(tldList), tldList.contains("http://jboss.com/products/seam/taglib")); } private String tldListToString(List tldList) { StringBuilder sb = new StringBuilder("{"); for (Object tld : tldList) { sb.append(tld.toString()).append(", "); } sb.append("}"); return sb.toString(); } public void testJsfBeanPropertyList() { // seam beans list List beanList = webPromptingProvider.getList(projectModel, WebPromptingProvider.JSF_BEAN_PROPERTIES, "facesManagedBean", new Properties()); assertTrue("Bean property list does not contain Managed bean property in XModel.", beanList.contains("property1")); } public void testBundles() { // bundle name list List bundleList = webPromptingProvider.getList(projectModel, WebPromptingProvider.JSF_BUNDLES, "", null); assertTrue("Bundle name list does not contain expected name in XModel.", bundleList.contains("org.jboss.seam.example.numberguess.test")); // bundle property list List bundlePropertyList = webPromptingProvider.getList(projectModel, WebPromptingProvider.JSF_BUNDLE_PROPERTIES, "org.jboss.seam.example.numberguess.test", null); assertTrue("Bundle property list does not contain expected property in XModel.", bundlePropertyList.contains("bundleProperty1")); } public void setUp() throws Exception { JobUtils.waitForIdle(10000); project = ResourcesPlugin.getWorkspace().getRoot().getProject("TestsWebArtefacts"); if(!project.exists()) { provider = new TestProjectProvider("org.jboss.tools.jst.web.test", null, "TestsWebArtefacts", makeCopy); project = provider.getProject(); } project.refreshLocal(IResource.DEPTH_INFINITE, null); project.build(IncrementalProjectBuilder.FULL_BUILD,null); XModelObject xmo = EclipseResourceUtil.getObjectByResource(project); assertNotNull("Can't get XModel Object for test project.", xmo); projectModel = xmo.getModel(); Watcher.getInstance(projectModel).forceUpdate(); projectModel.update(); assertNotNull("Can't get XModel for test project.", projectModel); // Wait all the builders to finish JobUtils.waitForIdle(2000); webPromptingProvider = WebPromptingProvider.getInstance(); } protected void tearDown() throws Exception { if(provider != null) { provider.dispose(); } } }