/* * 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.Clipboard; import org.jboss.seam.wiki.core.action.DirectoryBrowser; import org.jboss.seam.wiki.core.model.*; import org.jboss.seam.mock.DBUnitSeamTest; import org.testng.annotations.Test; import java.util.List; public class ClipboardTests 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 copyPasteDocument() throws Exception { new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "2"); } protected void invokeApplication() throws Exception { DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(2l); // Init! WikiDocument doc = browser.getWikiNodeDAO().findWikiDocument(9l); browser.getSelectedNodes().put(doc, true); browser.copy(); } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "2"); } protected void renderResponse() throws Exception { Clipboard clipboard = (Clipboard)getInstance(Clipboard.class); assert clipboard.getItems().size() == 1; assert clipboard.getItemsAsList().get(0).equals(9l); assert !clipboard.isCut(9l); } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "4"); } protected void renderResponse() throws Exception { DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(4l); // Init! browser.paste(); browser.getEntityManager().flush(); // TODO: ?! I think the test phase listener is wrong here not doing that... } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "4"); } protected void renderResponse() throws Exception { Clipboard clipboard = (Clipboard)getInstance(Clipboard.class); assert clipboard.getItems().size() == 0; DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(4l); // Init! assert browser.getChildNodes().size() == 2; WikiDocument doc = browser.getWikiNodeDAO().findWikiDocumentInArea(browser.getInstance().getAreaNumber(), "Four"); assert doc.getAreaNumber().equals(browser.getInstance().getAreaNumber()); WikiDocument docOriginal = browser.getWikiNodeDAO().findWikiDocumentInArea(2l, "Four"); assert docOriginal.getParent().getId().equals(2l); } }.run(); } @Test public void copyPasteUploadImage() throws Exception { new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "2"); } protected void invokeApplication() throws Exception { DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(2l); // Init! WikiUpload upload = browser.getWikiNodeDAO().findWikiUpload(30l); browser.getSelectedNodes().put(upload, true); browser.copy(); } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "2"); } protected void renderResponse() throws Exception { Clipboard clipboard = (Clipboard)getInstance(Clipboard.class); assert clipboard.getItems().size() == 1; assert clipboard.getItemsAsList().get(0).equals(30l); assert !clipboard.isCut(30l); } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "4"); } protected void renderResponse() throws Exception { DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(4l); // Init! browser.paste(); browser.getEntityManager().flush(); // TODO: ?! I think the test phase listener is wrong here not doing that... } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "4"); } protected void renderResponse() throws Exception { Clipboard clipboard = (Clipboard)getInstance(Clipboard.class); assert clipboard.getItems().size() == 0; DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(4l); // Init! assert browser.getChildNodes().size() == 2; List<WikiUpload> uploads = browser.getWikiNodeDAO().findWikiUploads(browser.getInstance(), WikiNode.SortableProperty.createdOn, true); assert uploads.size() == 1; assert uploads.get(0).getName().equals("Test Image"); assert uploads.get(0).getAreaNumber().equals(browser.getInstance().getAreaNumber()); WikiDirectory originalDir = browser.getWikiNodeDAO().findWikiDirectory(2l); List<WikiUpload> originalUploads = browser.getWikiNodeDAO().findWikiUploads(originalDir, WikiNode.SortableProperty.createdOn, true); assert originalUploads.size() == 2; } }.run(); } @Test public void copyPasteMultiple() throws Exception { new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "2"); } protected void invokeApplication() throws Exception { DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(2l); // Init! WikiDocument doc = browser.getWikiNodeDAO().findWikiDocument(9l); WikiUpload upload = browser.getWikiNodeDAO().findWikiUpload(30l); browser.getSelectedNodes().put(doc, true); browser.getSelectedNodes().put(upload, true); browser.copy(); } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "2"); } protected void renderResponse() throws Exception { Clipboard clipboard = (Clipboard)getInstance(Clipboard.class); assert clipboard.getItems().size() == 2; assert !clipboard.isCut(9l); assert !clipboard.isCut(30l); } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "4"); } protected void renderResponse() throws Exception { DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(4l); // Init! browser.paste(); browser.getEntityManager().flush(); // TODO: ?! I think the test phase listener is wrong here not doing that... } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "4"); } protected void renderResponse() throws Exception { Clipboard clipboard = (Clipboard)getInstance(Clipboard.class); assert clipboard.getItems().size() == 0; DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(4l); // Init! assert browser.getChildNodes().size() == 3; WikiDocument doc = browser.getWikiNodeDAO().findWikiDocumentInArea(browser.getInstance().getAreaNumber(), "Four"); assert doc.getAreaNumber().equals(browser.getInstance().getAreaNumber()); List<WikiUpload> uploads = browser.getWikiNodeDAO().findWikiUploads(browser.getInstance(), WikiNode.SortableProperty.createdOn, true); assert uploads.size() == 1; assert uploads.get(0).getName().equals("Test Image"); assert uploads.get(0).getAreaNumber().equals(browser.getInstance().getAreaNumber()); WikiDirectory originalDir = browser.getWikiNodeDAO().findWikiDirectory(2l); List<WikiUpload> originalUploads = browser.getWikiNodeDAO().findWikiUploads(originalDir, WikiNode.SortableProperty.createdOn, true); assert originalUploads.size() == 2; } }.run(); } @Test public void cutPasteDocument() throws Exception { new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "2"); } protected void invokeApplication() throws Exception { DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(2l); // Init! WikiDocument doc = browser.getWikiNodeDAO().findWikiDocument(9l); browser.getSelectedNodes().put(doc, true); browser.cut(); } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "2"); } protected void renderResponse() throws Exception { Clipboard clipboard = (Clipboard)getInstance(Clipboard.class); assert clipboard.getItems().size() == 1; assert clipboard.getItemsAsList().get(0).equals(9l); assert clipboard.isCut(9l); } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "4"); } protected void renderResponse() throws Exception { DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(4l); // Init! browser.paste(); browser.getEntityManager().flush(); // TODO: ?! I think the test phase listener is wrong here not doing that... } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "4"); } protected void renderResponse() throws Exception { Clipboard clipboard = (Clipboard)getInstance(Clipboard.class); assert clipboard.getItems().size() == 0; DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(4l); // Init! assert browser.getChildNodes().size() == 2; WikiDocument doc = browser.getWikiNodeDAO().findWikiDocumentInArea(browser.getInstance().getAreaNumber(), "Four"); assert doc.getAreaNumber().equals(browser.getInstance().getAreaNumber()); WikiDocument docOriginal = browser.getWikiNodeDAO().findWikiDocumentInArea(2l, "Four"); assert docOriginal == null; } }.run(); } @Test public void cutPasteUploadImage() throws Exception { new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "2"); } protected void invokeApplication() throws Exception { DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(2l); // Init! WikiUpload upload = browser.getWikiNodeDAO().findWikiUpload(30l); browser.getSelectedNodes().put(upload, true); browser.cut(); } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "2"); } protected void renderResponse() throws Exception { Clipboard clipboard = (Clipboard)getInstance(Clipboard.class); assert clipboard.getItems().size() == 1; assert clipboard.getItemsAsList().get(0).equals(30l); assert clipboard.isCut(30l); } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "4"); } protected void renderResponse() throws Exception { DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(4l); // Init! browser.paste(); browser.getEntityManager().flush(); // TODO: ?! I think the test phase listener is wrong here not doing that... } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "4"); } protected void renderResponse() throws Exception { Clipboard clipboard = (Clipboard)getInstance(Clipboard.class); assert clipboard.getItems().size() == 0; DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(4l); // Init! assert browser.getChildNodes().size() == 2; List<WikiUpload> uploads = browser.getWikiNodeDAO().findWikiUploads(browser.getInstance(), WikiNode.SortableProperty.createdOn, true); assert uploads.size() == 1; assert uploads.get(0).getName().equals("Test Image"); assert uploads.get(0).getAreaNumber().equals(browser.getInstance().getAreaNumber()); WikiDirectory originalDir = browser.getWikiNodeDAO().findWikiDirectory(2l); List<WikiUpload> originalUploads = browser.getWikiNodeDAO().findWikiUploads(originalDir, WikiNode.SortableProperty.createdOn, true); assert originalUploads.size() == 1; } }.run(); } @Test public void cutPasteMultiple() throws Exception { new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "2"); } protected void invokeApplication() throws Exception { DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(2l); // Init! WikiDocument doc = browser.getWikiNodeDAO().findWikiDocument(9l); WikiUpload upload = browser.getWikiNodeDAO().findWikiUpload(30l); browser.getSelectedNodes().put(doc, true); browser.getSelectedNodes().put(upload, true); browser.cut(); } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "2"); } protected void renderResponse() throws Exception { Clipboard clipboard = (Clipboard)getInstance(Clipboard.class); assert clipboard.getItems().size() == 2; assert clipboard.isCut(9l); assert clipboard.isCut(30l); } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "4"); } protected void renderResponse() throws Exception { DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(4l); // Init! browser.paste(); browser.getEntityManager().flush(); // TODO: ?! I think the test phase listener is wrong here not doing that... } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "4"); } protected void renderResponse() throws Exception { Clipboard clipboard = (Clipboard)getInstance(Clipboard.class); assert clipboard.getItems().size() == 0; DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(4l); // Init! assert browser.getChildNodes().size() == 3; WikiDocument doc = browser.getWikiNodeDAO().findWikiDocumentInArea(browser.getInstance().getAreaNumber(), "Four"); assert doc.getAreaNumber().equals(browser.getInstance().getAreaNumber()); List<WikiUpload> uploads = browser.getWikiNodeDAO().findWikiUploads(browser.getInstance(), WikiNode.SortableProperty.createdOn, true); assert uploads.size() == 1; assert uploads.get(0).getName().equals("Test Image"); assert uploads.get(0).getAreaNumber().equals(browser.getInstance().getAreaNumber()); WikiDocument docOriginal = browser.getWikiNodeDAO().findWikiDocumentInArea(2l, "Four"); assert docOriginal == null; WikiDirectory originalDir = browser.getWikiNodeDAO().findWikiDirectory(2l); List<WikiUpload> originalUploads = browser.getWikiNodeDAO().findWikiUploads(originalDir, WikiNode.SortableProperty.createdOn, true); assert originalUploads.size() == 1; } }.run(); } @Test public void cutPasteSameArea() throws Exception { new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "2"); } protected void invokeApplication() throws Exception { DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(2l); // Init! WikiDocument doc = browser.getWikiNodeDAO().findWikiDocument(9l); browser.getSelectedNodes().put(doc, true); browser.cut(); } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "2"); } protected void renderResponse() throws Exception { Clipboard clipboard = (Clipboard)getInstance(Clipboard.class); assert clipboard.getItems().size() == 1; assert clipboard.getItemsAsList().get(0).equals(9l); assert clipboard.isCut(9l); } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "2"); } protected void renderResponse() throws Exception { DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(2l); // Init! browser.paste(); browser.getEntityManager().flush(); // TODO: ?! I think the test phase listener is wrong here not doing that... } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "2"); } protected void renderResponse() throws Exception { Clipboard clipboard = (Clipboard)getInstance(Clipboard.class); assert clipboard.getItems().size() == 0; DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(2l); // Init! assert browser.getChildNodes().size() == 3; WikiDocument doc = browser.getWikiNodeDAO().findWikiDocumentInArea(browser.getInstance().getAreaNumber(), "Four"); assert doc.getAreaNumber().equals(browser.getInstance().getAreaNumber()); assert doc.getId().equals(9l); } }.run(); } @Test public void copyPasteSameArea() throws Exception { new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "2"); } protected void invokeApplication() throws Exception { DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(2l); // Init! WikiDocument doc = browser.getWikiNodeDAO().findWikiDocument(9l); browser.getSelectedNodes().put(doc, true); browser.copy(); } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "2"); } protected void renderResponse() throws Exception { DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(2l); // Init! Clipboard clipboard = (Clipboard)getInstance(Clipboard.class); assert clipboard.getItems().size() == 1; assert clipboard.getItemsAsList().get(0).equals(9l); assert !clipboard.isCut(9l); } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "2"); } protected void renderResponse() throws Exception { DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(2l); // Init! browser.paste(); browser.getEntityManager().flush(); // TODO: ?! I think the test phase listener is wrong here not doing that... } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "2"); } protected void renderResponse() throws Exception { Clipboard clipboard = (Clipboard)getInstance(Clipboard.class); assert clipboard.getItems().size() == 0; DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(2l); // Init! assert browser.getChildNodes().size() == 4; } }.run(); } @Test public void cutPasteDocumentWithComments() throws Exception { new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "3"); } protected void invokeApplication() throws Exception { DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(3l); // Init! WikiDocument doc = browser.getWikiNodeDAO().findWikiDocument(6l); browser.getSelectedNodes().put(doc, true); browser.cut(); } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "3"); } protected void renderResponse() throws Exception { Clipboard clipboard = (Clipboard)getInstance(Clipboard.class); assert clipboard.getItems().size() == 1; assert clipboard.getItemsAsList().get(0).equals(6l); assert clipboard.isCut(6l); } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "2"); } protected void renderResponse() throws Exception { DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(2l); // Init! browser.paste(); browser.getEntityManager().flush(); // TODO: ?! I think the test phase listener is wrong here not doing that... } }.run(); new FacesRequest("/dirDisplay_d.xhtml") { protected void beforeRequest() { setParameter("directoryId", "2"); } protected void renderResponse() throws Exception { Clipboard clipboard = (Clipboard)getInstance(Clipboard.class); assert clipboard.getItems().size() == 0; DirectoryBrowser browser = (DirectoryBrowser)getInstance(DirectoryBrowser.class); assert browser.getInstance().getId().equals(2l); // Init! assert browser.getChildNodes().size() == 4; WikiDocument docOriginal = browser.getWikiNodeDAO().findWikiDocumentInArea(3l, "One"); assert docOriginal == null; WikiDirectory dirOriginal = browser.getWikiNodeDAO().findWikiDirectory(3l); assert dirOriginal.getDefaultFile() == null; WikiDocument doc = browser.getWikiNodeDAO().findWikiDocument(6l); assert doc.getAreaNumber().equals(2l); assert doc.getParent().getId().equals(2l); List<WikiComment> comments = browser.getWikiNodeDAO().findWikiComments(doc, false); for (WikiComment comment : comments) { assert comment.getAreaNumber().equals(2l); } } }.run(); } }