Package org.openfaces.component.borderlayoutpanel

Source Code of org.openfaces.component.borderlayoutpanel.SidePanelTest

/*
* OpenFaces - JSF Component Library 2.0
* Copyright (C) 2007-2013, TeamDev Ltd.
* licensing@openfaces.org
* Unless agreed in writing the contents of this file are subject to
* the GNU Lesser General Public License Version 2.1 (the "LGPL" License).
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* Please visit http://openfaces.org/licensing/ for more details.
*/
package org.openfaces.component.borderlayoutpanel;

import org.junit.Test;
import org.openfaces.test.OpenFacesTestCase;
import org.seleniuminspector.openfaces.SidePanelInspector;
import org.seleniuminspector.ServerLoadingMode;
import org.seleniuminspector.ElementInspector;
import org.seleniuminspector.LoadingMode;

/**
* @author Alexey Tarasyuk
*/
public class SidePanelTest extends OpenFacesTestCase {
     @Test
    public void testRendering() {
        testAppFunctionalPage("/components/borderlayoutpanel/sidePanelft.jsf");
        // test defaultSidePanel rendering

        SidePanelInspector defaultSidePanel = sidePanel("formID:defaultSidePanelId");
        defaultSidePanel.assertElementExists();
        defaultSidePanel.splitter().assertElementExists();
        defaultSidePanel.panel().assertElementExists();
        defaultSidePanel.caption().assertElementExists(false);
        defaultSidePanel.content().assertElementExists();

        // test leftSidePanel rendering
        SidePanelInspector leftSidePanel = sidePanel("formID:leftSidePanelId");
        leftSidePanel.assertElementExists();
        leftSidePanel.splitter().assertElementExists();
        leftSidePanel.panel().assertElementExists();
        leftSidePanel.caption().assertElementExists();
        leftSidePanel.content().assertElementExists();

        element("leftSidePanelCaptionTextId").assertElementExists();
        element("leftSidePanelContentTextId").assertElementExists();
    }

     @Test
    public void testLeftSidePanel() {
        testAppFunctionalPage("/components/borderlayoutpanel/sidePanelft.jsf");

        SidePanelInspector sidePanel = sidePanel("formID:leftSidePanelId");

        /*test offsetHeight/offsetWidth
        * -----------------------------
        * by default size = "50%" i.e. sidePanel.offsetWidth = 100
        * sidePanel.style.height = "100%" i.e. sidePanel.offsetHeight = 200
        */
        sidePanel.assertExpressionEquals("offsetWidth", 100);
        sidePanel.assertExpressionEquals("offsetHeight", 200);

        /*test collapse/restore
        * ---------------------
        * default splitter width/height = "4px", and splitter borders have a "3px" width at sum, so splitter size = "7px"
        * after collapse() sidePanel size should be equal to splitter size
        * after restore() sidePanel size should return to a normal size
        */
        sidePanel.splitter().mouseDown();
        sidePanel.splitter().mouseUp();
        sidePanel.assertExpressionEquals("_size", "7px");
        sidePanel.splitter().mouseDown();
        sidePanel.splitter().mouseUp();
        sidePanel.assertExpressionEquals("_size", "50%");

        /*test splitter dragging
         ----------------------
         by default minSize and maxSize not specified, so it should be equal "7px" and "100%", i.e. 7 and 200
        */
        sidePanel.splitter().dragAndDrop(-60, 0);
        sidePanel.assertExpressionEquals("_size", "20%");
        sidePanel.splitter().dragAndDrop(0, 60);
        sidePanel.assertExpressionEquals("_size", "20%");
        sidePanel.splitter().dragAndDrop(-50, 0);
        sidePanel.assertExpressionEquals("_size", "3.5%");
        sidePanel.splitter().dragAndDrop(400, 0);
        sidePanel.assertExpressionEquals("_size", "100%");
    }

