[jboss-cvs] jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/editing ...
Christian Bauer
christian at hibernate.org
Tue Dec 18 23:29:24 EST 2007
User: cbauer
Date: 07/12/18 23:29:24
Modified: examples/wiki/src/test/org/jboss/seam/wiki/test/editing
BasicNodeOperations.java
Added: examples/wiki/src/test/org/jboss/seam/wiki/test/editing
EditMenu.java EditMacros.java Linking.java
Commenting.java Tagging.java
DocumentHistoryTests.java Uploading.java
Removed: examples/wiki/src/test/org/jboss/seam/wiki/test/editing
NestedNodes.xml OptionalNodeOperations.java
Log:
Major rewrite of the most of the application
Revision Changes Path
1.5 +76 -256 jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/editing/BasicNodeOperations.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: BasicNodeOperations.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/editing/BasicNodeOperations.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- BasicNodeOperations.java 9 Nov 2007 15:18:13 -0000 1.4
+++ BasicNodeOperations.java 19 Dec 2007 04:29:24 -0000 1.5
@@ -8,45 +8,23 @@
import org.dbunit.operation.DatabaseOperation;
import org.hibernate.StatelessSession;
+import org.hibernate.Session;
import org.hibernate.ejb.HibernateEntityManagerFactory;
-import org.jboss.seam.log.Log;
-import org.jboss.seam.log.Logging;
+import org.jboss.seam.core.Conversation;
+import org.jboss.seam.faces.Redirect;
import org.jboss.seam.wiki.core.action.DirectoryHome;
import org.jboss.seam.wiki.core.action.DocumentHome;
-import org.jboss.seam.wiki.core.dao.NodeDAO;
-import org.jboss.seam.wiki.core.model.Node;
-import org.jboss.seam.wiki.core.nestedset.NestedSetNodeWrapper;
-import org.jboss.seam.wiki.core.nestedset.NestedSetResultTransformer;
+import org.jboss.seam.wiki.core.model.WikiDirectory;
+import org.jboss.seam.wiki.core.model.WikiDocument;
+import org.jboss.seam.wiki.core.model.WikiNode;
import org.jboss.seam.wiki.test.util.DBUnitSeamTest;
-import org.jboss.seam.wiki.util.WikiUtil;
-import org.jboss.seam.core.Conversation;
-import org.jboss.seam.faces.Redirect;
-import org.jboss.seam.Component;
import org.testng.annotations.Test;
-import java.util.Comparator;
-
public class BasicNodeOperations extends DBUnitSeamTest {
- private Log log = Logging.getLog(BasicNodeOperations.class);
-
- private static final Long TEST_WIKI_ROOT_ID = 1l;
-
- private static final Long TEST_DIRECTORY1_ID = 100l;
- private static final Long TEST_DOCUMENT1_ID = 101l;
- private static final Long TEST_DOCUMENT2_ID = 102l;
- private static final Long TEST_DOCUMENT3_ID = 103l;
- private static final Long TEST_DIRECTORY2_ID = 104l;
- private static final Long TEST_DOCUMENT5_ID = 105l;
- private static final Long TEST_DOCUMENT6_ID = 106l;
- private static final Long TEST_DOCUMENT7_ID = 107l;
-
protected void prepareDBUnitOperations() {
beforeTestOperations.add(
- new DataSetOperation("org/jboss/seam/wiki/test/WikiBaseData.xml")
- );
- beforeTestOperations.add(
- new DataSetOperation("org/jboss/seam/wiki/test/editing/NestedNodes.xml", DatabaseOperation.INSERT)
+ new DataSetOperation("org/jboss/seam/wiki/test/WikiBaseData.dbunit.xml", DatabaseOperation.CLEAN_INSERT)
);
}
@@ -55,8 +33,8 @@
final String conversationId = new NonFacesRequest("/docEdit_d.xhtml") {
protected void beforeRequest() {
- setParameter("documentId", TEST_DOCUMENT1_ID.toString());
- setParameter("parentDirectoryId", TEST_DIRECTORY1_ID.toString());
+ setParameter("documentId", "6");
+ setParameter("parentDirectoryId", "3");
}
}.run();
@@ -70,8 +48,7 @@
assert Conversation.instance().isLongRunning();
DocumentHome docHome = (DocumentHome)getInstance("documentHome");
- assert checkNestedSetNodeInMemory( docHome.getInstance(), 9, 10);
- assert checkNestedSetNodeInMemory( docHome.getParentDirectory(), 8, 23);
+ assert docHome.getInstance().getId().equals(6l);
assert invokeMethod("#{documentHome.remove}").equals("removed");
@@ -80,17 +57,8 @@
Redirect.instance().setViewId("/dirDisplay.xhtml");
Redirect.instance().execute();
- assert checkNestedSetNodeInDatabase(TEST_DIRECTORY1_ID, 8, 21);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT2_ID, 9, 10);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT3_ID, 11, 12);
- assert checkNestedSetNodeInDatabase(TEST_DIRECTORY2_ID, 13, 18);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT5_ID, 14, 15);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT6_ID, 16, 17);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT7_ID, 19, 20);
- assert checkNestedSetNodeInMemory( (Node)getValue("#{documentHome.parentDirectory}"), 8, 21);
- assert !checkNodeInDatabase(TEST_DOCUMENT1_ID);
-
- displayNodeTree( (NodeDAO)getValue("#{nodeDAO}"), (Node)getValue("#{documentHome.parentDirectory}") );
+ assert checkNestedSetNodeInDatabase(3l, 4, 9);
+ assert !checkDocumentInDatabase(6l);
}
}.run();
@@ -101,8 +69,8 @@
final String conversationId = new NonFacesRequest("/dirEdit_d.xhtml") {
protected void beforeRequest() {
- setParameter("directoryId", TEST_DIRECTORY2_ID.toString());
- setParameter("parentDirectoryId", TEST_DIRECTORY1_ID.toString());
+ setParameter("directoryId", "2");
+ setParameter("parentDirectoryId", "1");
}
}.run();
@@ -113,20 +81,6 @@
}
protected void invokeApplication() throws Exception {
- DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
- dirHome.init(); // TODO: Seam test doesn't call page actions
- assert checkNestedSetNodeInDatabase(TEST_DIRECTORY1_ID, 8, 23);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT1_ID, 9, 10);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT2_ID, 11, 12);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT3_ID, 13, 14);
- assert checkNestedSetNodeInDatabase(TEST_DIRECTORY2_ID, 15, 20);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT5_ID, 16, 17);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT6_ID, 18, 19);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT7_ID, 21, 22);
-
- assert checkNestedSetNodeInMemory( dirHome.getInstance(), 15, 20);
- assert checkNestedSetNodeInMemory( dirHome.getParentDirectory(), 8, 23);
-
assert invokeMethod("#{directoryHome.remove}").equals("removed");
// TODO: SeamTest doesn't do navigation but we don't want to have /dirEdit_d.xhtml in the RENDER RESPONSE
@@ -134,28 +88,19 @@
Redirect.instance().setViewId("/dirDisplay.xhtml");
Redirect.instance().execute();
- assert checkNestedSetNodeInDatabase(TEST_DIRECTORY1_ID, 8, 17);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT1_ID, 9, 10);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT2_ID, 11, 12);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT3_ID, 13, 14);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT7_ID, 15, 16);
- assert checkNestedSetNodeInMemory( (Node)getValue("#{directoryHome.parentDirectory}"), 8, 17);
- assert !checkNodeInDatabase(TEST_DIRECTORY2_ID);
- assert !checkNodeInDatabase(TEST_DOCUMENT5_ID);
- assert !checkNodeInDatabase(TEST_DOCUMENT6_ID);
-
- displayNodeTree( (NodeDAO)getValue("#{nodeDAO}"), (Node)getValue("#{directoryHome.parentDirectory}") );
+ assert checkNestedSetNodeInDatabase(1l, 1, 997);
+ assert !checkDirectoryInDatabase(2l);
}
}.run();
}
@Test
- public void createDocumentInArea() throws Exception {
+ public void createDocument() throws Exception {
final String conversationId = new NonFacesRequest("/docEdit_d.xhtml") {
protected void beforeRequest() {
- setParameter("parentDirectoryId", TEST_DIRECTORY1_ID.toString());
+ setParameter("parentDirectoryId", "3");
}
}.run();
@@ -168,261 +113,136 @@
protected void invokeApplication() throws Exception {
DocumentHome docHome = (DocumentHome)getInstance("documentHome");
- docHome.getInstance().setName("Testname");
- docHome.getInstance().setReadAccessLevel(0);
- docHome.getInstance().setWriteAccessLevel(0);
- docHome.getInstance().setEnableComments(false);
- docHome.setFormContent("Testcontent");
-
- assert checkNestedSetNodeInDatabase(TEST_DIRECTORY1_ID, 8, 23);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT1_ID, 9, 10);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT2_ID, 11, 12);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT3_ID, 13, 14);
- assert checkNestedSetNodeInDatabase(TEST_DIRECTORY2_ID, 15, 20);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT5_ID, 16, 17);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT6_ID, 18, 19);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT7_ID, 21, 22);
-
- assert checkNestedSetNodeInMemory( docHome.getParentDirectory(), 8, 23);
+ docHome.getInstance().setName("Test Name");
+ docHome.setFormContent("Test Content");
assert invokeMethod("#{documentHome.persist}").equals("persisted");
}
protected void renderResponse() throws Exception {
+ WikiDocument newNode = (WikiDocument)getValue("#{documentHome.instance}");
- assert checkNestedSetNodeInDatabase(TEST_DIRECTORY1_ID, 8, 25);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT1_ID, 9, 10);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT2_ID, 11, 12);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT3_ID, 13, 14);
- assert checkNestedSetNodeInDatabase(TEST_DIRECTORY2_ID, 15, 20);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT5_ID, 16, 17);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT6_ID, 18, 19);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT7_ID, 21, 22);
- Node newNode = (Node)getValue("#{documentHome.instance}");
- assert checkNodeInDatabase(newNode.getId());
- assert checkNestedSetNodeInMemory(newNode, 23, 24);
- assert checkNestedSetNodeInDatabase(newNode.getId(), 23, 24);
-
- Node parentDir = (Node)getValue("#{documentHome.parentDirectory}");
- assert checkNestedSetNodeInMemory(parentDir, 8, 25);
-
- displayNodeTree( (NodeDAO)getValue("#{nodeDAO}"), parentDir );
+ assert checkNestedSetNodeInDatabase(3l, 4, 9);
+ assert newNode.getAreaNumber().equals(3l);
+ assert newNode.getCreatedBy().getId().equals(2l);
+ assert newNode.getParent().getId().equals(3l);
+ assert newNode.getWikiname().equals("TestName");
+ assert newNode.getReadAccessLevel() == 0;
+ assert newNode.getWriteAccessLevel() == 0;
+ assert newNode.getLastModifiedBy() == null;
+ assert newNode.getLastModifiedOn() == null;
+ assert newNode.getTags().size() == 0;
+ assert checkDocumentInDatabase(newNode.getId());
}
}.run();
}
@Test
- public void createDocumentInSubdirectory() throws Exception {
-
- final String conversationId = new NonFacesRequest("/docEdit_d.xhtml") {
- protected void beforeRequest() {
- setParameter("parentDirectoryId", TEST_DIRECTORY2_ID.toString());
- }
- }.run();
-
- new FacesRequest("/docEdit_d.xhtml") {
-
- protected void beforeRequest() {
- setParameter("cid", conversationId);
- }
-
- protected void invokeApplication() throws Exception {
- DocumentHome docHome = (DocumentHome)getInstance("documentHome");
-
- docHome.getInstance().setName("Testname");
- docHome.getInstance().setReadAccessLevel(0);
- docHome.getInstance().setWriteAccessLevel(0);
- docHome.getInstance().setEnableComments(false);
- docHome.setFormContent("Testcontent");
-
- assert checkNestedSetNodeInDatabase(TEST_DIRECTORY1_ID, 8, 23);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT1_ID, 9, 10);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT2_ID, 11, 12);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT3_ID, 13, 14);
- assert checkNestedSetNodeInDatabase(TEST_DIRECTORY2_ID, 15, 20);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT5_ID, 16, 17);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT6_ID, 18, 19);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT7_ID, 21, 22);
-
- assert checkNestedSetNodeInMemory( docHome.getParentDirectory(), 15, 20);
-
- assert invokeMethod("#{documentHome.persist}").equals("persisted");
- }
-
- protected void renderResponse() throws Exception {
- assert checkNestedSetNodeInDatabase(TEST_DIRECTORY1_ID, 8, 25);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT1_ID, 9, 10);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT2_ID, 11, 12);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT3_ID, 13, 14);
- assert checkNestedSetNodeInDatabase(TEST_DIRECTORY2_ID, 15, 22);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT5_ID, 16, 17);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT6_ID, 18, 19);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT7_ID, 23, 24);
- Node newNode = (Node)getValue("#{documentHome.instance}");
- assert checkNodeInDatabase(newNode.getId());
- assert checkNestedSetNodeInMemory(newNode, 20, 21);
- assert checkNestedSetNodeInDatabase(newNode.getId(), 20, 21);
-
- Node parentDir = (Node)getValue("#{documentHome.parentDirectory}");
- assert checkNestedSetNodeInMemory(parentDir, 15, 22);
-
- displayNodeTree( (NodeDAO)getValue("#{nodeDAO}"), parentDir );
- }
-
- }.run();
- }
-
- @Test
- public void moveDirectoryLeft() throws Exception {
+ public void setDefaultDocument() throws Exception {
final String conversationId = new NonFacesRequest("/dirEdit_d.xhtml") {
protected void beforeRequest() {
- setParameter("directoryId", TEST_DIRECTORY1_ID.toString());
- setParameter("parentDirectoryId", TEST_WIKI_ROOT_ID.toString());
+ setParameter("directoryId", "4");
+ setParameter("parentDirectoryId", "3");
}
}.run();
new FacesRequest("/dirEdit_d.xhtml") {
+ Long newDefaultDocumentId = null;
+
protected void beforeRequest() {
setParameter("cid", conversationId);
}
protected void invokeApplication() throws Exception {
+ assert Conversation.instance().isLongRunning();
+
DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
+ assert dirHome.getInstance().getId().equals(4l); // Init!
- // Move the TEST_DIRECTORY2 (position 3) to position 1
- WikiUtil.shiftListElement(dirHome.getInstance().getChildren(), 3, 1);
+ // Just take the first one, these should be ordered by name, but there is only one there
+ WikiDocument defaultDocument = dirHome.getChildDocuments().get(0);
+ dirHome.getInstance().setDefaultFile(defaultDocument);
+ newDefaultDocumentId = defaultDocument.getId();
assert invokeMethod("#{directoryHome.update}").equals("updated");
}
protected void renderResponse() throws Exception {
-
- assert checkNestedSetNodeInDatabase(TEST_DIRECTORY1_ID, 8, 23);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT1_ID, 9, 10);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT2_ID, 11, 12);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT3_ID, 13, 14);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT7_ID, 21, 22);
- assert checkNestedSetNodeInDatabase(TEST_DIRECTORY2_ID, 15, 20);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT5_ID, 16, 17);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT6_ID, 18, 19);
-
DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
-
- assert dirHome.getInstance().getChildren().get(0).getId().equals(TEST_DOCUMENT1_ID);
- assert checkNestedSetNodeInMemory(dirHome.getInstance().getChildren().get(0), 9, 10);
-
- displayNodeTree( (NodeDAO)getValue("#{nodeDAO}"), (Node)getValue("#{directoryHome.instance}") );
-
+ assert dirHome.getInstance().getDefaultFile().getId().equals(newDefaultDocumentId);
}
-
}.run();
}
-
@Test
- public void moveDocumentRight() throws Exception {
+ public void changeDefaultDocument() throws Exception {
final String conversationId = new NonFacesRequest("/dirEdit_d.xhtml") {
protected void beforeRequest() {
- setParameter("directoryId", TEST_DIRECTORY1_ID.toString());
- setParameter("parentDirectoryId", TEST_WIKI_ROOT_ID.toString());
+ setParameter("directoryId", "3");
+ setParameter("parentDirectoryId", "1");
}
}.run();
new FacesRequest("/dirEdit_d.xhtml") {
+ Long newDefaultDocumentId = null;
+
protected void beforeRequest() {
setParameter("cid", conversationId);
}
protected void invokeApplication() throws Exception {
+ assert Conversation.instance().isLongRunning();
+
DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
+ assert dirHome.getInstance().getId().equals(3l); // Init!
- // Move the TEST_DOCUMENT2 (position 1) to position 3
- WikiUtil.shiftListElement(dirHome.getInstance().getChildren(), 1, 3);
+ // Switch from first to second, these are ordered by name, "One", "Two"
+ WikiDocument defaultDocument = dirHome.getChildDocuments().get(1);
+ dirHome.getInstance().setDefaultFile(defaultDocument);
+ newDefaultDocumentId = defaultDocument.getId();
assert invokeMethod("#{directoryHome.update}").equals("updated");
}
protected void renderResponse() throws Exception {
-
- assert checkNestedSetNodeInDatabase(TEST_DIRECTORY1_ID, 8, 23);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT1_ID, 9, 10);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT2_ID, 11, 12);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT3_ID, 13, 14);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT7_ID, 21, 22);
- assert checkNestedSetNodeInDatabase(TEST_DIRECTORY2_ID, 15, 20);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT5_ID, 16, 17);
- assert checkNestedSetNodeInDatabase(TEST_DOCUMENT6_ID, 18, 19);
-
DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
-
- assert dirHome.getInstance().getChildren().get(0).getId().equals(TEST_DOCUMENT1_ID);
- assert checkNestedSetNodeInMemory(dirHome.getInstance().getChildren().get(0), 9, 10);
-
- displayNodeTree( (NodeDAO)getValue("#{nodeDAO}"), (Node)getValue("#{directoryHome.instance}") );
+ assert dirHome.getInstance().getDefaultFile().getId().equals(newDefaultDocumentId);
+ assert newDefaultDocumentId.equals(7l);
}
-
}.run();
}
- /* ############################################################################################################## */
-
- private boolean checkNestedSetNodeInMemory(Node node, long left, long right) throws Exception {
- return node.getNsLeft() == left && node.getNsRight() == right;
+ private boolean checkNestedSetNodeInDatabase(long nodeId, long left, long right) throws Exception {
+ Session s = getHibernateSession();
+ WikiDirectory dir = (WikiDirectory)s.createQuery("select d from WikiDirectory d left join fetch d.parent where d.id = :id").setParameter("id", nodeId).uniqueResult();
+ s.close();
+ return dir.getNodeInfo().getNsLeft() == left && dir.getNodeInfo().getNsRight() == right;
}
- private boolean checkNestedSetNodeInDatabase(long nodeId, long left, long right) throws Exception {
- StatelessSession ss = getStatelessSession();
- Node node = (Node)ss.createQuery("select n from Node n left join fetch n.parent where n.id = :id").setParameter("id", nodeId).uniqueResult();
- ss.close();
- return node.getNsLeft() == left && node.getNsRight() == right;
+ private boolean checkDirectoryInDatabase(long nodeId) throws Exception {
+ Session s = getHibernateSession();
+ WikiDirectory dir = (WikiDirectory ) s.createQuery("select d from WikiDirectory d left join fetch d.parent where d.id = :id").setParameter("id", nodeId).uniqueResult();
+ s.close();
+ return dir != null;
}
- private boolean checkNodeInDatabase(long nodeId) throws Exception {
- StatelessSession ss = getStatelessSession();
- Node node = (Node)ss.createQuery("select n from Node n left join fetch n.parent where n.id = :id").setParameter("id", nodeId).uniqueResult();
- ss.close();
- return node != null;
+ private boolean checkDocumentInDatabase(long nodeId) throws Exception {
+ Session s = getHibernateSession();
+ WikiDocument doc = (WikiDocument) s.createQuery("select d from WikiDocument d left join fetch d.parent left join fetch d.tags where d.id = :id").setParameter("id", nodeId).uniqueResult();
+ s.close();
+ return doc != null;
}
- private StatelessSession getStatelessSession() throws Exception {
+ private Session getHibernateSession() throws Exception {
org.jboss.ejb3.entity.InjectedEntityManagerFactory jbossEMF =
(org.jboss.ejb3.entity.InjectedEntityManagerFactory) getInitialContext().lookup("java:/entityManagerFactories/wiki");
- return ((HibernateEntityManagerFactory) jbossEMF.getDelegate()).getSessionFactory().openStatelessSession();
- }
-
- private void displayNodeTree(NodeDAO dao, Node startNode) {
- if (log.isTraceEnabled()) {
-
- Comparator<NestedSetNodeWrapper<Node>> comp =
- new Comparator<NestedSetNodeWrapper<Node>>() {
- public int compare(NestedSetNodeWrapper<Node> o, NestedSetNodeWrapper<Node> o2) {
- return o.getWrappedNode().getDisplayPosition().compareTo(o2.getWrappedNode().getDisplayPosition());
- }
- };
- NestedSetNodeWrapper<Node> startNodeWrapper = new NestedSetNodeWrapper<Node>(startNode, comp);
- NestedSetResultTransformer<Node> transformer = new NestedSetResultTransformer<Node>(startNodeWrapper);
- dao.appendNestedSetNodes(transformer, null, false);
-
- log.trace("######################################## TREE BEGIN #####################################################");
- displayNodes(startNodeWrapper);
- log.trace("######################################## TREE END #####################################################");
- }
- }
- private void displayNodes(NestedSetNodeWrapper<Node> startNode) {
- StringBuilder levelMarkers = new StringBuilder();
- for (int i = 1; i <= startNode.getLevel(); i++) {
- levelMarkers.append("#");
- }
- log.trace(levelMarkers.toString() + " " + startNode);
- for (NestedSetNodeWrapper<Node> next : startNode.getWrappedChildren()) {
- displayNodes(next);
- }
+ return ((HibernateEntityManagerFactory) jbossEMF.getDelegate()).getSessionFactory().openSession();
}
}
1.1 date: 2007/12/19 04:29:24; author: cbauer; state: Exp;jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/editing/EditMenu.java
Index: EditMenu.java
===================================================================
/*
* JBoss, Home of Professional Open Source
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.seam.wiki.test.editing;
import org.dbunit.operation.DatabaseOperation;
import org.jboss.seam.core.Conversation;
import org.jboss.seam.wiki.core.action.DirectoryHome;
import org.jboss.seam.wiki.core.model.WikiDirectory;
import org.jboss.seam.wiki.core.model.WikiMenuItem;
import org.jboss.seam.wiki.test.util.DBUnitSeamTest;
import org.testng.annotations.Test;
public class EditMenu extends DBUnitSeamTest {
protected void prepareDBUnitOperations() {
beforeTestOperations.add(
new DataSetOperation("org/jboss/seam/wiki/test/WikiBaseData.dbunit.xml", DatabaseOperation.CLEAN_INSERT)
);
}
@Test
public void checkAvailableMenuItems() throws Exception {
loginAdmin();
final String conversationId = new NonFacesRequest("/dirEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("directoryId", "2");
setParameter("parentDirectoryId", "1");
}
}.run();
new FacesRequest("/dirEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("cid", conversationId);
}
protected void invokeApplication() throws Exception {
assert Conversation.instance().isLongRunning();
DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
assert dirHome.getInstance().getId().equals(2l); // Init!
assert dirHome.getAvailableMenuItems().size() == 0;
}
}.run();
}
@Test
public void addMenuItem() throws Exception {
loginAdmin();
final String conversationId = new NonFacesRequest("/dirEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("directoryId", "3");
setParameter("parentDirectoryId", "1");
}
}.run();
new FacesRequest("/dirEdit_d.xhtml") {
Long newDefaultDocumentId = null;
protected void beforeRequest() {
setParameter("cid", conversationId);
}
protected void invokeApplication() throws Exception {
assert Conversation.instance().isLongRunning();
DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
assert dirHome.getInstance().getId().equals(3l); // Init!
assert dirHome.getMenuItems().size() == 1;
assert dirHome.getAvailableMenuItems().size() == 1;
WikiDirectory newMenuItem = dirHome.getAvailableMenuItems().iterator().next();
dirHome.setSelectedChildDirectory(newMenuItem);
dirHome.addMenuItem();
assert dirHome.getMenuItems().size() == 2;
assert invokeMethod("#{directoryHome.update}").equals("updated");
}
protected void renderResponse() throws Exception {
DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
assert dirHome.getMenuItems().size() == 2;
WikiMenuItem[] menuItems = dirHome.getMenuItems().toArray(new WikiMenuItem[dirHome.getMenuItems().size()]);
assert menuItems[0].getDirectoryId().equals(4l);
assert menuItems[0].getDirectory().getId().equals(4l);
assert menuItems[0].getDisplayPosition() == 0;
assert menuItems[1].getDirectoryId().equals(5l);
assert menuItems[1].getDirectory().getId().equals(5l);
assert menuItems[1].getDisplayPosition() == 1;
}
}.run();
}
@Test
public void removeMenuItem() throws Exception {
loginAdmin();
final String conversationId = new NonFacesRequest("/dirEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("directoryId", "3");
setParameter("parentDirectoryId", "1");
}
}.run();
new FacesRequest("/dirEdit_d.xhtml") {
Long newDefaultDocumentId = null;
protected void beforeRequest() {
setParameter("cid", conversationId);
}
protected void invokeApplication() throws Exception {
assert Conversation.instance().isLongRunning();
DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
assert dirHome.getInstance().getId().equals(3l); // Init!
assert dirHome.getMenuItems().size() == 1;
WikiMenuItem removedMenuItem = dirHome.getMenuItems().get(0);
dirHome.removeMenuItem(removedMenuItem.getDirectoryId());
assert invokeMethod("#{directoryHome.update}").equals("updated");
}
protected void renderResponse() throws Exception {
DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
assert dirHome.getMenuItems().size() == 0;
}
}.run();
}
@Test
public void addRemoveMenuItem() throws Exception {
loginAdmin();
final String conversationId = new NonFacesRequest("/dirEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("directoryId", "3");
setParameter("parentDirectoryId", "1");
}
}.run();
new FacesRequest("/dirEdit_d.xhtml") {
Long newDefaultDocumentId = null;
protected void beforeRequest() {
setParameter("cid", conversationId);
}
protected void invokeApplication() throws Exception {
assert Conversation.instance().isLongRunning();
DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
assert dirHome.getInstance().getId().equals(3l); // Init!
assert dirHome.getMenuItems().size() == 1;
WikiDirectory newMenuItem = dirHome.getAvailableMenuItems().iterator().next();
dirHome.setSelectedChildDirectory(newMenuItem);
dirHome.addMenuItem();
WikiMenuItem removedMenuItem = dirHome.getMenuItems().get(0);
dirHome.removeMenuItem(removedMenuItem.getDirectoryId());
assert invokeMethod("#{directoryHome.update}").equals("updated");
}
protected void renderResponse() throws Exception {
DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
assert dirHome.getMenuItems().size() == 1;
WikiMenuItem[] menuItems = dirHome.getMenuItems().toArray(new WikiMenuItem[dirHome.getMenuItems().size()]);
assert menuItems[0].getDirectoryId().equals(5l);
assert menuItems[0].getDisplayPosition() == 0;
}
}.run();
}
@Test
public void moveMenuItem() throws Exception {
loginAdmin();
final String conversationId = new NonFacesRequest("/dirEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("directoryId", "3");
setParameter("parentDirectoryId", "1");
}
}.run();
new FacesRequest("/dirEdit_d.xhtml") {
Long newDefaultDocumentId = null;
protected void beforeRequest() {
setParameter("cid", conversationId);
}
protected void invokeApplication() throws Exception {
assert Conversation.instance().isLongRunning();
DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
assert dirHome.getInstance().getId().equals(3l); // Init!
assert dirHome.getMenuItems().size() == 1;
WikiDirectory newMenuItem = dirHome.getAvailableMenuItems().iterator().next();
dirHome.setSelectedChildDirectory(newMenuItem);
dirHome.addMenuItem();
dirHome.moveMenuItem(1, 0);
assert invokeMethod("#{directoryHome.update}").equals("updated");
}
protected void renderResponse() throws Exception {
DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
assert dirHome.getMenuItems().size() == 2;
WikiMenuItem[] menuItems = dirHome.getMenuItems().toArray(new WikiMenuItem[dirHome.getMenuItems().size()]);
assert menuItems[0].getDirectoryId().equals(5l);
assert menuItems[0].getDisplayPosition() == 0;
assert menuItems[1].getDirectoryId().equals(4l);
assert menuItems[1].getDisplayPosition() == 1;
}
}.run();
}
private void loginAdmin() throws Exception {
new FacesRequest() {
protected void invokeApplication() throws Exception {
setValue("#{identity.username}", "admin");
setValue("#{identity.password}", "admin");
invokeAction("#{identity.login}");
assert getValue("#{identity.loggedIn}").equals(true);
}
}.run();
}
}
1.1 date: 2007/12/19 04:29:24; author: cbauer; state: Exp;jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/editing/EditMacros.java
Index: EditMacros.java
===================================================================
/*
* JBoss, Home of Professional Open Source
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.seam.wiki.test.editing;
import org.dbunit.operation.DatabaseOperation;
import org.jboss.seam.core.Conversation;
import org.jboss.seam.wiki.core.action.DocumentHome;
import org.jboss.seam.wiki.core.model.WikiDocument;
import org.jboss.seam.wiki.core.model.WikiUpload;
import org.jboss.seam.wiki.core.model.WikiMacro;
import org.jboss.seam.wiki.test.util.DBUnitSeamTest;
import org.testng.annotations.Test;
public class EditMacros extends DBUnitSeamTest {
protected void prepareDBUnitOperations() {
beforeTestOperations.add(
new DataSetOperation("org/jboss/seam/wiki/test/WikiBaseData.dbunit.xml", DatabaseOperation.CLEAN_INSERT)
);
}
@Test
public void marshallMacros() throws Exception {
final String conversationId = new NonFacesRequest("/docEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("documentId", "6");
setParameter("parentDirectoryId", "3");
}
}.run();
new FacesRequest("/docEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("cid", conversationId);
}
protected void invokeApplication() throws Exception {
assert Conversation.instance().isLongRunning();
DocumentHome docHome = (DocumentHome)getInstance("documentHome");
assert docHome.getInstance().getId().equals(6l); // Init!
assert docHome.getInstance().getHeaderMacros().size() == 2;
assert docHome.getInstance().getContentMacros().size() == 2;
assert docHome.getInstance().getFooterMacros().size() == 2;
WikiMacro macro = new WikiMacro("contentMacro1");
boolean macroFound = false;
for (WikiMacro wikiMacro : docHome.getInstance().getContentMacros()) {
if (wikiMacro.equals(macro)) {
assert wikiMacro.getParams().size()==2;
assert wikiMacro.getParams().get("param1").equals("value one");
assert wikiMacro.getParams().get("param2").equals("value two");
macroFound = true;
}
}
assert macroFound;
}
}.run();
}
@Test
public void editMacros() throws Exception {
final String conversationId = new NonFacesRequest("/docEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("documentId", "6");
setParameter("parentDirectoryId", "3");
}
}.run();
new FacesRequest("/docEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("cid", conversationId);
}
protected void invokeApplication() throws Exception {
assert Conversation.instance().isLongRunning();
DocumentHome docHome = (DocumentHome)getInstance("documentHome");
assert docHome.getInstance().getId().equals(6l); // Init!
docHome.setFormContent("[<=contentMacro3<param=value>]");
assert docHome.getInstance().getHeaderMacros().size() == 2;
assert docHome.getInstance().getContentMacros().size() == 1;
assert docHome.getInstance().getFooterMacros().size() == 2;
WikiMacro macro = new WikiMacro("contentMacro3");
boolean macroFound = false;
for (WikiMacro wikiMacro : docHome.getInstance().getContentMacros()) {
if (wikiMacro.equals(macro)) {
assert wikiMacro.getParams().size()==1;
assert wikiMacro.getParams().get("param").equals("value");
macroFound = true;
}
}
assert macroFound;
}
}.run();
}
}
1.1 date: 2007/12/19 04:29:24; author: cbauer; state: Exp;jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/editing/Linking.java
Index: Linking.java
===================================================================
/*
* JBoss, Home of Professional Open Source
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.seam.wiki.test.editing;
import org.dbunit.operation.DatabaseOperation;
import org.jboss.seam.core.Conversation;
import org.jboss.seam.wiki.core.action.DocumentHome;
import org.jboss.seam.wiki.core.model.WikiDocument;
import org.jboss.seam.wiki.core.model.WikiUpload;
import org.jboss.seam.wiki.test.util.DBUnitSeamTest;
import org.testng.annotations.Test;
public class Linking extends DBUnitSeamTest {
protected void prepareDBUnitOperations() {
beforeTestOperations.add(
new DataSetOperation("org/jboss/seam/wiki/test/WikiBaseData.dbunit.xml", DatabaseOperation.CLEAN_INSERT)
);
beforeTestOperations.add(
new DataSetOperation("org/jboss/seam/wiki/test/UploadData.dbunit.xml", DatabaseOperation.INSERT)
);
}
@Test
public void linkToKnownProtocols() throws Exception {
final String conversationId = new NonFacesRequest("/docEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("documentId", "6");
setParameter("parentDirectoryId", "3");
}
}.run();
new FacesRequest("/docEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("cid", conversationId);
}
protected void invokeApplication() throws Exception {
assert Conversation.instance().isLongRunning();
DocumentHome docHome = (DocumentHome)getInstance("documentHome");
assert docHome.getInstance().getId().equals(6l); // Init!
docHome.setFormContent("[=>http://foo.bar]");
assert docHome.getInstance().getContent().equals("[=>http://foo.bar]");
assert docHome.getFormContent().equals("[=>http://foo.bar]");
docHome.setFormContent("[=>https://foo.bar]");
assert docHome.getInstance().getContent().equals("[=>https://foo.bar]");
assert docHome.getFormContent().equals("[=>https://foo.bar]");
docHome.setFormContent("[=>ftp://foo.bar]");
assert docHome.getInstance().getContent().equals("[=>ftp://foo.bar]");
assert docHome.getFormContent().equals("[=>ftp://foo.bar]");
docHome.setFormContent("[=>mailto:foo at bar.tld]");
assert docHome.getInstance().getContent().equals("[=>mailto:foo at bar.tld]");
assert docHome.getFormContent().equals("[=>mailto:foo at bar.tld]");
docHome.setFormContent("[Foo Bar=>http://foo.bar]");
assert docHome.getInstance().getContent().equals("[Foo Bar=>http://foo.bar]");
assert docHome.getFormContent().equals("[Foo Bar=>http://foo.bar]");
docHome.setFormContent("[Foo Bar=>https://foo.bar]");
assert docHome.getInstance().getContent().equals("[Foo Bar=>https://foo.bar]");
assert docHome.getFormContent().equals("[Foo Bar=>https://foo.bar]");
docHome.setFormContent("[Foo Bar=>ftp://foo.bar]");
assert docHome.getInstance().getContent().equals("[Foo Bar=>ftp://foo.bar]");
assert docHome.getFormContent().equals("[Foo Bar=>ftp://foo.bar]");
docHome.setFormContent("[Foo Bar=>mailto:foo at bar.tld]");
assert docHome.getInstance().getContent().equals("[Foo Bar=>mailto:foo at bar.tld]");
assert docHome.getFormContent().equals("[Foo Bar=>mailto:foo at bar.tld]");
}
}.run();
}
@Test
public void linkToDocuments() throws Exception {
final String conversationId = new NonFacesRequest("/docEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("documentId", "6");
setParameter("parentDirectoryId", "3");
}
}.run();
new FacesRequest("/docEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("cid", conversationId);
}
protected void invokeApplication() throws Exception {
assert Conversation.instance().isLongRunning();
DocumentHome docHome = (DocumentHome)getInstance("documentHome");
assert docHome.getInstance().getId().equals(6l); // Init!
docHome.setFormContent("[=>Two]");
assert docHome.getInstance().getContent().equals("[=>wiki://7]");
assert docHome.getFormContent().equals("[=>Two]");
docHome.setFormContent("[=>Four]");
assert docHome.getInstance().getContent().equals("[=>Four]");
assert docHome.getFormContent().equals("[=>Four]");
docHome.setFormContent("[=>BBB|Four]");
assert docHome.getInstance().getContent().equals("[=>wiki://9]");
assert docHome.getFormContent().equals("[=>BBB|Four]");
docHome.setFormContent("[Foo Bar=>Two]");
assert docHome.getInstance().getContent().equals("[Foo Bar=>wiki://7]");
assert docHome.getFormContent().equals("[Foo Bar=>Two]");
docHome.setFormContent("[Foo Bar=>Four]");
assert docHome.getInstance().getContent().equals("[Foo Bar=>Four]");
assert docHome.getFormContent().equals("[Foo Bar=>Four]");
docHome.setFormContent("[Foo Bar=>BBB|Four]");
assert docHome.getInstance().getContent().equals("[Foo Bar=>wiki://9]");
assert docHome.getFormContent().equals("[Foo Bar=>BBB|Four]");
}
}.run();
}
@Test
public void linkToUploads() throws Exception {
final String conversationId = new NonFacesRequest("/docEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("documentId", "6");
setParameter("parentDirectoryId", "3");
}
}.run();
new FacesRequest("/docEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("cid", conversationId);
}
protected void invokeApplication() throws Exception {
assert Conversation.instance().isLongRunning();
DocumentHome docHome = (DocumentHome)getInstance("documentHome");
assert docHome.getInstance().getId().equals(6l); // Init!
docHome.setFormContent("[=>Two]");
assert docHome.getInstance().getContent().equals("[=>wiki://7]");
assert docHome.getFormContent().equals("[=>Two]");
docHome.setFormContent("[=>BBB|Test Image]");
assert docHome.getInstance().getContent().equals("[=>wiki://30]");
assert docHome.getFormContent().equals("[=>BBB|Test Image]");
}
}.run();
}
@Test
public void linkSourceTargetTracking() throws Exception {
final String conversationId = new NonFacesRequest("/docEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("documentId", "6");
setParameter("parentDirectoryId", "3");
}
}.run();
new FacesRequest("/docEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("cid", conversationId);
}
protected void invokeApplication() throws Exception {
assert Conversation.instance().isLongRunning();
DocumentHome docHome = (DocumentHome)getInstance("documentHome");
assert docHome.getInstance().getId().equals(6l); // Init!
assert docHome.getInstance().getOutgoingLinks().size() == 0;
docHome.setFormContent("[=>Two] and [=>Three] and [=>BBB|Test Image]");
assert invokeMethod("#{documentHome.update}").equals("updated");
assert docHome.getInstance().getContent().equals("[=>wiki://7] and [=>wiki://8] and [=>wiki://30]");
assert docHome.getInstance().getOutgoingLinks().size() == 3;
docHome.getEntityManager().clear();
WikiDocument d = (WikiDocument)
docHome.getEntityManager().createQuery("select d from WikiDocument d left join fetch d.incomingLinks where d.id = :id")
.setParameter("id", 7l)
.getSingleResult();
assert d.getIncomingLinks().size() == 1;
docHome.getEntityManager().clear();
d = (WikiDocument)
docHome.getEntityManager().createQuery("select d from WikiDocument d left join fetch d.incomingLinks where d.id = :id")
.setParameter("id", 8l)
.getSingleResult();
assert d.getIncomingLinks().size() == 2;
docHome.getEntityManager().clear();
WikiUpload f = (WikiUpload)
docHome.getEntityManager().createQuery("select f from WikiUpload f left join fetch f.incomingLinks where f.id = :id")
.setParameter("id", 30l)
.getSingleResult();
assert f.getIncomingLinks().size() == 1;
}
}.run();
}
}
1.1 date: 2007/12/19 04:29:24; author: cbauer; state: Exp;jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/editing/Commenting.java
Index: Commenting.java
===================================================================
/*
* JBoss, Home of Professional Open Source
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.seam.wiki.test.editing;
import org.dbunit.operation.DatabaseOperation;
import org.jboss.seam.wiki.core.action.CommentHome;
import org.jboss.seam.wiki.core.action.CommentQuery;
import org.jboss.seam.wiki.core.model.User;
import org.jboss.seam.wiki.core.model.WikiDocument;
import org.jboss.seam.wiki.core.model.WikiDirectory;
import org.jboss.seam.wiki.core.dao.WikiNodeDAO;
import org.jboss.seam.wiki.test.util.DBUnitSeamTest;
import org.jboss.seam.contexts.Contexts;
import org.testng.annotations.Test;
public class Commenting extends DBUnitSeamTest {
protected void prepareDBUnitOperations() {
beforeTestOperations.add(
new DataSetOperation("org/jboss/seam/wiki/test/WikiBaseData.dbunit.xml", DatabaseOperation.CLEAN_INSERT)
);
}
@Test
public void postComment() throws Exception {
new FacesRequest("/docDisplay_d.xhtml") {
protected void beforeRequest() {
setParameter("documentId", "6");
setParameter("parentDirectoryId", "3");
}
protected void updateModelValues() throws Exception {
assert getValue("#{documentHome.instance.id}").equals(6l);
}
protected void invokeApplication() throws Exception {
CommentHome commentHome = (CommentHome)getInstance("commentHome");
commentHome.newComment();
commentHome.getInstance().setFromUserName("Foo");
commentHome.getInstance().setFromUserHomepage("http://foo.bar");
commentHome.getInstance().setFromUserEmail("foo at bar.tld");
commentHome.getInstance().setSubject("Some Subject");
commentHome.getInstance().setContent("Some Content");
invokeMethod("#{commentHome.persist}");
}
protected void renderResponse() throws Exception {
CommentQuery commentQuery = (CommentQuery)getInstance("commentQuery");
assert commentQuery.getComments().size() == 7;
assert commentQuery.getComments().get(0).getId().equals(10l);
assert commentQuery.getComments().get(1).getId().equals(11l);
assert commentQuery.getComments().get(2).getId().equals(12l);
assert commentQuery.getComments().get(3).getId().equals(13l);
assert commentQuery.getComments().get(4).getId().equals(14l);
assert commentQuery.getComments().get(5).getId().equals(15l);
assert commentQuery.getComments().get(6).getCreatedBy().getUsername().equals(User.GUEST_USERNAME);
assert commentQuery.getComments().get(6).getFromUserName().equals("Foo");
assert commentQuery.getComments().get(6).getFromUserHomepage().equals("http://foo.bar");
assert commentQuery.getComments().get(6).getFromUserEmail().equals("foo at bar.tld");
assert commentQuery.getComments().get(6).getSubject().equals("Some Subject");
assert commentQuery.getComments().get(6).getContent().equals("Some Content");
}
}.run();
}
@Test
public void deleteComment() throws Exception {
loginAdmin();
new FacesRequest("/docDisplay_d.xhtml") {
protected void beforeRequest() {
setParameter("documentId", "6");
setParameter("parentDirectoryId", "3");
}
protected void updateModelValues() throws Exception {
assert getValue("#{documentHome.instance.id}").equals(6l);
}
protected void invokeApplication() throws Exception {
invokeMethod("#{commentHome.remove(15)}");
}
protected void renderResponse() throws Exception {
CommentQuery commentQuery = (CommentQuery)getInstance("commentQuery");
assert commentQuery.getComments().size() == 5;
assert commentQuery.getComments().get(0).getId().equals(10l);
assert commentQuery.getComments().get(1).getId().equals(11l);
assert commentQuery.getComments().get(2).getId().equals(12l);
assert commentQuery.getComments().get(3).getId().equals(13l);
assert commentQuery.getComments().get(4).getId().equals(14l);
}
}.run();
}
private void loginAdmin() throws Exception {
new FacesRequest() {
protected void invokeApplication() throws Exception {
setValue("#{identity.username}", "admin");
setValue("#{identity.password}", "admin");
invokeAction("#{identity.login}");
assert getValue("#{identity.loggedIn}").equals(true);
}
}.run();
}
}
1.1 date: 2007/12/19 04:29:24; author: cbauer; state: Exp;jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/editing/Tagging.java
Index: Tagging.java
===================================================================
/*
* JBoss, Home of Professional Open Source
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.seam.wiki.test.editing;
import org.dbunit.operation.DatabaseOperation;
import org.jboss.seam.wiki.core.action.DocumentHome;
import org.jboss.seam.wiki.core.action.TagQuery;
import org.jboss.seam.wiki.core.action.UploadHome;
import org.jboss.seam.wiki.core.model.WikiFile;
import org.jboss.seam.wiki.test.util.DBUnitSeamTest;
import org.testng.annotations.Test;
import java.util.List;
public class Tagging extends DBUnitSeamTest {
protected void prepareDBUnitOperations() {
beforeTestOperations.add(
new DataSetOperation("org/jboss/seam/wiki/test/WikiBaseData.dbunit.xml", DatabaseOperation.CLEAN_INSERT)
);
beforeTestOperations.add(
new DataSetOperation("org/jboss/seam/wiki/test/UploadData.dbunit.xml", DatabaseOperation.INSERT)
);
}
@Test
public void tagDocument() throws Exception {
final String conversationId = new NonFacesRequest("/docEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("documentId", "6");
setParameter("parentDirectoryId", "3");
}
}.run();
new FacesRequest("/docEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("cid", conversationId);
}
protected void invokeApplication() throws Exception {
DocumentHome docHome = (DocumentHome)getInstance("documentHome");
assert docHome.getInstance().getId().equals(6l); // Init!
assert docHome.getTagString().equals("Tag One");
assert docHome.getInstance().getTags().size() == 1;
docHome.setTagString(docHome.getTagString() + ", New Tag");
assert invokeMethod("#{documentHome.update}").equals("updated");
}
protected void renderResponse() throws Exception {
DocumentHome docHome = (DocumentHome)getInstance("documentHome");
assert docHome.getInstance().getTags().size() == 2;
assert docHome.getInstance().getTagsAsList().get(0).equals("New Tag");
assert docHome.getInstance().getTagsAsList().get(1).equals("Tag One");
TagQuery tagQuery = (TagQuery)getInstance("tagQuery");
tagQuery.setTag("New Tag");
List<WikiFile> taggedFiles = tagQuery.getTaggedFiles();
assert taggedFiles.size() == 1;
assert taggedFiles.get(0).getId().equals(6l);
}
}.run();
}
@Test
public void tagUpload() throws Exception {
final String conversationId = new NonFacesRequest("/uploadEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("uploadId", "30");
setParameter("parentDirectoryId", "2");
}
}.run();
new FacesRequest("/uploadEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("cid", conversationId);
}
protected void invokeApplication() throws Exception {
UploadHome uploadHome = (UploadHome)getInstance("uploadHome");
assert uploadHome.getInstance().getId().equals(30l); // Init!
assert uploadHome.getInstance().getTags().size() == 0;
uploadHome.setTagString("New Tag");
assert invokeMethod("#{uploadHome.update}").equals("updated");
}
protected void renderResponse() throws Exception {
UploadHome uploadHome = (UploadHome)getInstance("uploadHome");
assert uploadHome.getInstance().getTags().size() == 1;
assert uploadHome.getInstance().getTagsAsList().get(0).equals("New Tag");
TagQuery tagQuery = (TagQuery)getInstance("tagQuery");
tagQuery.setTag("New Tag");
List<WikiFile> taggedFiles = tagQuery.getTaggedFiles();
assert taggedFiles.size() == 1;
assert taggedFiles.get(0).getId().equals(30l);
}
}.run();
}
}
1.1 date: 2007/12/19 04:29:24; author: cbauer; state: Exp;jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/editing/DocumentHistoryTests.java
Index: DocumentHistoryTests.java
===================================================================
/*
* JBoss, Home of Professional Open Source
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.seam.wiki.test.editing;
import org.dbunit.operation.DatabaseOperation;
import org.jboss.seam.core.Conversation;
import org.jboss.seam.wiki.core.action.DocumentHome;
import org.jboss.seam.wiki.core.dao.WikiNodeDAO;
import org.jboss.seam.wiki.core.model.WikiDocument;
import org.jboss.seam.wiki.core.model.WikiFile;
import org.jboss.seam.wiki.test.util.DBUnitSeamTest;
import org.testng.annotations.Test;
public class DocumentHistoryTests extends DBUnitSeamTest {
protected void prepareDBUnitOperations() {
beforeTestOperations.add(
new DataSetOperation("org/jboss/seam/wiki/test/WikiBaseData.dbunit.xml", DatabaseOperation.CLEAN_INSERT)
);
}
@Test
public void checkRevisions() throws Exception {
new NonFacesRequest("/wiki.xhtml") {
protected void beforeRequest() {
setParameter("nodeId", "6");
}
protected void renderResponse() throws Exception {
DocumentHome docHome = (DocumentHome)getInstance("documentHome");
assert docHome.getInstance().getId().equals(6l); // Init!
WikiDocument doc = (WikiDocument)getValue("#{currentDocument}");
assert doc != null;
assert doc.getId().equals(6l);
assert doc.getRevision() == 3;
assert docHome.isHistoricalFilesPresent();
assert docHome.getHistoricalFiles().size() == 3;
// Sorted by revision descending
assert docHome.getHistoricalFiles().get(0).getRevision() == 2;
assert docHome.getHistoricalFiles().get(0).getId().equals(6l);
assert docHome.getHistoricalFiles().get(0).getLastModifiedByUsername().equals("admin");
assert docHome.getHistoricalFiles().get(0).getLastModifiedOn() != null;
assert !docHome.getHistoricalFiles().get(0).getLastModifiedOn().equals(doc.getLastModifiedOn());
assert docHome.getHistoricalFiles().get(1).getRevision() == 1;
assert docHome.getHistoricalFiles().get(0).getId().equals(6l);
assert docHome.getHistoricalFiles().get(1).getLastModifiedByUsername().equals("guest");
assert docHome.getHistoricalFiles().get(1).getLastModifiedOn() != null;
assert !docHome.getHistoricalFiles().get(1).getLastModifiedOn().equals(doc.getLastModifiedOn());
assert docHome.getHistoricalFiles().get(2).getRevision() == 0;
assert docHome.getHistoricalFiles().get(0).getId().equals(6l);
assert docHome.getHistoricalFiles().get(2).getLastModifiedByUsername().equals("admin");
assert docHome.getHistoricalFiles().get(2).getLastModifiedOn() == null;
}
}.run();
}
@Test
public void createDocumentCheckRevision() throws Exception {
final String conversationId = new NonFacesRequest("/docEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("parentDirectoryId", "3");
}
}.run();
new FacesRequest("/docEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("cid", conversationId);
}
protected void invokeApplication() throws Exception {
DocumentHome docHome = (DocumentHome)getInstance("documentHome");
docHome.getInstance().setName("Test Name");
docHome.setFormContent("Test Content");
assert invokeMethod("#{documentHome.persist}").equals("persisted");
}
protected void renderResponse() throws Exception {
WikiFile newFile = (WikiFile)getValue("#{documentHome.instance}");
// Shouldn't have any historical data
WikiNodeDAO wikiNodeDAO = (WikiNodeDAO)getInstance("wikiNodeDAO");
assert wikiNodeDAO.findHistoricalFiles(newFile).size() == 0;
assert wikiNodeDAO.findNumberOfHistoricalFiles(newFile).equals(0l);
}
}.run();
}
@Test
public void updateDocumentCheckRevisions() throws Exception {
loginAdmin();
final String conversationId = new NonFacesRequest("/docEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("documentId", "6");
setParameter("parentDirectoryId", "3");
}
}.run();
new FacesRequest("/docEdit_d.xhtml") {
String oldContent;
protected void beforeRequest() {
setParameter("cid", conversationId);
}
protected void invokeApplication() throws Exception {
assert Conversation.instance().isLongRunning();
DocumentHome docHome = (DocumentHome)getInstance("documentHome");
assert docHome.getInstance().getId().equals(6l); // Init!
docHome.getFormContent(); // Initialize historical revision
docHome.setFormContent("New text");
docHome.setMinorRevision(false);
assert invokeMethod("#{documentHome.update}").equals("updated");
}
}.run();
new NonFacesRequest("/wiki.xhtml") {
protected void beforeRequest() {
setParameter("nodeId", "6");
}
protected void renderResponse() throws Exception {
DocumentHome docHome = (DocumentHome)getInstance("documentHome");
assert docHome.getInstance().getId().equals(6l); // Init!
assert docHome.isHistoricalFilesPresent();
assert docHome.getHistoricalFiles().size() == 4;
// Sorted by revision descending
assert docHome.getHistoricalFiles().get(0).getRevision() == 3;
assert docHome.getHistoricalFiles().get(0).getId().equals(6l);
assert docHome.getHistoricalFiles().get(0).getLastModifiedByUsername().equals("admin");
assert docHome.getHistoricalFiles().get(0).getLastModifiedOn() != null;
assert docHome.getHistoricalFiles().get(1).getRevision() == 2;
assert docHome.getHistoricalFiles().get(0).getId().equals(6l);
assert docHome.getHistoricalFiles().get(1).getLastModifiedByUsername().equals("admin");
assert docHome.getHistoricalFiles().get(1).getLastModifiedOn() != null;
assert docHome.getHistoricalFiles().get(2).getRevision() == 1;
assert docHome.getHistoricalFiles().get(0).getId().equals(6l);
assert docHome.getHistoricalFiles().get(2).getLastModifiedByUsername().equals("guest");
assert docHome.getHistoricalFiles().get(2).getLastModifiedOn() != null;
assert docHome.getHistoricalFiles().get(3).getRevision() == 0;
assert docHome.getHistoricalFiles().get(0).getId().equals(6l);
assert docHome.getHistoricalFiles().get(3).getLastModifiedByUsername().equals("admin");
assert docHome.getHistoricalFiles().get(3).getLastModifiedOn() == null;
}
}.run();
}
private void loginAdmin() throws Exception {
new FacesRequest() {
protected void invokeApplication() throws Exception {
setValue("#{identity.username}", "admin");
setValue("#{identity.password}", "admin");
invokeAction("#{identity.login}");
assert getValue("#{identity.loggedIn}").equals(true);
}
}.run();
}
}
1.1 date: 2007/12/19 04:29:24; author: cbauer; state: Exp;jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/editing/Uploading.java
Index: Uploading.java
===================================================================
package org.jboss.seam.wiki.test.editing;
import org.dbunit.operation.DatabaseOperation;
import org.jboss.seam.wiki.core.upload.Uploader;
import org.jboss.seam.wiki.core.upload.editor.WikiUploadEditor;
import org.jboss.seam.wiki.core.action.UploadHome;
import org.jboss.seam.wiki.test.util.DBUnitSeamTest;
import org.testng.annotations.Test;
import org.hibernate.StatelessSession;
import org.hibernate.ejb.HibernateEntityManagerFactory;
import java.util.List;
public class Uploading extends DBUnitSeamTest {
protected void prepareDBUnitOperations() {
beforeTestOperations.add(
new DataSetOperation("org/jboss/seam/wiki/test/WikiBaseData.dbunit.xml", DatabaseOperation.CLEAN_INSERT)
);
beforeTestOperations.add(
new DataSetOperation("org/jboss/seam/wiki/test/UploadData.dbunit.xml", DatabaseOperation.INSERT)
);
}
@Test
public void createUpload() throws Exception {
final String conversationId = new NonFacesRequest("/uploadCreate_d.xhtml") {
protected void beforeRequest() {
setParameter("parentDirectoryId", "2");
}
}.run();
new FacesRequest("/uploadCreate_d.xhtml") {
protected void beforeRequest() {
setParameter("cid", conversationId);
}
protected void invokeApplication() throws Exception {
Uploader uploader = (Uploader) getInstance("uploader");
assert uploader.getParentDirectoryId().equals(2l);
byte[] uploadData = getBinaryFile("testupload2.zip");
uploader.setData(uploadData);
uploader.setContentType("application/zip");
uploader.setFilename("testupload2.zip");
assert uploader.uploadNewInstance().equals("WikiUpload");
assert uploader.getUpload().getContentType().equals("application/zip");
assert uploader.getUpload().getFilesize() == uploadData.length;
assert uploader.getUpload().getFilename().equals("testupload2.zip");
assert uploader.getUpload().getFilenameWithoutExtension().equals("testupload2");
assert uploader.getUpload().getExtension().equals("zip");
assert uploader.getUpload().getData() == uploadData;
}
}.run();
new FacesRequest("/uploadEdit_d.xhtml") {
protected void beforeRequest() {
setParameter("cid", conversationId);
setParameter("parentDirectoryId", "2");
}
protected void invokeApplication() throws Exception {
UploadHome uploadHome = (UploadHome)getInstance("uploadHome");
uploadHome.setEdit(true);
assert uploadHome.getInstance().getFilename().equals("testupload2.zip");
assert uploadHome.getUploadEditor().getClass().equals(WikiUploadEditor.class);
assert uploadHome.getUploadEditor().getIncludeName().equals("wikiUploadEditor");
assert invokeMethod("#{uploadHome.persist}").equals("persisted");
}
protected void renderResponse() throws Exception {
StatelessSession ss = getStatelessSession();
List<String> uploads =
ss.createQuery("select wu.filename from WikiUpload wu where wu.parent.id = :parent order by wu.createdOn desc ")
.setParameter("parent" , 2l).list();
assert uploads.size() == 3;
assert uploads.get(0).equals("testupload2.zip");
}
}.run();
}
private StatelessSession getStatelessSession() throws Exception {
org.jboss.ejb3.entity.InjectedEntityManagerFactory jbossEMF =
(org.jboss.ejb3.entity.InjectedEntityManagerFactory) getInitialContext().lookup("java:/entityManagerFactories/wiki");
return ((HibernateEntityManagerFactory) jbossEMF.getDelegate()).getSessionFactory().openStatelessSession();
}
}
More information about the jboss-cvs-commits
mailing list