blob: 1a4d22bf51a6aeafd2edc4e8c3e29c2813f1fb86 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007 Oracle Corporation.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Cameron Bateman/Oracle - initial API and implementation
*
********************************************************************************/
package org.eclipse.jst.jsf.metadata.tests.util;
import java.util.List;
import org.eclipse.core.resources.IFile;
import org.eclipse.jst.jsf.core.JSFVersion;
import org.eclipse.jst.jsf.metadataprocessors.IMetaDataEnabledFeature;
import org.eclipse.jst.jsf.metadataprocessors.MetaDataEnabledProcessingFactory;
import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValue;
import org.eclipse.wst.sse.core.StructuredModelManager;
import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
public abstract class SingleJSPTestCase extends JSPTestCase
{
public static final String FACES_CONFIG_FILE_NAME_1_1 = "/testfiles/web/faces-config_1_1.xml.data";
public static final String FACES_CONFIG_FILE_NAME_1_2 = "/testfiles/web/faces-config_1_2.xml.data";
/**
* The file handle to the JSP in the workspace
*/
protected IFile _testJSP;
/**
* The SSE structured model for the JSP
*/
protected IStructuredModel _structuredModel;
/**
* The SSE structured document for the JSP
*/
protected IStructuredDocument _structuredDocument;
/**
* Name of the test data file containing the JSP source for this test
*/
private final String _srcFileName;
/**
* Name of the file and path where the JSP source should be put in the
* test project
*/
protected final String _destFileName;
protected SingleJSPTestCase(final String srcFileName, final String destFileName, final JSFVersion defaultJSFVersion, final String defaultFacesConfigFile)
{
super(defaultJSFVersion, defaultFacesConfigFile);
_srcFileName = srcFileName;
_destFileName = destFileName;
}
protected void setUp() throws Exception
{
super.setUp();
_testJSP = loadJSP(_srcFileName, _destFileName);
_structuredModel = StructuredModelManager.getModelManager().getModelForRead(_testJSP);
_structuredDocument = _structuredModel.getStructuredDocument();
}
protected void tearDown() throws Exception
{
super.tearDown();
if (_structuredModel != null)
{
_structuredModel.releaseFromRead();
}
}
protected IMetaDataEnabledFeature getProcessor(Class<?> klass, String uri, String tagname, String attrName) {
List<?> ret = MetaDataEnabledProcessingFactory.getInstance().
getAttributeValueRuntimeTypeFeatureProcessors(klass,
getStructuredDocumentContext(_structuredDocument, 1), //just need to establish the project; don't really care about offset. should consider improving API
uri,
tagname,
attrName);
if (ret.isEmpty())
return null;
return (IMetaDataEnabledFeature)ret.get(0);
}
protected void assertPossibleValues(List<?> possibleValues, String[] strings) {
for (int i=0;i < strings.length;i++) {
boolean found = false;
for (int j=0;j < possibleValues.size();j++) {
IPossibleValue val = (IPossibleValue)possibleValues.get(j);
if (strings[i].equals(val.getValue())){
found = true;
break;
}
}
if (! found)
fail(strings[i] + " was not found as a possible value");
}
}
}