     @Test
    public void testTopSidePanel() {
        testAppFunctionalPage("/components/borderlayoutpanel/sidePanelft.jsf");

        SidePanelInspector sidePanel = sidePanel("formID:topSidePanelId");

        /*test offsetHeight/offsetWidth
        * -----------------------------
        * by default size = "50%" i.e. sidePanel.offsetHeight = "100"
        * sidePanel.style.width = "100%" i.e. sidePanel.offsetWidth = "200"
        */
        sidePanel.assertExpressionEquals("offsetWidth", 200);
        sidePanel.assertExpressionEquals("offsetHeight", 100);

        /*test collapse/restore
        * ---------------------
        * default splitter width/height = "4px", and splitter borders have a "3px" width at sum, so splitter size = "7px"
        * after collapse() sidePanel size should be equal to splitter size
        * after restore() sidePanel size should return to a normal size
        */
        sidePanel.splitter().mouseDown();
        sidePanel.splitter().mouseUp();
        sidePanel.assertExpressionEquals("_size", "7px");
        sidePanel.splitter().mouseDown();
        sidePanel.splitter().mouseUp();
        sidePanel.assertExpressionEquals("_size", "50%");

        /*test splitter dragging
         ----------------------
         by default minSize and maxSize not specified, so it should be equal "7px" and "100%", i.e. 7 and 200
        */
        sidePanel.splitter().dragAndDrop(0, -60);
        sidePanel.assertExpressionEquals("_size", "20%");
        sidePanel.splitter().dragAndDrop(60, 0);
        sidePanel.assertExpressionEquals("_size", "20%");
        sidePanel.splitter().dragAndDrop(0, -60);
        sidePanel.assertExpressionEquals("_size", "3.5%");
        sidePanel.splitter().dragAndDrop(0, 400);
        sidePanel.assertExpressionEquals("_size", "100%");
    }

     @Test
    public void testBoxLayoutModel() {
        testAppFunctionalPage("/components/borderlayoutpanel/sidePanelft.jsf");

        SidePanelInspector sidePanel = sidePanel("formID:layoutSidePanelId");

        /* to make sure that sidePanel width/height the same */
        sidePanel.assertExpressionEquals("offsetWidth", 100);
        sidePanel.assertExpressionEquals("offsetHeight", 200);

        sidePanel.splitter().assertExpressionEquals("offsetWidth", 12);
        sidePanel.splitter().assertExpressionEquals("offsetHeight", 196);
        sidePanel.panel().assertExpressionEquals("offsetWidth", 80);
        sidePanel.panel().assertExpressionEquals("offsetHeight", 196);
        sidePanel.caption().assertExpressionEquals("offsetWidth", 68);
        sidePanel.caption().assertExpressionEquals("offsetHeight", 28);
        sidePanel.content().assertExpressionEquals("offsetWidth", 68);
        sidePanel.content().assertExpressionEquals("offsetHeight", 152);

        /* test SidePanel in collapsed mode */
        sidePanel.splitter().mouseDown();
        sidePanel.splitter().mouseUp();
        sidePanel.assertExpressionEquals("offsetWidth", 16);
        sidePanel.assertExpressionEquals("offsetHeight", 200);

        sidePanel.splitter().assertExpressionEquals("offsetWidth", 12);
        sidePanel.splitter().assertExpressionEquals("offsetHeight", 196);
        sidePanel.panel().assertExpressionEquals("offsetWidth", 0);
        sidePanel.panel().assertExpressionEquals("offsetHeight", 0);
        sidePanel.caption().assertExpressionEquals("offsetWidth", 0);
        sidePanel.caption().assertExpressionEquals("offsetHeight", 0);
        sidePanel.content().assertExpressionEquals("offsetWidth", 0);
        sidePanel.content().assertExpressionEquals("offsetHeight", 0);

        /* test SidePanel in small size mode */
        sidePanel.splitter().mouseDown();
        sidePanel.splitter().mouseUp();
        sidePanel.splitter().dragAndDrop(-72, 0);
        sidePanel.assertExpressionEquals("offsetWidth", 28);
        sidePanel.assertExpressionEquals("offsetHeight", 200);

        sidePanel.splitter().assertExpressionEquals("offsetWidth", 12);
        sidePanel.splitter().assertExpressionEquals("offsetHeight", 196);
        sidePanel.panel().assertExpressionEquals("offsetWidth", 8);
        sidePanel.panel().assertExpressionEquals("offsetHeight", 196);
        sidePanel.caption().assertExpressionEquals("offsetWidth", 0);
        sidePanel.caption().assertExpressionEquals("offsetHeight", 0);
        sidePanel.content().assertExpressionEquals("offsetWidth", 0);
        sidePanel.content().assertExpressionEquals("offsetHeight", 0);
    }

