/*******************************************************************************
* 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.seam.ui.test.el;
import java.util.ArrayList;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.QualifiedName;
import org.jboss.tools.jst.jsp.test.openon.HyperlinkTestUtil;
import org.jboss.tools.jst.jsp.test.openon.HyperlinkTestUtil.TestHyperlink;
import org.jboss.tools.jst.jsp.test.openon.HyperlinkTestUtil.TestRegion;
import org.jboss.tools.jst.web.ui.internal.text.ext.hyperlink.ELHyperlink;
import org.jboss.tools.jst.web.ui.internal.text.ext.hyperlink.ELHyperlinkDetector;
import org.jboss.tools.jst.web.ui.internal.text.ext.hyperlink.ELVarListHyperlink;
import org.jboss.tools.test.util.TestProjectProvider;
public class ELExprPartitionerTest extends TestCase {
TestProjectProvider provider = null;
IProject project = null;
boolean makeCopy = false;
private static final String PROJECT_NAME = "numberguess";
private static final String PAGE_NAME = "/web/giveup.jspx";
public static Test suite() {
return new TestSuite(ELExprPartitionerTest.class);
}
public static final QualifiedName IS_KB_NATURES_CHECK_NEED = new QualifiedName(
"", "Is KB natures check"); //$NON-NLS-1$
public static final QualifiedName IS_JSF_NATURES_CHECK_NEED = new QualifiedName(
"", "Is JSF natures check"); //$NON-NLS-1$
public static final QualifiedName IS_JSF_CHECK_NEED = new QualifiedName(
"", "Is JSF check"); //$NON-NLS-1$
private String isKbNatureCheck = null;
private String isJsfNatureCheck = null;
private String isJsfCheck = null;
public void setUp() throws Exception {
//System.out.println(">>>> ELExprPartitionerTest >>>>");
provider = new TestProjectProvider("org.jboss.tools.seam.ui.test", "projects/" + PROJECT_NAME, PROJECT_NAME, makeCopy);
project = provider.getProject();
Throwable exception = null;
assertNull("An exception caught: " + (exception != null? exception.getMessage() : ""), exception);
if (project != null) {
isKbNatureCheck = project.getPersistentProperty(IS_KB_NATURES_CHECK_NEED);
// System.out.println("Before: Is KB natures check: '" + isKbNatureCheck + "'");
project.setPersistentProperty(IS_KB_NATURES_CHECK_NEED, //$NON-NLS-1$
Boolean.toString(false));
isJsfNatureCheck = project.getPersistentProperty(IS_JSF_NATURES_CHECK_NEED);
// System.out.println("Before: Is JSF natures check: '" + isJsfNatureCheck + "'");
project.setPersistentProperty(IS_JSF_NATURES_CHECK_NEED, //$NON-NLS-1$
Boolean.toString(false));
isJsfCheck = project.getPersistentProperty(IS_JSF_CHECK_NEED);
// System.out.println("Before: Is JSF check: '" + isJsfCheck + "'");
project.setPersistentProperty(IS_JSF_CHECK_NEED, //$NON-NLS-1$
Boolean.toString(false));
// System.out.println("While Testing: Is KB natures check: '" + project.getPersistentProperty(IS_KB_NATURES_CHECK_NEED) + "'");
// System.out.println("While Testing: Is JSF natures check: '" + project.getPersistentProperty(IS_JSF_NATURES_CHECK_NEED) + "'");
// System.out.println("While Testing: Is JSF check: '" + project.getPersistentProperty(IS_JSF_CHECK_NEED) + "'");
}
}
protected void tearDown() throws Exception {
if (project != null) {
project.setPersistentProperty(IS_KB_NATURES_CHECK_NEED, //$NON-NLS-1$
isKbNatureCheck);
// System.out.println("Restored default: Is KB natures check: '" + project.getPersistentProperty(IS_KB_NATURES_CHECK_NEED) + "'");
project.setPersistentProperty(IS_JSF_NATURES_CHECK_NEED, //$NON-NLS-1$
isJsfNatureCheck);
// System.out.println("Restored default: Is JSF natures check: '" + project.getPersistentProperty(IS_JSF_NATURES_CHECK_NEED) + "'");
project.setPersistentProperty(IS_JSF_CHECK_NEED, //$NON-NLS-1$
isJsfCheck);
// System.out.println("Restored default: Is JSF check: '" + project.getPersistentProperty(IS_JSF_CHECK_NEED) + "'");
}
if(provider != null) {
provider.dispose();
}
//System.out.println("<<<< ELExprPartitionerTest <<<<");
}
public void testELExprPartitioner() throws Exception{
ArrayList<TestRegion> regionList = new ArrayList<TestRegion>();
regionList.add(new TestRegion("#{", new TestHyperlink[]{}));
regionList.add(new TestRegion("Messag", new TestHyperlink[]{new TestHyperlink(ELHyperlink.class, "Open bundle 'demo.bundle.Messages'", "Messages.properties")}));
regionList.add(new TestRegion("questio", new TestHyperlink[]{new TestHyperlink(ELHyperlink.class, "Open property 'question' of bundle 'demo.bundle.Messages'", "Messages.properties")}));
regionList.add(new TestRegion("#{", new TestHyperlink[]{}));
regionList.add(new TestRegion("Messag", new TestHyperlink[]{new TestHyperlink(ELHyperlink.class, "Open bundle 'demo.bundle.Messages'", "Messages.properties")}));
regionList.add(new TestRegion("questio", new TestHyperlink[]{new TestHyperlink(ELHyperlink.class, "Open property 'question' of bundle 'demo.bundle.Messages'", "Messages.properties")}));
regionList.add(new TestRegion("#{", new TestHyperlink[]{}));
regionList.add(new TestRegion("numberGues", new TestHyperlink[]{new TestHyperlink(ELHyperlink.class, "Open 'NumberGuess - org.jboss.seam.example.numberguess'", "NumberGuess.java")}));
regionList.add(new TestRegion("possibilitie", new TestHyperlink[]{new TestHyperlink(ELHyperlink.class, "Open 'NumberGuess.getPossibilities() - org.jboss.seam.example.numberguess'", "NumberGuess.java")}));
regionList.add(new TestRegion("numberGues", new TestHyperlink[]{new TestHyperlink(ELHyperlink.class, "Open 'NumberGuess - org.jboss.seam.example.numberguess'", "NumberGuess.java")}));
regionList.add(new TestRegion("remainingGuesse", new TestHyperlink[]{new TestHyperlink(ELHyperlink.class, "Open 'NumberGuess.getRemainingGuesses() - org.jboss.seam.example.numberguess'", "NumberGuess.java")}));
regionList.add(new TestRegion("#{", new TestHyperlink[]{}));
regionList.add(new TestRegion("Messag", new TestHyperlink[]{new TestHyperlink(ELHyperlink.class, "Open bundle 'demo.bundle.Messages'", "Messages.properties")}));
regionList.add(new TestRegion("info_star", new TestHyperlink[]{new TestHyperlink(ELHyperlink.class, "Open property 'info_start' of bundle 'demo.bundle.Messages'", "Messages.properties")}));
regionList.add(new TestRegion("#{", new TestHyperlink[]{}));
regionList.add(new TestRegion("numberGues", new TestHyperlink[]{new TestHyperlink(ELHyperlink.class, "Open 'NumberGuess - org.jboss.seam.example.numberguess'", "NumberGuess.java")}));
regionList.add(new TestRegion("remainingGuesse", new TestHyperlink[]{new TestHyperlink(ELHyperlink.class, "Open 'NumberGuess.getRemainingGuesses() - org.jboss.seam.example.numberguess'", "NumberGuess.java")}));
regionList.add(new TestRegion("#{", new TestHyperlink[]{}));
regionList.add(new TestRegion("Messag", new TestHyperlink[]{new TestHyperlink(ELHyperlink.class, "Open bundle 'demo.bundle.Messages'", "Messages.properties")}));
regionList.add(new TestRegion("info_finis", new TestHyperlink[]{new TestHyperlink(ELHyperlink.class, "Open property 'info_finish' of bundle 'demo.bundle.Messages'", "Messages.properties")}));
regionList.add(new TestRegion("#{", new TestHyperlink[]{}));
regionList.add(new TestRegion("Messag", new TestHyperlink[]{new TestHyperlink(ELHyperlink.class, "Open bundle 'demo.bundle.Messages'", "Messages.properties")}));
regionList.add(new TestRegion("button_ye", new TestHyperlink[]{new TestHyperlink(ELHyperlink.class, "Open property 'button_yes' of bundle 'demo.bundle.Messages'", "Messages.properties")}));
regionList.add(new TestRegion("#{", new TestHyperlink[]{}));
regionList.add(new TestRegion("Messag", new TestHyperlink[]{new TestHyperlink(ELHyperlink.class, "Open bundle 'demo.bundle.Messages'", "Messages.properties")}));
regionList.add(new TestRegion("button_n", new TestHyperlink[]{new TestHyperlink(ELHyperlink.class, "Open property 'button_no' of bundle 'demo.bundle.Messages'", "Messages.properties")}));
regionList.add(new TestRegion("#{", new TestHyperlink[]{}));
regionList.add(new TestRegion("numberGues", new TestHyperlink[]{new TestHyperlink(ELHyperlink.class, "Open 'NumberGuess - org.jboss.seam.example.numberguess'", "NumberGuess.java")}));
regionList.add(new TestRegion("possibilitie", new TestHyperlink[]{new TestHyperlink(ELHyperlink.class, "Open 'NumberGuess.getPossibilities() - org.jboss.seam.example.numberguess'", "NumberGuess.java")}));
regionList.add(new TestRegion("#{", new TestHyperlink[]{}));
regionList.add(new TestRegion("_localVariabl",
new TestHyperlink[]{
new TestHyperlink(ELHyperlink.class, "Open Definition of '_localVariable' in 'giveup.jspx'"),
new TestHyperlink(ELHyperlink.class, "Open 'Iterator.next() - java.util'")
}));
regionList.add(new TestRegion("intValu", new TestHyperlink[]{new TestHyperlink(ELHyperlink.class, "Open 'Integer.intValue() - java.lang'")}));
HyperlinkTestUtil.checkRegions(project, PAGE_NAME, regionList, new ELHyperlinkDetector());
}
}