Author: vpakan(a)redhat.com
Date: 2010-11-03 12:26:10 -0400 (Wed, 03 Nov 2010)
New Revision: 26230
Modified:
trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/types/IDELabel.java
trunk/vpe/tests/org.jboss.tools.vpe.ui.bot.test/src/org/jboss/tools/vpe/ui/bot/test/editor/EditingActionsTest.java
trunk/vpe/tests/org.jboss.tools.vpe.ui.bot.test/src/org/jboss/tools/vpe/ui/bot/test/editor/VPEEditorTestCase.java
trunk/vpe/tests/org.jboss.tools.vpe.ui.bot.test/src/org/jboss/tools/vpe/ui/bot/test/tools/SWTBotWebBrowser.java
Log:
Added Tests for Editing via Visual Editor Context Menu.
Modified:
trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/types/IDELabel.java
===================================================================
---
trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/types/IDELabel.java 2010-11-03
15:53:12 UTC (rev 26229)
+++
trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/types/IDELabel.java 2010-11-03
16:26:10 UTC (rev 26230)
@@ -150,6 +150,7 @@
public static final String ADD_PALETTE_GROUP = "Add Palette Group";
public static final String ADD_PALETTE_MACRO = "Add Palette Macro";
public static final String CONFIRMATION = "Confirmation";
+ public static final String USER_SPECIFIED_TAG_TEMPLATE = "User specified tag
template";
}
public class EntityGroup {
@@ -588,4 +589,10 @@
}
+ public static class UserSpecifiedTagTemplateDialog{
+
+ public static final String TAG_FOR_DISPLAY = "Tag for display:";
+
+ }
+
}
Modified:
trunk/vpe/tests/org.jboss.tools.vpe.ui.bot.test/src/org/jboss/tools/vpe/ui/bot/test/editor/EditingActionsTest.java
===================================================================
---
trunk/vpe/tests/org.jboss.tools.vpe.ui.bot.test/src/org/jboss/tools/vpe/ui/bot/test/editor/EditingActionsTest.java 2010-11-03
15:53:12 UTC (rev 26229)
+++
trunk/vpe/tests/org.jboss.tools.vpe.ui.bot.test/src/org/jboss/tools/vpe/ui/bot/test/editor/EditingActionsTest.java 2010-11-03
16:26:10 UTC (rev 26230)
@@ -13,10 +13,17 @@
import java.awt.event.KeyEvent;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEclipseEditor;
+import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
+import org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable;
+import org.eclipse.swtbot.swt.finder.results.VoidResult;
import org.jboss.tools.ui.bot.ext.SWTBotExt;
import org.jboss.tools.ui.bot.ext.Timing;
+import org.jboss.tools.ui.bot.ext.helper.ContextMenuHelper;
import org.jboss.tools.ui.bot.ext.helper.KeyboardHelper;
+import org.jboss.tools.ui.bot.ext.types.IDELabel;
import org.jboss.tools.vpe.ui.bot.test.tools.SWTBotWebBrowser;
import org.mozilla.interfaces.nsIDOMNode;
/**
@@ -41,7 +48,7 @@
private static final String TEST_PAGE_NAME = "EditingActionsTest.jsp";
- private SWTBotEclipseEditor jspTextEditor;
+ private SWTBotEclipseEditor jspEditor;
private SWTBotWebBrowser webBrowser;
public EditingActionsTest() {
@@ -53,12 +60,12 @@
super.setUp();
eclipse.maximizeActiveShell();
createJspPage(EditingActionsTest.TEST_PAGE_NAME);
- jspTextEditor =
botExt.editorByTitle(EditingActionsTest.TEST_PAGE_NAME).toTextEditor();
+ jspEditor = botExt.editorByTitle(EditingActionsTest.TEST_PAGE_NAME).toTextEditor();
webBrowser = new SWTBotWebBrowser(EditingActionsTest.TEST_PAGE_NAME,botExt);
}
/**
- * Insert Tag After Selected Tag
+ * Tests Cut Copy Paste Operations
*/
public void testCutCopyPasteUndo(){
@@ -66,17 +73,17 @@
// Check Copy Functionality
webBrowser.clickContextMenu(node,
SWTBotWebBrowser.COPY_MENU_LABEL);
- jspTextEditor.setFocus();
- jspTextEditor.selectRange(4,18,1);
- jspTextEditor.insertText(4,18,"");
+ jspEditor.setFocus();
+ jspEditor.selectRange(4,18,1);
+ jspEditor.insertText(4,18,"");
webBrowser.clickContextMenu(node,
SWTBotWebBrowser.PASTE_MENU_LABEL);
- jspTextEditor.save();
+ jspEditor.save();
botExt.sleep(Timing.time3S());
- assertSourceEditorContains(stripHTMLSourceText(jspTextEditor.getText()),
+ assertSourceEditorContains(stripHTMLSourceText(jspEditor.getText()),
"<h:inputText/><h:inputText/><h:outputTextvalue=\"outputText\"/><h:inputText/>",
EditingActionsTest.TEST_PAGE);
- assertVisualEditorContainsManyNodes(webBrowser, "INPUT", 6,
EditingActionsTest.TEST_PAGE);
+ assertVisualEditorContainsManyNodes(webBrowser, "INPUT", 6,
EditingActionsTest.TEST_PAGE_NAME);
assertProbelmsViewNoErrors(botExt);
// Check Cut Functionality
node = webBrowser.getDomNodeByTagName("INPUT",0);
@@ -84,65 +91,65 @@
botExt.sleep(Timing.time1S());
webBrowser.clickContextMenu(node,
SWTBotWebBrowser.CUT_MENU_LABEL);
- jspTextEditor.save();
+ jspEditor.save();
botExt.sleep(Timing.time3S());
- assertSourceEditorContains(stripHTMLSourceText(jspTextEditor.getText()),
+ assertSourceEditorContains(stripHTMLSourceText(jspEditor.getText()),
"<body><h:inputText/><h:outputTextvalue=\"outputText\"/><h:inputText/><rich:comboBox>",
- EditingActionsTest.TEST_PAGE);
- assertVisualEditorContainsManyNodes(webBrowser, "INPUT", 5,
EditingActionsTest.TEST_PAGE);
+ EditingActionsTest.TEST_PAGE_NAME);
+ assertVisualEditorContainsManyNodes(webBrowser, "INPUT", 5,
EditingActionsTest.TEST_PAGE_NAME);
assertProbelmsViewNoErrors(botExt);
// Check Paste Functionality
node = webBrowser.getDomNodeByTagName("INPUT",1);
- jspTextEditor.setFocus();
- jspTextEditor.selectRange(6,18,1);
- jspTextEditor.insertText(6,18,"");
+ jspEditor.setFocus();
+ jspEditor.selectRange(6,18,1);
+ jspEditor.insertText(6,18,"");
webBrowser.clickContextMenu(node,
SWTBotWebBrowser.PASTE_MENU_LABEL);
- jspTextEditor.save();
+ jspEditor.save();
botExt.sleep(Timing.time3S());
- assertSourceEditorContains(stripHTMLSourceText(jspTextEditor.getText()),
+ assertSourceEditorContains(stripHTMLSourceText(jspEditor.getText()),
"<h:inputText/><h:outputTextvalue=\"outputText\"/><h:inputText/><h:inputText/>",
- EditingActionsTest.TEST_PAGE);
- assertVisualEditorContainsManyNodes(webBrowser, "INPUT", 6,
EditingActionsTest.TEST_PAGE);
+ EditingActionsTest.TEST_PAGE_NAME);
+ assertVisualEditorContainsManyNodes(webBrowser, "INPUT", 6,
EditingActionsTest.TEST_PAGE_NAME);
assertProbelmsViewNoErrors(botExt);
// Check Undo Functionality
webBrowser.setFocus();
KeyboardHelper.typeKeyCodeUsingAWT(KeyEvent.VK_Z, KeyEvent.VK_CONTROL);
- jspTextEditor.save();
+ jspEditor.save();
botExt.sleep(Timing.time3S());
- assertSourceEditorContains(stripHTMLSourceText(jspTextEditor.getText()),
+ assertSourceEditorContains(stripHTMLSourceText(jspEditor.getText()),
"<h:outputTextvalue=\"outputText\"/><h:inputText/><rich:comboBox>",
- EditingActionsTest.TEST_PAGE);
+ EditingActionsTest.TEST_PAGE_NAME);
KeyboardHelper.typeKeyCodeUsingAWT(KeyEvent.VK_Z, KeyEvent.VK_CONTROL);
- jspTextEditor.save();
+ jspEditor.save();
botExt.sleep(Timing.time3S());
- assertSourceEditorContains(stripHTMLSourceText(jspTextEditor.getText()),
+ assertSourceEditorContains(stripHTMLSourceText(jspEditor.getText()),
"<h:inputText/><h:inputText/><h:outputTextvalue=\"outputText\"/>",
- EditingActionsTest.TEST_PAGE);KeyboardHelper.typeKeyCodeUsingAWT(KeyEvent.VK_Z,
KeyEvent.VK_CONTROL);
- jspTextEditor.save();
+
EditingActionsTest.TEST_PAGE_NAME);KeyboardHelper.typeKeyCodeUsingAWT(KeyEvent.VK_Z,
KeyEvent.VK_CONTROL);
+ jspEditor.save();
botExt.sleep(Timing.time3S());
- assertSourceEditorContains(stripHTMLSourceText(jspTextEditor.getText()),
+ assertSourceEditorContains(stripHTMLSourceText(jspEditor.getText()),
"<body><h:inputText/><h:outputTextvalue=\"outputText\"/>",
- EditingActionsTest.TEST_PAGE);
+ EditingActionsTest.TEST_PAGE_NAME);
// Check Delete Functionality
webBrowser.setFocus();
webBrowser.selectDomNode(webBrowser.getDomNodeByTagName("INPUT",2),0);
botExt.sleep(Timing.time1S());
KeyboardHelper.typeKeyCodeUsingAWT(KeyEvent.VK_DELETE);
- jspTextEditor.save();
+ jspEditor.save();
botExt.sleep(Timing.time3S());
- assertSourceEditorContains(stripHTMLSourceText(jspTextEditor.getText()),
+ assertSourceEditorContains(stripHTMLSourceText(jspEditor.getText()),
"<body><h:inputText/><h:outputTextvalue=\"outputText\"/><h:inputText/></body>",
- EditingActionsTest.TEST_PAGE);
- assertVisualEditorContainsManyNodes(webBrowser, "INPUT", 2,
EditingActionsTest.TEST_PAGE);
+ EditingActionsTest.TEST_PAGE_NAME);
+ assertVisualEditorContainsManyNodes(webBrowser, "INPUT", 2,
EditingActionsTest.TEST_PAGE_NAME);
}
/**
* Inits JSP Page before Tag will be inserted
*/
private nsIDOMNode initJspPageBeforeInserting(String pageText , String nodeText) {
- jspTextEditor.setText(pageText);
- jspTextEditor.save();
+ jspEditor.setText(pageText);
+ jspEditor.save();
botExt.sleep(Timing.time3S());
nsIDOMNode node = webBrowser.getDomNodeByTagName(nodeText, 0);
webBrowser.selectDomNode(node, 0);
@@ -151,7 +158,187 @@
return node;
}
+ /**
+ * Check Replace with Functionality
+ */
+ public void testReplaceWith(){
+ nsIDOMNode node = initJspPageBeforeInserting("<%@ taglib
uri=\"http://java.sun.com/jsf/html\" prefix=\"h\" %>\n" +
+ "<html>\n" +
+ " <body>\n" +
+ " <h:inputText/>\n" +
+ " </body>\n" +
+ "</html>",
+ "INPUT");
+ webBrowser.clickContextMenu(node,
+ SWTBotWebBrowser.REPLACE_WITH_MENU_LABEL,
+ SWTBotWebBrowser.JSF_MENU_LABEL,
+ SWTBotWebBrowser.HTML_MENU_LABEL,
+ SWTBotWebBrowser.H_OUTPUT_TEXT_TAG_MENU_LABEL);
+ jspEditor.save();
+ bot.sleep(Timing.time2S());
+ assertSourceEditorContains(stripHTMLSourceText(jspEditor.getText()),
+ "h:outputText",
+ EditingActionsTest.TEST_PAGE_NAME);
+ assertSourceEditorNotContain(stripHTMLSourceText(jspEditor.getText()),
+ "h:inputText",
+ EditingActionsTest.TEST_PAGE_NAME);
+ assertVisualEditorContainsManyNodes(webBrowser, "SPAN", 1,
EditingActionsTest.TEST_PAGE_NAME);
+ assertVisualEditorContainsManyNodes(webBrowser, "INPUT", 0,
EditingActionsTest.TEST_PAGE_NAME);
+ }
+ public void testSetupTemplateFor(){
+ final String unknownTag = "h:text";
+ jspEditor.setText("<%@ taglib
uri=\"http://java.sun.com/jsf/core\"
prefix=\"f\"%>\n" +
+ "<%@ taglib
uri=\"http://java.sun.com/jsf/html\"
prefix=\"h\"%>\n" +
+ "<html>\n" +
+ " <head>\n" +
+ " <title>Input User Name Page</title>\n" +
+ " </head>\n" +
+ " <body>\n" +
+ " <f:view>\n" +
+ " <" + unknownTag + " value=\"Text to
edit\"/>\n" +
+ " </f:view>\n" +
+ " </body>\n" +
+ "</html>");
+ jspEditor.save();
+ bot.sleep(Timing.time2S());
+ assertVisualEditorContainsNodeWithValue(webBrowser, "h:text",
EditingActionsTest.TEST_PAGE_NAME);
+ nsIDOMNode node = webBrowser.getDomNodeByTagName("DIV", 4);
+ webBrowser.selectDomNode(node, 0);
+ webBrowser.clickContextMenu(node,
+ SWTBotWebBrowser.SETUP_VISUAL_TEMPLATE_FOR_MENU_LABEL + "<" +
unknownTag + ">...");
+ // Test if window for Tag Template definition was properly opened
+ WidgetNotFoundException wnfe = null;
+ try{
+ bot.shell(IDELabel.Shell.USER_SPECIFIED_TAG_TEMPLATE).activate();
+
bot.textWithLabel(IDELabel.UserSpecifiedTagTemplateDialog.TAG_FOR_DISPLAY).setText("tt");
+ bot.button(IDELabel.Button.OK).click();
+ } catch (WidgetNotFoundException wnfetmp){
+ wnfe = wnfetmp;
+ }
+ assertNull("Dialog for User Specified Tag Template does not work properly"
+ wnfe,wnfe);
+ }
+ /**
+ * Tests Parent Tag Menu
+ */
+ public void testParentTagMenu(){
+
+ nsIDOMNode node = initJspPageBeforeInserting("<%@ taglib
uri=\"http://java.sun.com/jsf/core\" prefix=\"f\"%>\n" +
+ "<%@ taglib
uri=\"http://java.sun.com/jsf/html\"
prefix=\"h\"%>\n" +
+ "<html>\n" +
+ " <head>\n" +
+ " <title>Input User Name Page</title>\n" +
+ " </head>\n" +
+ " <body>\n" +
+ " <f:view>\n" +
+ " <h:inputText value=\"Text to edit\"/>\n" +
+ " </f:view>\n" +
+ " </body>\n" +
+ "</html>", "INPUT");
+ webBrowser.selectDomNode(node, 0);
+ final String parentTagFViewLabel = SWTBotWebBrowser.PARENT_TAG_MENU_LABEL + "
(f:view)";
+ final Menu topMenu = webBrowser.getTopMenu(node, parentTagFViewLabel);
+
+ UIThreadRunnable.syncExec(new VoidResult() {
+ public void run() {
+ ContextMenuHelper.clickContextMenu(topMenu, parentTagFViewLabel);
+ // Parent Tag f:view check
+ MenuItem parentTagFViewMenuItem = ContextMenuHelper.getContextMenu(topMenu,
parentTagFViewLabel, false);
+ Menu parentTagFViewMenu =
ContextMenuHelper.showMenuOfMenuItem(parentTagFViewMenuItem);
+ // Parent Tag Body check
+ final String parentTagBodyLabel = SWTBotWebBrowser.PARENT_TAG_MENU_LABEL + "
(body)";
+ MenuItem parentTagBodyMenuItem =
ContextMenuHelper.getContextMenu(parentTagFViewMenu, parentTagBodyLabel, false);
+ Menu parentTagBodyMenu =
ContextMenuHelper.showMenuOfMenuItem(parentTagBodyMenuItem);
+ // Parent Tag HTML check
+ final String parentTagHTMLLabel = SWTBotWebBrowser.PARENT_TAG_MENU_LABEL + "
(html)";
+ MenuItem parentTagHTMLMenuItem =
ContextMenuHelper.getContextMenu(parentTagBodyMenu, parentTagHTMLLabel, false);
+ Menu parentTagHTMLMenu =
ContextMenuHelper.showMenuOfMenuItem(parentTagHTMLMenuItem);
+ // There should by no parent tag anymore
+ String[] menuItemLabels =
ContextMenuHelper.getMenuItemLabels(parentTagHTMLMenu);
+ String menuItemLabelStartingWithParentTag = null;
+ int index = 0;
+ while (index < menuItemLabels.length &&
menuItemLabelStartingWithParentTag == null){
+ if (menuItemLabels[index].startsWith(SWTBotWebBrowser.PARENT_TAG_MENU_LABEL)){
+ menuItemLabelStartingWithParentTag = menuItemLabels[index];
+ }
+ else{
+ index++;
+ }
+ }
+ ContextMenuHelper.hideMenuNonRecursively(parentTagHTMLMenu);
+ ContextMenuHelper.hideMenuNonRecursively(parentTagBodyMenu);
+ ContextMenuHelper.hideMenuNonRecursively(parentTagFViewMenu);
+ ContextMenuHelper.hideMenuNonRecursively(topMenu);
+ assertNull("There has to be no menu item in HTML tag submenu starting with
" + SWTBotWebBrowser.PARENT_TAG_MENU_LABEL +
+ "\nbut there is this one: " + menuItemLabelStartingWithParentTag,
+ menuItemLabelStartingWithParentTag);
+ }
+ });
+
+ }
+
+ /**
+ * Tests Strip Tag Menu
+ */
+ public void testStripTagMenu(){
+
+ nsIDOMNode node = initJspPageBeforeInserting("<%@ taglib
uri=\"http://java.sun.com/jsf/core\" prefix=\"f\"%>\n" +
+ "<%@ taglib
uri=\"http://java.sun.com/jsf/html\"
prefix=\"h\"%>\n" +
+ "<html>\n" +
+ " <head>\n" +
+ " <title>Input User Name Page</title>\n" +
+ " </head>\n" +
+ " <body>\n" +
+ " <f:view>\n" +
+ " <h:inputText value=\"Text to edit\"/>\n" +
+ " </f:view>\n" +
+ " </body>\n" +
+ "</html>", "INPUT");
+ jspEditor.save();
+ bot.sleep(Timing.time2S());
+ webBrowser.selectDomNode(node, 0);
+ webBrowser.clickContextMenu(node,
+ SWTBotWebBrowser.PARENT_TAG_MENU_LABEL + " (f:view)",
+ SWTBotWebBrowser.STRIP_TAG_MENU_LABEL);
+ jspEditor.save();
+ bot.sleep(Timing.time2S());
+ assertSourceEditorNotContain(jspEditor.getText(), "<f:view>",
EditingActionsTest.TEST_PAGE_NAME);
+ // Undo Changes
+ webBrowser.setFocus();
+ KeyboardHelper.typeKeyCodeUsingAWT(KeyEvent.VK_Z, KeyEvent.VK_CONTROL);
+ jspEditor.save();
+ bot.sleep(Timing.time2S());
+ assertSourceEditorContains(jspEditor.getText(), "<f:view>",
EditingActionsTest.TEST_PAGE_NAME);
+ }
+ /**
+ * Tests Select This Tag Menu
+ */
+ public void testSelectThisTagMenu(){
+
+ nsIDOMNode node = initJspPageBeforeInserting("<%@ taglib
uri=\"http://java.sun.com/jsf/core\" prefix=\"f\"%>\n" +
+ "<%@ taglib
uri=\"http://java.sun.com/jsf/html\"
prefix=\"h\"%>\n" +
+ "<html>\n" +
+ " <head>\n" +
+ " <title>Input User Name Page</title>\n" +
+ " </head>\n" +
+ " <body>\n" +
+ " <f:view>\n" +
+ " <h:inputText value=\"Text to edit\"/>\n" +
+ " </f:view>\n" +
+ " </body>\n" +
+ "</html>", "INPUT");
+ jspEditor.save();
+ bot.sleep(Timing.time2S());
+ webBrowser.selectDomNode(node, 0);
+ webBrowser.clickContextMenu(node,
+ SWTBotWebBrowser.PARENT_TAG_MENU_LABEL + " (f:view)",
+ SWTBotWebBrowser.SELECT_THIS_TAG_MENU_LABEL);
+ jspEditor.save();
+ bot.sleep(Timing.time2S());
+ assertSourceEditorContains(stripHTMLSourceText(jspEditor.getText()),
+ "<f:view><h:inputText",
+ EditingActionsTest.TEST_PAGE_NAME);
+ }
@Override
protected void closeUnuseDialogs() {
@@ -163,7 +350,7 @@
}
@Override
protected void tearDown() throws Exception {
- jspTextEditor.close();
+ jspEditor.close();
super.tearDown();
}
}
Modified:
trunk/vpe/tests/org.jboss.tools.vpe.ui.bot.test/src/org/jboss/tools/vpe/ui/bot/test/editor/VPEEditorTestCase.java
===================================================================
---
trunk/vpe/tests/org.jboss.tools.vpe.ui.bot.test/src/org/jboss/tools/vpe/ui/bot/test/editor/VPEEditorTestCase.java 2010-11-03
15:53:12 UTC (rev 26229)
+++
trunk/vpe/tests/org.jboss.tools.vpe.ui.bot.test/src/org/jboss/tools/vpe/ui/bot/test/editor/VPEEditorTestCase.java 2010-11-03
16:26:10 UTC (rev 26230)
@@ -104,6 +104,21 @@
}
/**
+ * Asserts if sourceEditorText of file with fileName does not contain textToNotContain
+ * @param sourceEditorText
+ * @param textToNotContain
+ * @param fileName
+ */
+ protected static void assertSourceEditorNotContain (String sourceEditorText, String
textToNotContain, String fileName){
+
+ assertTrue("File " + fileName
+ + " must not contain string '"
+ + textToNotContain
+ + "' but it does.\nIt is: " + sourceEditorText,
+ !sourceEditorText.contains(textToNotContain));
+
+ }
+ /**
* Asserts if sourceEditorText of file with fileName equals to expectedText
* @param sourceEditorText
* @param expectedText
@@ -173,7 +188,7 @@
String fileName){
assertTrue("Visual Representation of file " + fileName
- + " has to contain noide with "
+ + " has to contain node with "
+ valueToContain
+ " value but it doesn't",
webBrowser.containsNodeWithValue(webBrowser.getMozillaEditor().getDomDocument(),
Modified:
trunk/vpe/tests/org.jboss.tools.vpe.ui.bot.test/src/org/jboss/tools/vpe/ui/bot/test/tools/SWTBotWebBrowser.java
===================================================================
---
trunk/vpe/tests/org.jboss.tools.vpe.ui.bot.test/src/org/jboss/tools/vpe/ui/bot/test/tools/SWTBotWebBrowser.java 2010-11-03
15:53:12 UTC (rev 26229)
+++
trunk/vpe/tests/org.jboss.tools.vpe.ui.bot.test/src/org/jboss/tools/vpe/ui/bot/test/tools/SWTBotWebBrowser.java 2010-11-03
16:26:10 UTC (rev 26230)
@@ -85,6 +85,8 @@
public static final String CUT_MENU_LABEL = "Cut";
public static final String COPY_MENU_LABEL = "Copy";
public static final String PASTE_MENU_LABEL = "Paste";
+ public static final String SETUP_VISUAL_TEMPLATE_FOR_MENU_LABEL = "Setup Visual
Template for ";
+ public static final String SELECT_THIS_TAG_MENU_LABEL = "Select This Tag";
public static final String JSF_MENU_LABEL = "JSF";
public static final String JBOSS_MENU_LABEL = "JBoss";