     @Test
    public void testSizeLimitation() {
        testAppFunctionalPage("/components/borderlayoutpanel/sidePanelft.jsf");

        SidePanelInspector sidePanel = sidePanel("formID:sizeLimitedSidePanelId");

        /* to make sure that size limitation work on resizing */
        sidePanel.splitter().dragAndDrop(0, -200);
        sidePanel.assertExpressionEquals("_size", "25%");
        sidePanel.splitter().dragAndDrop(0, 200);
        sidePanel.assertExpressionEquals("_size", "75%");

        /* to make sure that size limitation ignored on collapse/restore */
        sidePanel.splitter().mouseDown();
        sidePanel.splitter().mouseUp();
        sidePanel.assertExpressionEquals("_size", "7px");
        sidePanel.splitter().mouseDown();
        sidePanel.splitter().mouseUp();
        sidePanel.assertExpressionEquals("_size", "75%");
    }

     @Test
    public void testEvents() {
        testAppFunctionalPage("/components/borderlayoutpanel/sidePanelft.jsf");

        SidePanelInspector sidePanel = sidePanel("formID:eventsSidePanelId");
        ElementInspector sidePanelText = element("sidePanelTextId");

        /* test onsplitterdrag */
        sidePanelText.assertExpressionEquals("innerHTML", "size = 50%");
        sidePanel.splitter().dragAndDrop(0, -50);
        sidePanelText.assertExpressionEquals("innerHTML", "size = 25%");

        /* test oncollapse */
        sidePanel.splitter().mouseDown();
        sidePanel.splitter().mouseUp();
        sidePanelText.assertExpressionEquals("innerHTML", "size panel is collapsed");

        /* test onrestore */
        sidePanel.splitter().mouseDown();
        sidePanel.splitter().mouseUp();
        sidePanelText.assertExpressionEquals("innerHTML", "size panel is restored");
    }

