Package org.jboss.seam.wiki.test.editing

Source Code of org.jboss.seam.wiki.test.editing.EditMacros

/*
* 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.WikiTextMacro;
import org.jboss.seam.mock.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.class);
                assert docHome.getInstance().getId().equals(6l); // Init!

                assert docHome.getInstance().getHeaderMacros().size() == 2;
                assert docHome.getInstance().getFooterMacros().size() == 2;

                boolean macroFound = false;
                for (WikiTextMacro wikiMacro : docHome.getInstance().getContentMacros()) {
                    if (wikiMacro.getName().equals("lastModifiedDocuments")) {
                        assert wikiMacro.getParams().size()==2;
                        assert wikiMacro.getParams().get("documentTitleLength").equals("60");
                        assert wikiMacro.getParams().get("showUsernames").equals("true");
                        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.class);
                assert docHome.getInstance().getId().equals(6l); // Init!

                docHome.getTextEditor().setValue("[<=contentMacro[param=value]]");

                docHome.syncEditorToInstance(docHome.getParentNode().getId(), docHome.getInstance());
                docHome.syncMacros(docHome.getInstance());

                assert docHome.getInstance().getHeaderMacros().size() == 2;
                assert docHome.getInstance().getContentMacros().size() == 1;
                assert docHome.getInstance().getFooterMacros().size() == 2;

                // Check WikiMacro.equals() as well
                WikiTextMacro macro = new WikiTextMacro("contentMacro");
                macro.setPosition(0);

                boolean macroFound = false;
                for (WikiTextMacro 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();
    }

}
TOP

Related Classes of org.jboss.seam.wiki.test.editing.EditMacros

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.