blob: 7365a70079b34e33148a0b178c98c1403236a0ba [file] [log] [blame]
/***************************************************************************************************
* Copyright (c) 2005, 2006 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are 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:
* IBM Corporation - initial API and implementation
**************************************************************************************************/
package org.eclipse.jst.jsf.facesconfig.tests.read;
import org.eclipse.emf.common.util.EList;
import org.eclipse.jst.jsf.facesconfig.emf.DescriptionType;
import org.eclipse.jst.jsf.facesconfig.emf.DisplayNameType;
import org.eclipse.jst.jsf.facesconfig.emf.IconType;
import org.eclipse.jst.jsf.facesconfig.emf.NavigationCaseType;
import org.eclipse.jst.jsf.facesconfig.emf.NavigationRuleType;
import org.eclipse.jst.jsf.facesconfig.tests.util.FacesConfigModelUtil;
import org.eclipse.jst.jsf.facesconfig.util.FacesConfigArtifactEdit;
/*
* This Junit class is used to test the FacesConfigFactoryImpl
* class.
*
*/
public class ReadNavigationRuleTestCase extends BaseReadTestCase {
public ReadNavigationRuleTestCase(String name) {
super(name);
}
/*
* The following method is used to test for the existence of at least
* one navigation-rule
*/
public void testSingleNavigationRule() {
FacesConfigArtifactEdit edit = null;
try {
edit = getArtifactEditForRead();
assertNotNull(edit.getFacesConfig());
EList navRules = edit.getFacesConfig().getNavigationRule();
assertTrue(!navRules.isEmpty());
} finally {
if (edit != null) {
edit.dispose();
}
}
}
/**
* Verify that display is populated
*/
public void testDisplayName()
{
FacesConfigArtifactEdit edit = null;
try {
edit = getArtifactEditForRead();
assertNotNull(edit);
EList navRules = edit.getFacesConfig().getNavigationRule();
assertTrue(!navRules.isEmpty());
NavigationRuleType navRule =
FacesConfigModelUtil.
findNavigationHandlerRuleByDisplayName(navRules, "display name 1");
assertNotNull(navRule);
// verify that xml:lang's are being populated
navRule = FacesConfigModelUtil.
findNavigationHandlerRuleByDescriptionText(navRules,
"A navigation rule with lang attributes");
assertNotNull(navRule);
DisplayNameType displayNameType = FacesConfigModelUtil.
findDisplayNameType(navRule.getDisplayName(), "English Display Name");
assertNotNull(displayNameType);
assertEquals("en", displayNameType.getLang());
displayNameType = FacesConfigModelUtil.
findDisplayNameType(navRule.getDisplayName(), "Nom D'Affichage De Francais");
assertNotNull(displayNameType);
assertEquals("fr", displayNameType.getLang());
} finally {
if (edit != null) {
edit.dispose();
}
}
}
// Test for the Descirption
public void testNonEmptyDescription() {
FacesConfigArtifactEdit edit = null;
try {
edit = getArtifactEditForRead();
assertNotNull(edit);
EList navRules = edit.getFacesConfig().getNavigationRule();
assertTrue(!navRules.isEmpty());
NavigationRuleType navRule =
FacesConfigModelUtil.
findNavigationHandlerRuleByDescriptionText(navRules,
"Descri 1");
assertNotNull(navRule);
// verify that xml:lang's are being populated
navRule = FacesConfigModelUtil.
findNavigationHandlerRuleByDescriptionText(navRules,
"A navigation rule with lang attributes");
assertNotNull(navRule);
DescriptionType descType = FacesConfigModelUtil.
findDescriptionType(navRule.getDescription(), "A navigation rule with lang attributes");
assertNotNull(descType);
assertEquals("en", descType.getLang());
descType = FacesConfigModelUtil.
findDescriptionType(navRule.getDescription(), "What color is it?");
assertNotNull(descType);
assertEquals("en-US", descType.getLang());
descType = FacesConfigModelUtil.
findDescriptionType(navRule.getDescription(), "What colour is it?");
assertNotNull(descType);
assertEquals("en-GB", descType.getLang());
descType = FacesConfigModelUtil.
findDescriptionType(navRule.getDescription(), "Quelle couleur est lui?");
assertNotNull(descType);
assertEquals("fr", descType.getLang());
} finally {
if (edit != null) {
edit.dispose();
}
}
}
/*
* Test for the exisence of navigation-cases
*/
public void testNonEmptyNavigationCases() {
FacesConfigArtifactEdit edit = null;
try {
edit = getArtifactEditForRead();
assertNotNull(edit.getFacesConfig());
EList navRules = edit.getFacesConfig().getNavigationRule();
assertTrue(!navRules.isEmpty());
// test first navigation rule
NavigationRuleType navRule =
FacesConfigModelUtil
.findNavigationHandlerRuleByDisplayName
(navRules, "display name 1");
assertNotNull(navRule);
assertEquals(2, navRule.getNavigationCase().size());
NavigationCaseType navCase = FacesConfigModelUtil.
findNavigationCaseByDisplayName(navRule.getNavigationCase(),
"what display name");
assertNotNull(navCase);
assertNotNull(navCase.getFromAction());
assertEquals("#{from-action}", navCase.getFromAction().getTextContent());
assertNotNull(navCase.getFromOutcome());
assertEquals("drilldown", navCase.getFromOutcome().getTextContent());
assertNotNull(navCase.getToViewId());
assertEquals("/edit.jsp", navCase.getToViewId().getTextContent());
assertNotNull(navCase.getRedirect());
navCase = FacesConfigModelUtil.
findNavigationCaseByDisplayName(navRule.getNavigationCase(),
"second navigation case");
assertNotNull(navCase);
assertNotNull(navCase.getFromAction());
assertEquals("#{action2}", navCase.getFromAction().getTextContent());
assertNotNull(navCase.getFromOutcome());
assertEquals("outcome2", navCase.getFromOutcome().getTextContent());
assertNotNull(navCase.getToViewId());
assertEquals("/edit2.jsp", navCase.getToViewId().getTextContent());
assertNull(navCase.getRedirect());
// test second navigation rule
navRule =
FacesConfigModelUtil
.findNavigationHandlerRuleByDisplayName
(navRules, "English Display Name");
assertNotNull(navRule);
navCase = FacesConfigModelUtil.
findNavigationCaseByDisplayName(navRule.getNavigationCase(),
"second navigation rule navcase");
assertNotNull(navCase);
assertNotNull(navCase.getFromAction());
assertEquals("#{action3}", navCase.getFromAction().getTextContent());
assertNotNull(navCase.getFromOutcome());
assertEquals("outcome3", navCase.getFromOutcome().getTextContent());
assertNotNull(navCase.getToViewId());
assertEquals("/edit3.jsp", navCase.getToViewId().getTextContent());
} finally {
if (edit != null) {
edit.dispose();
}
}
}
/*
* assert the existence of icon
*/
public void testNonEmptyIcon() {
FacesConfigArtifactEdit edit = null;
try {
edit = getArtifactEditForRead();
assertNotNull(edit.getFacesConfig());
EList navRules = edit.getFacesConfig().getNavigationRule();
assertTrue(!navRules.isEmpty());
NavigationRuleType navRule =
FacesConfigModelUtil
.findNavigationHandlerRuleByDisplayName
(navRules, "display name 1");
assertNotNull(navRule);
EList icons = navRule.getIcon();
assertEquals(1, icons.size());
IconType iconType = (IconType) icons.get(0);
assertNotNull(iconType.getSmallIcon());
assertEquals("myicon", iconType.getSmallIcon().getTextContent());
assertNull(iconType.getLargeIcon());
navRule =
FacesConfigModelUtil
.findNavigationHandlerRuleByDisplayName
(navRules, "English Display Name");
assertNotNull(navRule);
icons = navRule.getIcon();
assertEquals(2, icons.size());
IconType icon =
FacesConfigModelUtil.
findIconTypeByLang(icons, null);
assertNotNull(icon);
assertNotNull(icon.getSmallIcon());
assertEquals("small-icon", icon.getSmallIcon().getTextContent());
assertNotNull(icon.getLargeIcon());
assertEquals("large-icon", icon.getLargeIcon().getTextContent());
icon = FacesConfigModelUtil.
findIconTypeByLang(icons, "en");
assertNotNull(icon);
assertNotNull(icon.getSmallIcon());
assertEquals("en_small-icon", icon.getSmallIcon().getTextContent());
assertNotNull(icon.getLargeIcon());
assertEquals("en_large-icon", icon.getLargeIcon().getTextContent());
} finally {
if (edit != null) {
edit.dispose();
}
}
}
public void testFromViewIdType()
{
FacesConfigArtifactEdit edit = null;
try {
edit = getArtifactEditForRead();
assertNotNull(edit.getFacesConfig());
EList navRules = edit.getFacesConfig().getNavigationRule();
assertTrue(!navRules.isEmpty());
NavigationRuleType navRule =
FacesConfigModelUtil
.findNavigationHandlerRuleByDisplayName
(navRules, "display name 1");
assertNotNull(navRule);
assertEquals("/Page1.jsp",navRule.getFromViewId().getTextContent());
navRule =
FacesConfigModelUtil
.findNavigationHandlerRuleByDisplayName
(navRules, "English Display Name");
assertNotNull(navRule);
assertEquals("/Page1.jsp",navRule.getFromViewId().getTextContent());
}
finally
{
if (edit != null) {
edit.dispose();
}
}
}
}