     @Test
    public void testFixedSidePanels() {
        testAppFunctionalPage("/components/borderlayoutpanel/sidePanelft.jsf");

        /* test SidePanel with collapsible = false and resizable = false */
        SidePanelInspector notFixedSidePane = sidePanel("formID:notFixedSidePanelId");

        notFixedSidePane.splitter().assertStyle("cursor: row-resize");
        notFixedSidePane.splitter().mouseDown();
        notFixedSidePane.splitter().mouseUp();
        notFixedSidePane.splitter().assertStyle("cursor: pointer");
        notFixedSidePane.assertExpressionEquals("_size", "7px");
        notFixedSidePane.splitter().mouseDown();
        notFixedSidePane.splitter().mouseUp();
        notFixedSidePane.assertExpressionEquals("_size", "50%");
        notFixedSidePane.splitter().dragAndDrop(0, 50);
        notFixedSidePane.assertExpressionEquals("_size", "75%");
        notFixedSidePane.splitter().dragAndDrop(0, -50);
        notFixedSidePane.assertExpressionEquals("_size", "50%");

        /* test SidePanel with collapsible = false */
        SidePanelInspector collapseFixedSidePanel = sidePanel("formID:collapseFixedSidePanelId");

        collapseFixedSidePanel.splitter().assertStyle("cursor: row-resize");
        collapseFixedSidePanel.assertExpressionEquals("_size", "50%");
        collapseFixedSidePanel.splitter().mouseDown();
        collapseFixedSidePanel.splitter().mouseUp();
        collapseFixedSidePanel.splitter().assertStyle("cursor: row-resize");
        collapseFixedSidePanel.assertExpressionEquals("_size", "50%");
        collapseFixedSidePanel.splitter().mouseDown();
        collapseFixedSidePanel.splitter().mouseUp();
        collapseFixedSidePanel.assertExpressionEquals("_size", "50%");
        collapseFixedSidePanel.splitter().dragAndDrop(0, 50);
        collapseFixedSidePanel.assertExpressionEquals("_size", "75%");
        collapseFixedSidePanel.splitter().dragAndDrop(0, -50);
        collapseFixedSidePanel.assertExpressionEquals("_size", "50%");

        /* test SidePanel with resizable = false */
        SidePanelInspector resizeFixedSidePanel = sidePanel("formID:resizeFixedSidePanelId");

        resizeFixedSidePanel.splitter().assertStyle("cursor: pointer");
        resizeFixedSidePanel.splitter().mouseDown();
        resizeFixedSidePanel.splitter().mouseUp();
        resizeFixedSidePanel.splitter().assertStyle("cursor: pointer");
        resizeFixedSidePanel.assertExpressionEquals("_size", "7px");
        resizeFixedSidePanel.splitter().mouseDown();
        resizeFixedSidePanel.splitter().mouseUp();
        resizeFixedSidePanel.assertExpressionEquals("_size", "50%");
        resizeFixedSidePanel.splitter().dragAndDrop(0, 50);
        resizeFixedSidePanel.assertExpressionEquals("_size", "50%");
        resizeFixedSidePanel.splitter().dragAndDrop(0, -50);
        resizeFixedSidePanel.assertExpressionEquals("_size", "50%");

        /* test SidePanel with collapsible = false and resizable = false */
        SidePanelInspector fullFixedSidePanel = sidePanel("formID:fullFixedSidePanelId");

        fullFixedSidePanel.splitter().assertStyle("cursor: auto");
        fullFixedSidePanel.splitter().mouseDown();
        fullFixedSidePanel.splitter().mouseUp();
        fullFixedSidePanel.splitter().assertStyle("cursor: auto");
        fullFixedSidePanel.assertExpressionEquals("_size", "50%");
        fullFixedSidePanel.splitter().mouseDown();
        fullFixedSidePanel.splitter().mouseUp();
        fullFixedSidePanel.assertExpressionEquals("_size", "50%");
        fullFixedSidePanel.splitter().dragAndDrop(0, 50);
        fullFixedSidePanel.assertExpressionEquals("_size", "50%");
        fullFixedSidePanel.splitter().dragAndDrop(0, -50);
        fullFixedSidePanel.assertExpressionEquals("_size", "50%");
    }

     @Test
    public void testClientSideAPI() {
        testAppFunctionalPage("/components/borderlayoutpanel/sidePanelft.jsf");
        ElementInspector sidePanel = element("formID:defaultSidePanelId");

        sidePanel.evalExpression("resize('25%');");
        sidePanel.assertExpressionEquals("_size", "25%");
        sidePanel.evalExpression("collapse();");
        sidePanel.assertExpressionEquals("_size", "7px");
        sidePanel.evalExpression("restore();");
        sleep(1000);
        sidePanel.assertExpressionEquals("_size", "25%");
    }

     @Test
    public void testSizeRendering() {
        testAppFunctionalPage("/components/borderlayoutpanel/sidePanelft.jsf");
        ElementInspector sidePanel = element("formID:layoutSidePanelId");

        sidePanel.evalExpression("resize('25.5%');");
        sidePanel.assertExpressionEquals("offsetWidth", 51);
        sidePanel.evalExpression("resize('25px');");
        sidePanel.assertExpressionEquals("offsetWidth", 25);
    }

     @Test
    public void testStateStore() {
        testAppFunctionalPage("/components/borderlayoutpanel/sidePanelft.jsf");
        ElementInspector sidePanel = element("formID:defaultSidePanelId");

        sidePanel.evalExpression("resize('25.5%')");
        sidePanel.evalExpression("collapse()");
        getSelenium().submit("formID");
        ServerLoadingMode.getInstance().waitForLoad();
        sidePanel.assertExpressionEquals("_size", "7px");
        sidePanel.assertExpressionEquals("_collapsed", true);
        sidePanel.evalExpression("restore()");
        sidePanel.assertExpressionEquals("_collapsed", false);
        sidePanel.assertExpressionEquals("_size", "25.5%");
    }
}
TOP

Related Classes of org.openfaces.component.borderlayoutpanel.SidePanelTest

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.