### Eclipse Workspace Patch 1.0 #P org.eclipse.pde.ui.tests Index: src/org/eclipse/pde/ui/tests/model/cheatsheet/SimpleCSIntroTestCase.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/model/cheatsheet/SimpleCSIntroTestCase.java,v retrieving revision 1.2 diff -u -r1.2 SimpleCSIntroTestCase.java --- src/org/eclipse/pde/ui/tests/model/cheatsheet/SimpleCSIntroTestCase.java 24 Mar 2008 16:26:00 -0000 1.2 +++ src/org/eclipse/pde/ui/tests/model/cheatsheet/SimpleCSIntroTestCase.java 12 Apr 2008 11:55:36 -0000 @@ -12,12 +12,15 @@ import org.eclipse.pde.internal.core.icheatsheet.simple.*; +/** + * Basic tests. + */ public class SimpleCSIntroTestCase extends AbstractCheatSheetModelTestCase { protected static String INTRO_HREF = "/org.eclipse.platform.doc.user/reference/ref-cheatsheets.htm"; //$NON-NLS-1$ protected static String DESCRIPTION = "some description"; //$NON-NLS-1$ - public void testAddSimpleCSIntro() { + public void testReadSimpleCSIntro() { StringBuffer buffer = new StringBuffer(); buffer.append(""); buffer.append(LF); @@ -32,16 +35,184 @@ ISimpleCS model = fModel.getSimpleCS(); String title = model.getTitle(); assertEquals("Incorrect title", "sample cheatsheet", title); + assertEquals(title, model.getName()); + assertEquals(ISimpleCS.TYPE_CHEAT_SHEET, model.getType()); + assertTrue(model.isRoot()); // check intro ISimpleCSIntro intro = model.getIntro(); assertNotNull(intro); assertEquals(intro.getHref(), INTRO_HREF); + assertNull(intro.getContextId()); + assertEquals(ISimpleCS.TYPE_INTRO, intro.getType()); // check description ISimpleCSDescription description = intro.getDescription(); assertNotNull(description); assertEquals(DESCRIPTION, description.getContent()); + assertEquals(ISimpleCS.TYPE_DESCRIPTION, description.getType()); } + public void testSetModelAttributes() { + setXMLContents(null, LF); + load(); + + ISimpleCS model = fModel.getSimpleCS(); + model.setTitle("Some Title"); + assertEquals("Some Title", model.getTitle()); + + model.setTitle(null); + assertEquals("", model.getTitle()); + + ISimpleCSIntro intro = fModel.getFactory().createSimpleCSIntro(model); + model.setIntro(intro); + assertEquals(intro, model.getIntro()); + } + + public void testSetIntroDescription() { + setXMLContents(null, LF); + load(); + + ISimpleCS model = fModel.getSimpleCS(); + + ISimpleCSIntro intro = fModel.getFactory().createSimpleCSIntro(model); + model.setIntro(intro); + + ISimpleCSDescription description = fModel.getFactory().createSimpleCSDescription(intro); + description.setContent("description content"); + intro.setDescription(description); + + assertEquals("description content", model.getIntro().getDescription().getContent()); + } + + public void testAddSimpleCSItem() { + setXMLContents(null, LF); + load(); + + ISimpleCS model = fModel.getSimpleCS(); + + assertEquals(0, model.getItemCount()); + assertNotNull(model.getItems()); + assertFalse(model.hasItems()); + + ISimpleCSItem item = fModel.getFactory().createSimpleCSItem(model); + item.setTitle("some title"); //$NON-NLS-1$ + + assertEquals(-1, model.indexOfItem(item)); + assertFalse(model.isFirstItem(item)); + assertFalse(model.isLastItem(item)); + + model.addItem(item); + + assertEquals(1, model.getItemCount()); + assertNotNull(model.getItems()); + assertEquals(1, model.getItems().length); + assertTrue(model.hasItems()); + + item = model.getItems()[0]; + + assertEquals("some title", item.getTitle()); + assertTrue(model.isFirstItem(item)); + assertTrue(model.isLastItem(item)); + assertEquals(0, model.indexOfItem(item)); + } + + public void testAddSimpleCSItem2() { + setXMLContents(null, LF); + load(); + + ISimpleCS model = fModel.getSimpleCS(); + + ISimpleCSItem itemA = fModel.getFactory().createSimpleCSItem(model); + itemA.setTitle("title A"); //$NON-NLS-1$ + ISimpleCSItem itemB = fModel.getFactory().createSimpleCSItem(model); + itemB.setTitle("title B"); //$NON-NLS-1$ + + model.addItem(0, itemA); + model.addItem(0, itemB); + + assertTrue(model.isFirstItem(itemB)); + assertTrue(model.isLastItem(itemA)); + } + + public void testRemoveSimpleCSItem() { + StringBuffer buffer = new StringBuffer(); + buffer.append(""); + buffer.append(""); + setXMLContents(buffer, LF); + load(); + + ISimpleCS model = fModel.getSimpleCS(); + + assertEquals(1, model.getItemCount()); + model.removeItem(1); + + assertEquals(0, model.getItemCount()); + } + + public void testRemoveSimpleCSItem2() { + StringBuffer buffer = new StringBuffer(); + buffer.append(""); + buffer.append(""); + buffer.append(""); + setXMLContents(buffer, LF); + load(); + + ISimpleCS model = fModel.getSimpleCS(); + + assertEquals(2, model.getItemCount()); + ISimpleCSItem item = model.getItems()[0]; + assertEquals("item1", item.getTitle()); + model.removeItem(item); + + assertEquals(1, model.getItemCount()); + item = model.getItems()[0]; + assertNotNull(item); + assertEquals("item2", item.getTitle()); + assertEquals(1, model.indexOfItem(model.getItems()[0])); + } + + public void testMoveSimpleCSItem() { + StringBuffer buffer = new StringBuffer(); + buffer.append(""); + buffer.append(""); + buffer.append(""); + setXMLContents(buffer, LF); + load(); + + ISimpleCS model = fModel.getSimpleCS(); + + ISimpleCSItem item1 = model.getItems()[0]; + ISimpleCSItem item2 = model.getItems()[1]; + + assertEquals(0, model.indexOf(model.getIntro())); + assertEquals(1, model.indexOfItem(item1)); + assertEquals(2, model.indexOfItem(item2)); + assertEquals(item2, model.getNextSibling(item1)); + assertEquals(item1, model.getPreviousSibling(item2)); + + model.moveItem(item1, 0); // = don't move + + assertEquals(1, model.indexOfItem(item1)); + assertEquals(2, model.indexOfItem(item2)); + assertEquals(item2, model.getNextSibling(item1)); + assertEquals(item1, model.getPreviousSibling(item2)); + + model.moveItem(item1, +1); + + assertEquals(2, model.indexOfItem(item1)); + assertEquals(1, model.indexOfItem(item2)); + assertEquals(item1, model.getNextSibling(item2)); + assertEquals(item2, model.getPreviousSibling(item1)); + + model.moveItem(item2, -1); + + assertEquals(2, model.indexOfItem(item1)); + assertEquals(0, model.indexOfItem(item2)); + + model.moveItem(item2, -1); // effectively no move, because item2 is already at index 0 + + assertEquals(2, model.indexOfItem(item1)); + assertEquals(0, model.indexOfItem(item2)); + } } Index: src/org/eclipse/pde/ui/tests/model/cheatsheet/AllCheatSheetModelTests.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/model/cheatsheet/AllCheatSheetModelTests.java,v retrieving revision 1.1 diff -u -r1.1 AllCheatSheetModelTests.java --- src/org/eclipse/pde/ui/tests/model/cheatsheet/AllCheatSheetModelTests.java 11 Mar 2008 14:56:08 -0000 1.1 +++ src/org/eclipse/pde/ui/tests/model/cheatsheet/AllCheatSheetModelTests.java 12 Apr 2008 11:55:36 -0000 @@ -18,6 +18,10 @@ public static Test suite() { TestSuite suite = new TestSuite("Test Suite for testing the cheatsheet model"); //$NON-NLS-1$ suite.addTestSuite(SimpleCSIntroTestCase.class); + suite.addTestSuite(SimpleCSItemTestCase.class); + suite.addTestSuite(SimpleCSSubItemTestCase.class); + suite.addTestSuite(SimpleCSItemAPITestCase.class); + suite.addTestSuite(SimpleCSSubItemAPITestCase.class); return suite; } Index: src/org/eclipse/pde/ui/tests/model/cheatsheet/SimpleCSItemAPITestCase.java =================================================================== RCS file: src/org/eclipse/pde/ui/tests/model/cheatsheet/SimpleCSItemAPITestCase.java diff -N src/org/eclipse/pde/ui/tests/model/cheatsheet/SimpleCSItemAPITestCase.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/pde/ui/tests/model/cheatsheet/SimpleCSItemAPITestCase.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,103 @@ +/******************************************************************************* + * Copyright (c) 2008 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.pde.ui.tests.model.cheatsheet; + +import org.eclipse.pde.internal.core.icheatsheet.simple.*; + +/** + * Cheatsheet items tests for API-generated models. + * + */ +public class SimpleCSItemAPITestCase extends CheatSheetModelTestCase { + + protected void setUp() throws Exception { + super.setUp(); + setXMLContents(new StringBuffer(), LF); + load(); + } + + public void testSimpleCSItemTestCase() { + simpleCSItemTestCase(""); + } + + public void testSimpleCSItemTestCaseSpace() { + simpleCSItemTestCase(" "); + } + + public void testSimpleCSItemTestCaseCR() { + simpleCSItemTestCase(CR); + } + + public void testSimpleCSItemTestCaseLF() { + simpleCSItemTestCase(LF); + } + + public void testSimpleCSItemTestCaseCRLF() { + simpleCSItemTestCase(CRLF); + } + + public void simpleCSItemTestCase(String newline) { + ISimpleCSItem item = createComplexCSItem(); + + ISimpleCS model = process(item.toString(), newline); + + validateItemsCount(1, model); + item = model.getItems()[0]; + + validateComplexCSItem(item); + } + + public void testItemActionTestCase() { + ISimpleCSItem item = createComplexCSItem(); + item.setExecutable(createAction()); + + ISimpleCS model = process(item.toString(), LF); + + validateItemsCount(1, model); + item = model.getItems()[0]; + + validateComplexCSItem(item); + validateAction(item.getExecutable()); + } + + public void testItemCommandTestCase() { + ISimpleCSItem item = createComplexCSItem(); + item.setExecutable(createCommand()); + + ISimpleCS model = process(item.toString(), LF); + + validateItemsCount(1, model); + item = model.getItems()[0]; + + validateComplexCSItem(item); + validateCommand(item.getExecutable()); + } + + public void testItemPerformWhenTestCase() { + ISimpleCSItem item = createComplexCSItem(); + item.setExecutable(createPerformWhen()); + + ISimpleCS model = process(item.toString(), LF); + + validateItemsCount(1, model); + item = model.getItems()[0]; + + validateComplexCSItem(item); + validatePerformWhen(item.getExecutable()); + } + + public ISimpleCS process(String buffer, String newline) { + setXMLContents(new StringBuffer(buffer), newline); + load(); + + return fModel.getSimpleCS(); + } +} Index: src/org/eclipse/pde/ui/tests/model/cheatsheet/SimpleCSItemTestCase.java =================================================================== RCS file: src/org/eclipse/pde/ui/tests/model/cheatsheet/SimpleCSItemTestCase.java diff -N src/org/eclipse/pde/ui/tests/model/cheatsheet/SimpleCSItemTestCase.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/pde/ui/tests/model/cheatsheet/SimpleCSItemTestCase.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,99 @@ +/******************************************************************************* + * Copyright (c) 2008 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.pde.ui.tests.model.cheatsheet; + +import org.eclipse.pde.internal.core.icheatsheet.simple.ISimpleCS; +import org.eclipse.pde.internal.core.icheatsheet.simple.ISimpleCSItem; + +/** + * Cheatsheet items tests for XML-generated models. + * + */ +public class SimpleCSItemTestCase extends CheatSheetModelTestCase { + + public void testSimpleCSItemTestCase() { + simpleCSItemTestCase(""); + } + + public void testSimpleCSItemTestCaseSpace() { + simpleCSItemTestCase(" "); + } + + public void testSimpleCSItemTestCaseCR() { + simpleCSItemTestCase(CR); + } + + public void testSimpleCSItemTestCaseLF() { + simpleCSItemTestCase(LF); + } + + public void testSimpleCSItemTestCaseCRLF() { + simpleCSItemTestCase(CRLF); + } + + public void simpleCSItemTestCase(String newline) { + StringBuffer buffer = createComplexCSItem("", newline); + + ISimpleCS model = process(buffer, newline); + + validateItemsCount(1, model); + ISimpleCSItem item = model.getItems()[0]; + + validateComplexCSItem(item); + } + + public void testItemActionTestCase() { + String action = createAction(LF); + StringBuffer buffer = createComplexCSItem(action, LF); + + ISimpleCS model = process(buffer, LF); + + validateItemsCount(1, model); + ISimpleCSItem item = model.getItems()[0]; + + validateComplexCSItem(item); + validateAction(item.getExecutable()); + } + + public void testItemCommandTestCase() { + String command = createCommand(LF); + StringBuffer buffer = createComplexCSItem(command, LF); + + ISimpleCS model = process(buffer, LF); + + validateItemsCount(1, model); + ISimpleCSItem item = model.getItems()[0]; + + validateComplexCSItem(item); + validateCommand(item.getExecutable()); + } + + public void testItemPerformWhenTestCase() { + String command = createPerformWhen("", LF); + StringBuffer buffer = createComplexCSItem(command, LF); + + ISimpleCS model = process(buffer, LF); + + validateItemsCount(1, model); + ISimpleCSItem item = model.getItems()[0]; + + validateComplexCSItem(item); + validatePerformWhen(item.getExecutable()); + } + + public ISimpleCS process(StringBuffer buffer, String newline) { + setXMLContents(buffer, newline); + load(); + + return fModel.getSimpleCS(); + } + +} Index: src/org/eclipse/pde/ui/tests/model/cheatsheet/CheatSheetModelTestCase.java =================================================================== RCS file: src/org/eclipse/pde/ui/tests/model/cheatsheet/CheatSheetModelTestCase.java diff -N src/org/eclipse/pde/ui/tests/model/cheatsheet/CheatSheetModelTestCase.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/pde/ui/tests/model/cheatsheet/CheatSheetModelTestCase.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,273 @@ +/******************************************************************************* + * Copyright (c) 2008 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.pde.ui.tests.model.cheatsheet; + +import org.eclipse.pde.internal.core.icheatsheet.simple.*; + +/** + * Provides helper methods to create and validate cheatsheet model elements. + * Two sets of factory methods are provided: ones that generate valid cheatsheat + * XML tags and second that build cheatsheet model using API. Both generate the same data + * that can be validated using validate* methods. + * + */ +public class CheatSheetModelTestCase extends AbstractCheatSheetModelTestCase { + + protected ISimpleCSAction createAction() { + ISimpleCSAction action = fModel.getFactory().createSimpleCSAction(null); + action.setClazz("org.eclipse.some.Clazz"); + action.setPluginId("org.eclipse.pde.plugin.xyz"); + action.setParam("param1.value", 1); + action.setParam("20", 2); + return action; + } + + protected ISimpleCSPerformWhen createPerformWhen() { + ISimpleCSPerformWhen performWhen = fModel.getFactory().createSimpleCSPerformWhen(null); + performWhen.setCondition("some.example.condition"); + return performWhen; + } + + protected ISimpleCSCommand createCommand() { + ISimpleCSCommand action = fModel.getFactory().createSimpleCSCommand(null); + action.setRequired(true); + action.setSerialization("org.eclipse.my.command"); + return action; + } + + protected ISimpleCSItem createComplexCSItem() { + ISimpleCSItem item = fModel.getFactory().createSimpleCSItem(null); + item.setSkip(true); + item.setTitle("Title"); + item.setDialog(true); + + ISimpleCSDescription description = fModel.getFactory().createSimpleCSDescription(item); + description.setContent("Description1"); + item.setDescription(description); + + ISimpleCSOnCompletion onCompletion = fModel.getFactory().createSimpleCSOnCompletion(item); + onCompletion.setContent("On.Completion.Contents"); + item.setOnCompletion(onCompletion); + + return item; + } + + protected ISimpleCSSubItemObject createConditionalSubitem() { + ISimpleCSConditionalSubItem subitem = fModel.getFactory().createSimpleCSConditionalSubItem(null); + subitem.setCondition("please.do"); + return subitem; + } + + protected StringBuffer createSimpleCSItem(ISimpleCSSubItemObject[] subitems) { + ISimpleCSItem item = fModel.getFactory().createSimpleCSItem(null); + item.setTitle("Title"); + for (int i = 0; subitems != null && i < subitems.length; i++) { + item.addSubItem(subitems[i]); + } + + return new StringBuffer(item.toString()); + } + + protected ISimpleCSSubItem createSubItem() { + ISimpleCSSubItem subitem = fModel.getFactory().createSimpleCSSubItem(null); + subitem.setLabel("label1"); + subitem.setSkip(true); + subitem.setWhen("always"); + + return subitem; + } + + protected ISimpleCSRepeatedSubItem createRepeatedSubItem() { + ISimpleCSRepeatedSubItem subitem = fModel.getFactory().createSimpleCSRepeatedSubItem(null); + subitem.setValues("repeat.value"); + return subitem; + } + + protected StringBuffer createSimpleCSItem(String subitems, String newline) { + StringBuffer buffer = new StringBuffer(); + buffer.append("").append(newline); + buffer.append(subitems); + buffer.append("").append(newline); + return buffer; + } + + protected StringBuffer createComplexCSItem(String children, String newline) { + StringBuffer buffer = new StringBuffer(); + buffer.append("").append(newline); + buffer.append("").append(newline); + buffer.append("Description1").append(newline); + buffer.append("").append(newline); + buffer.append("").append(newline); + buffer.append("On.Completion.Contents").append(newline); + buffer.append("").append(newline); + buffer.append(children); + buffer.append("").append(newline); + return buffer; + } + + protected String createAction(String newline) { + StringBuffer buffer = new StringBuffer(); + buffer.append("").append(newline); + return buffer.toString(); + } + + protected String createPerformWhen(String executables, String newline) { + StringBuffer buffer = new StringBuffer(); + buffer.append("").append(newline); + buffer.append(executables).append(newline); + buffer.append("").append(newline); + return buffer.toString(); + } + + protected String createCommand(String newline) { + StringBuffer buffer = new StringBuffer(); + buffer.append("").append(newline); + return buffer.toString(); + } + + protected String createSubItem(String children, String newline) { + StringBuffer buffer = new StringBuffer(); + buffer.append("").append(newline); + buffer.append(children); + buffer.append("").append(newline); + return buffer.toString(); + } + + protected String createRepeatedSubItem(String children, String newline) { + StringBuffer buffer = new StringBuffer(); + buffer.append("").append(newline); + buffer.append(children); + buffer.append("").append(newline); + return buffer.toString(); + } + + protected String createConditionalSubItem(String children, String newline) { + StringBuffer buffer = new StringBuffer(); + buffer.append("").append(newline); + buffer.append(children); + buffer.append("").append(newline); + return buffer.toString(); + } + + protected void validateComplexCSItem(ISimpleCSItem item) { + assertTrue(item.getDialog()); + assertTrue(item.getSkip()); + assertEquals("Title", item.getTitle()); + + ISimpleCSDescription description = item.getDescription(); + assertNotNull(description); + assertEquals(ISimpleCS.TYPE_DESCRIPTION, description.getType()); + assertEquals(description.getContent(), description.getName()); + assertEquals("Description1", description.getContent()); + + ISimpleCSOnCompletion onCompletion = item.getOnCompletion(); + assertNotNull(onCompletion); + assertEquals(ISimpleCS.TYPE_ON_COMPLETION, onCompletion.getType()); + assertEquals(ISimpleCS.ELEMENT_ONCOMPLETION, onCompletion.getName()); + assertEquals("On.Completion.Contents", onCompletion.getContent()); + } + + protected void validateSubItem(ISimpleCSSubItemObject subitem) { + assertTrue(subitem instanceof ISimpleCSSubItem); + assertEquals(ISimpleCSConstants.TYPE_SUBITEM, subitem.getType()); + ISimpleCSSubItem simpleSubitem = (ISimpleCSSubItem) subitem; + assertEquals("label1", simpleSubitem.getLabel()); + assertEquals("label1", simpleSubitem.getName()); + assertTrue(simpleSubitem.getSkip()); + assertEquals("always", simpleSubitem.getWhen()); + } + + protected void validateRepeatedSubItem(ISimpleCSSubItemObject subitem) { + assertTrue(subitem instanceof ISimpleCSRepeatedSubItem); + assertEquals(ISimpleCSConstants.TYPE_REPEATED_SUBITEM, subitem.getType()); + assertEquals("repeat.value", ((ISimpleCSRepeatedSubItem) subitem).getValues()); + } + + protected void validateConditionalSubItem(ISimpleCSSubItemObject subitem) { + assertTrue(subitem instanceof ISimpleCSConditionalSubItem); + assertEquals(ISimpleCSConstants.TYPE_CONDITIONAL_SUBITEM, subitem.getType()); + assertEquals("please.do", ((ISimpleCSConditionalSubItem) subitem).getCondition()); + } + + protected void validateSubItemsCount(int expected, ISimpleCSItem item) { + assertTrue(item.hasSubItems()); + assertEquals(expected, item.getSubItemCount()); + ISimpleCSSubItemObject[] subitems = item.getSubItems(); + assertNotNull(subitems); + assertEquals(expected, subitems.length); + } + + protected void validateItemsCount(int expected, ISimpleCS model) { + assertTrue(model.hasItems()); + assertEquals(expected, model.getItemCount()); + ISimpleCSItem[] items = model.getItems(); + assertEquals(expected, items.length); + } + + protected void validateAction(ISimpleCSRunContainerObject executable) { + assertNotNull(executable); + assertTrue(executable instanceof ISimpleCSAction); + ISimpleCSAction action = (ISimpleCSAction) executable; + + String[] params = action.getParams(); + assertNotNull(params); + assertEquals(2, params.length); + assertEquals("param1.value", params[0]); + assertEquals("20", params[1]); + + assertEquals("org.eclipse.some.Clazz", action.getClazz()); + assertEquals("org.eclipse.pde.plugin.xyz", action.getPluginId()); + assertEquals(null, action.getParam(0)); // params are indexed starting with 1 + assertEquals("param1.value", action.getParam(1)); + assertEquals("20", action.getParam(2)); + assertEquals(null, action.getParam(3)); + } + + protected void validateCommand(ISimpleCSRunContainerObject executable) { + assertNotNull(executable); + assertTrue(executable instanceof ISimpleCSCommand); + ISimpleCSCommand command = (ISimpleCSCommand) executable; + + assertTrue(command.getRequired()); + assertEquals("org.eclipse.my.command", command.getSerialization()); + } + + protected void validatePerformWhen(ISimpleCSRunContainerObject executable) { + assertNotNull(executable); + assertTrue(executable instanceof ISimpleCSPerformWhen); + ISimpleCSPerformWhen performWhen = (ISimpleCSPerformWhen) executable; + + assertEquals("some.example.condition", performWhen.getCondition()); + } + +} Index: src/org/eclipse/pde/ui/tests/model/cheatsheet/SimpleCSSubItemTestCase.java =================================================================== RCS file: src/org/eclipse/pde/ui/tests/model/cheatsheet/SimpleCSSubItemTestCase.java diff -N src/org/eclipse/pde/ui/tests/model/cheatsheet/SimpleCSSubItemTestCase.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/pde/ui/tests/model/cheatsheet/SimpleCSSubItemTestCase.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,164 @@ +/******************************************************************************* + * Copyright (c) 2008 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.pde.ui.tests.model.cheatsheet; + +import org.eclipse.pde.internal.core.icheatsheet.simple.*; +import org.eclipse.pde.internal.core.text.cheatsheet.simple.SimpleCSSubItem; + +/** + * Cheatsheet subitems tests for XML-generated models. + * + */ +public class SimpleCSSubItemTestCase extends CheatSheetModelTestCase { + + public void testSimpleSubItemTestCase() { + simpleSubItemTestCase(1, LF); + } + + public void testSimpleSubItemCommandTestCase() { + simpleSubItemCommandTestCase(1, LF); + } + + public void testSimpleSubItemActionTestCase() { + simpleSubItemActionTestCase(1, LF); + } + + public void testSimpleRepeatedSubItemTestCase() { + simpleRepeatedSubItemTestCase(1, LF); + } + + public void testSimpleConditionalSubItemTestCase() { + simpleConditionalSubItemTestCase(1, LF); + } + + public void testSimpleSubItemTestCase3() { + simpleSubItemTestCase(3, LF); + } + + public void testSimpleSubItemCommandTestCase3() { + simpleSubItemCommandTestCase(3, LF); + } + + public void testSimpleSubItemActionTestCase3() { + simpleSubItemActionTestCase(3, LF); + } + + public void testSimpleRepeatedSubItemTestCase3() { + simpleRepeatedSubItemTestCase(3, LF); + } + + public void testSimpleConditionalSubItemTestCase3() { + simpleConditionalSubItemTestCase(3, LF); + } + + public void simpleSubItemTestCase(int subitemsCount, String newline) { + StringBuffer buffer = new StringBuffer(); + + for (int i =0; i < subitemsCount; i++) { + String action = createAction(newline); + buffer.append(createSubItem(action, newline)); + } + + ISimpleCSItem item = process(buffer.toString(), newline); + validateSubItemsCount(subitemsCount, item); + + for (int i = 0; i < subitemsCount; i++) { + ISimpleCSSubItemObject subitem = item.getSubItems()[i]; + validateSubItem(subitem); + } + } + + public void simpleSubItemCommandTestCase(int subitemsCount, String newline) { + StringBuffer buffer = new StringBuffer(); + + for (int i =0; i < subitemsCount; i++) { + String action = createCommand(newline); + buffer.append(createSubItem(action, newline)); + } + + ISimpleCSItem item = process(buffer.toString(), newline); + validateSubItemsCount(subitemsCount, item); + + for (int i = 0; i < subitemsCount; i++) { + ISimpleCSSubItemObject subitem = item.getSubItems()[i]; + validateSubItem(subitem); + + SimpleCSSubItem simpleSubitem = (SimpleCSSubItem) subitem; + validateCommand(simpleSubitem.getExecutable()); + } + } + + public void simpleSubItemActionTestCase(int subitemsCount, String newline) { + StringBuffer buffer = new StringBuffer(); + + for (int i =0; i < subitemsCount; i++) { + String action = createAction(newline); + buffer.append(createSubItem(action, newline)); + } + + ISimpleCSItem item = process(buffer.toString(), newline); + validateSubItemsCount(subitemsCount, item); + + for (int i = 0; i < subitemsCount; i++) { + ISimpleCSSubItemObject subitem = item.getSubItems()[i]; + validateSubItem(subitem); + + SimpleCSSubItem simpleSubitem = (SimpleCSSubItem) subitem; + validateAction(simpleSubitem.getExecutable()); + } + } + + public void simpleRepeatedSubItemTestCase(int subitemsCount, String newline) { + StringBuffer buffer = new StringBuffer(); + + for (int i =0; i < subitemsCount; i++) { + buffer.append(createRepeatedSubItem("", newline)); + } + + ISimpleCSItem item = process(buffer.toString(), newline); + + validateSubItemsCount(subitemsCount, item); + + for (int i = 0; i < subitemsCount; i++) { + validateRepeatedSubItem(item.getSubItems()[i]); + } + } + + public void simpleConditionalSubItemTestCase(int subitemsCount, String newline) { + StringBuffer buffer = new StringBuffer(); + + for (int i =0; i < subitemsCount; i++) { + buffer.append(createConditionalSubItem("", newline)); + } + + ISimpleCSItem item = process(buffer.toString(), newline); + + validateSubItemsCount(subitemsCount, item); + + for (int i = 0; i < subitemsCount; i++) { + validateConditionalSubItem(item.getSubItems()[i]); + } + } + + public ISimpleCSItem process(String subitems, String newline) { + StringBuffer buffer = createSimpleCSItem(subitems, newline); + + setXMLContents(buffer, newline); + load(); + + ISimpleCS model = fModel.getSimpleCS(); + + validateItemsCount(1, model); + return model.getItems()[0]; + } + + +} Index: src/org/eclipse/pde/ui/tests/model/cheatsheet/SimpleCSSubItemAPITestCase.java =================================================================== RCS file: src/org/eclipse/pde/ui/tests/model/cheatsheet/SimpleCSSubItemAPITestCase.java diff -N src/org/eclipse/pde/ui/tests/model/cheatsheet/SimpleCSSubItemAPITestCase.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/pde/ui/tests/model/cheatsheet/SimpleCSSubItemAPITestCase.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,171 @@ +/******************************************************************************* + * Copyright (c) 2008 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.pde.ui.tests.model.cheatsheet; + +import org.eclipse.pde.internal.core.icheatsheet.simple.*; +import org.eclipse.pde.internal.core.text.cheatsheet.simple.SimpleCSSubItem; + +/** + * Cheatsheet subitems tests for API-generated models. + * + */ +public class SimpleCSSubItemAPITestCase extends CheatSheetModelTestCase { + + protected void setUp() throws Exception { + super.setUp(); + setXMLContents(new StringBuffer(), LF); + load(); + } + + public void testSimpleSubItemTestCase() { + simpleSubItemTestCase(1, LF); + } + + public void testSimpleSubItemCommandTestCase() { + simpleSubItemCommandTestCase(1, LF); + } + + public void testSimpleSubItemActionTestCase() { + simpleSubItemActionTestCase(1, LF); + } + + public void testSimpleRepeatedSubItemTestCase() { + simpleRepeatedSubItemTestCase(1, LF); + } + + public void testSimpleConditionalSubItemTestCase() { + simpleConditionalSubItemTestCase(1, LF); + } + + public void testSimpleSubItemTestCase3() { + simpleSubItemTestCase(3, LF); + } + + public void testSimpleSubItemCommandTestCase3() { + simpleSubItemCommandTestCase(3, LF); + } + + public void testSimpleSubItemActionTestCase3() { + simpleSubItemActionTestCase(3, LF); + } + + public void testSimpleRepeatedSubItemTestCase3() { + simpleRepeatedSubItemTestCase(3, LF); + } + + public void testSimpleConditionalSubItemTestCase3() { + simpleConditionalSubItemTestCase(3, LF); + } + + public void simpleSubItemTestCase(int subitemsCount, String newline) { + ISimpleCSSubItem[] subitems = new ISimpleCSSubItem[subitemsCount]; + + for (int i =0; i < subitemsCount; i++) { + subitems[i] = createSubItem(); + subitems[i].setExecutable(createCommand()); + } + + ISimpleCSItem item = process(subitems, newline); + + validateSubItemsCount(subitemsCount, item); + + for (int i = 0; i < subitemsCount; i++) { + ISimpleCSSubItemObject subitem = item.getSubItems()[i]; + validateSubItem(subitem); + } + } + + public void simpleSubItemCommandTestCase(int subitemsCount, String newline) { + ISimpleCSSubItem[] subitems = new ISimpleCSSubItem[subitemsCount]; + + for (int i =0; i < subitemsCount; i++) { + subitems[i] = createSubItem(); + subitems[i].setExecutable(createCommand()); + } + + ISimpleCSItem item = process(subitems, newline); + + validateSubItemsCount(subitemsCount, item); + + for (int i = 0; i < subitemsCount; i++) { + ISimpleCSSubItemObject subitem = item.getSubItems()[i]; + validateSubItem(subitem); + + SimpleCSSubItem simpleSubitem = (SimpleCSSubItem) subitem; + validateCommand(simpleSubitem.getExecutable()); + } + } + + public void simpleSubItemActionTestCase(int subitemsCount, String newline) { + ISimpleCSSubItem[] subitems = new ISimpleCSSubItem[subitemsCount]; + + for (int i =0; i < subitemsCount; i++) { + subitems[i] = createSubItem(); + subitems[i].setExecutable(createAction()); + } + + ISimpleCSItem item = process(subitems, newline); + validateSubItemsCount(subitemsCount, item); + + for (int i = 0; i < subitemsCount; i++) { + ISimpleCSSubItemObject subitem = item.getSubItems()[i]; + validateSubItem(subitem); + + SimpleCSSubItem simpleSubitem = (SimpleCSSubItem) subitem; + validateAction(simpleSubitem.getExecutable()); + } + } + + public void simpleRepeatedSubItemTestCase(int subitemsCount, String newline) { + ISimpleCSSubItemObject[] subitems = new ISimpleCSSubItemObject[subitemsCount]; + + for (int i =0; i < subitemsCount; i++) { + subitems[i] = createRepeatedSubItem(); + } + + ISimpleCSItem item = process(subitems, newline); + + validateSubItemsCount(subitemsCount, item); + + for (int i = 0; i < subitemsCount; i++) { + validateRepeatedSubItem(item.getSubItems()[i]); + } + } + + public void simpleConditionalSubItemTestCase(int subitemsCount, String newline) { + ISimpleCSSubItemObject[] subitems = new ISimpleCSSubItemObject[subitemsCount]; + + for (int i =0; i < subitemsCount; i++) { + subitems[i] = createConditionalSubitem(); + } + + ISimpleCSItem item = process(subitems, newline); + + validateSubItemsCount(subitemsCount, item); + + for (int i = 0; i < subitemsCount; i++) { + validateConditionalSubItem(item.getSubItems()[i]); + } + } + + public ISimpleCSItem process(ISimpleCSSubItemObject[] subitems, String newline) { + StringBuffer buffer = createSimpleCSItem(subitems); + + setXMLContents(buffer, newline); + load(); + + ISimpleCS model = fModel.getSimpleCS(); + + validateItemsCount(1, model); + + return model.getItems()[0]; + } +}