Package org.openfaces.component.treetable

Source Code of org.openfaces.component.treetable.TreeTableClientSideEvents

/*
* 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.treetable;

import com.thoughtworks.selenium.Selenium;
import org.junit.Test;
import org.openfaces.test.OpenFacesTestCase;
import org.seleniuminspector.openfaces.TreeTableInspector;
import org.seleniuminspector.ElementInspector;

import java.awt.event.KeyEvent;

/**
* @author Darya Shumilina
*/
public class TreeTableClientSideEvents extends OpenFacesTestCase {

    /*test entire TreeTable*/
    //TODO Dont't work warn
     @Test
    public void testCommonTreeTableEvents() {
        Selenium selenium = getSelenium();
        testAppFunctionalPage("/components/treetable/treeTable_events.jsf");

        //onfocus
        assertTrue(selenium.isTextPresent("onfocus works"));
        //todo: uncomment if JSFC-1453 fixed
        //assertTrue(selenium.isTextPresent("focus"));

        ElementInspector treeTable = element("fn:eventsTreeTable");
        //onclick
        treeTable.click();
        assertTrue(selenium.isTextPresent("onclick works"));
        assertTrue(selenium.isTextPresent("click"));

        //onblur
        //todo: selenium can set focus to the several page elements in own FF instance, so event not fired. Problem unresolved yet.
/*    assertTrue(selenium.isTextPresent("onblur works"));
    assertTrue(selenium.isTextPresent("blur"));*/

        //ondblclick
        treeTable.doubleClick();
        assertTrue(selenium.isTextPresent("ondblclick works"));
        assertTrue(selenium.isTextPresent("dblclick"));

        //onkeydown
        treeTable.keyDown(KeyEvent.VK_DOWN);
        assertTrue(selenium.isTextPresent("onkeydown works"));
        assertTrue(selenium.isTextPresent("keydown"));

        //onkeypress
        treeTable.keyPress(KeyEvent.VK_DOWN);
        assertTrue(selenium.isTextPresent("onkeypress works"));
        assertTrue(selenium.isTextPresent("keypress"));

        //onkeyup
        treeTable.keyUp(KeyEvent.VK_DOWN);
        assertTrue(selenium.isTextPresent("onkeyup works"));
        assertTrue(selenium.isTextPresent("keyup"));

        //onmousedown
        treeTable.mouseDown();
        assertTrue(selenium.isTextPresent("onmousedown works"));
        assertTrue(selenium.isTextPresent("mousedown"));

        //onmouseout
        treeTable.mouseOut();
        assertTrue(selenium.isTextPresent("onmouseout works"));
        assertTrue(selenium.isTextPresent("mouseout"));

        //onmouseover
        treeTable.mouseOver();
        assertTrue(selenium.isTextPresent("onmouseover works"));
        assertTrue(selenium.isTextPresent("mouseover"));

        //onmouseup
        treeTable.mouseOver();
        assertTrue(selenium.isTextPresent("onmouseover works"));
        assertTrue(selenium.isTextPresent("mouseover"));

        //onmousemove
        element("fn:mousemoveTreeTable").mouseMove();
        assertTrue(selenium.isTextPresent("onmousemove works"));
        assertTrue(selenium.isTextPresent("mousemove"));

    }

    /*test entire TreeTable column events*/
     @Test
    public void testTreeTableColumnEvents() {
        Selenium selenium = getSelenium();
        testAppFunctionalPage("/components/treetable/treeTable_entireColumn.jsf");

        ElementInspector treeTable = element("fn:treeTable");
        //onclick
        treeTable.click();
        assertTrue(selenium.isTextPresent("onclick works"));
        assertTrue(selenium.isTextPresent("click"));

        //ondblclick
        treeTable.doubleClick();
        assertTrue(selenium.isTextPresent("ondblclick works"));
        assertTrue(selenium.isTextPresent("dblclick"));

        //onmousedown
        treeTable.mouseDown();
        assertTrue(selenium.isTextPresent("onmousedown works"));
        assertTrue(selenium.isTextPresent("mousedown"));

        //onmousemove
        treeTable.mouseMove();
        assertTrue(selenium.isTextPresent("onmousemove works"));
        assertTrue(selenium.isTextPresent("mousemove"));

        //onmouseout
        treeTable.mouseOut();
        assertTrue(selenium.isTextPresent("onmouseout works"));
        assertTrue(selenium.isTextPresent("mouseout"));

        //onmouseover
        treeTable.mouseOver();
        assertTrue(selenium.isTextPresent("onmouseover works"));
        assertTrue(selenium.isTextPresent("mouseover"));

        //onmouseup
        treeTable.mouseUp();
        assertTrue(selenium.isTextPresent("onmouseup works"));
        assertTrue(selenium.isTextPresent("mouseup"));
    }

    /*test TreeTable column header*/
     @Test
    public void testTreeTableColumnHeaderEvents() {
        Selenium selenium = getSelenium();
        testAppFunctionalPage("/components/treetable/treeColumn_header.jsf");

        ElementInspector headerOutput = element("fn:treeTable:header");
        //onclick
        headerOutput.click();
        assertTrue(selenium.isTextPresent("headerOnclick works"));
        assertTrue(selenium.isTextPresent("click"));

        //ondblclick
        headerOutput.doubleClick();
        assertTrue(selenium.isTextPresent("headerOndblclick works"));
        assertTrue(selenium.isTextPresent("dblclick"));

        //onmousedown
        headerOutput.mouseDown();
        assertTrue(selenium.isTextPresent("headerOnmousedown works"));
        assertTrue(selenium.isTextPresent("mousedown"));

        //onmousemove
        headerOutput.mouseMove();
        assertTrue(selenium.isTextPresent("headerOnmousemove works"));
        assertTrue(selenium.isTextPresent("mousemove"));

        //onmouseout
        headerOutput.mouseOut();
        assertTrue(selenium.isTextPresent("headerOnmouseout works"));
        assertTrue(selenium.isTextPresent("mouseout"));

        //onmouseover
        headerOutput.mouseOver();
        assertTrue(selenium.isTextPresent("headerOnmouseover works"));
        assertTrue(selenium.isTextPresent("mouseover"));

        //onmouseup
        headerOutput.mouseUp();
        assertTrue(selenium.isTextPresent("headerOnmouseup works"));
        assertTrue(selenium.isTextPresent("mouseup"));
    }

    /*test TreeTable column body*/
     @Test
    public void testTreeTableColumnBodyEvents() {
        Selenium selenium = getSelenium();
        testAppFunctionalPage("/components/treetable/treeColumn_body.jsf");
        System.out.println();

        ElementInspector bodyOutput = element("fn:treeTable:3:body");      //:0: ?
        //onclick
        bodyOutput.click();
        assertTrue(selenium.isTextPresent("bodyOnclick works"));
        assertTrue(selenium.isTextPresent("click"));

        //ondblclick
        bodyOutput.doubleClick();
        assertTrue(selenium.isTextPresent("bodyOndblclick works"));
        assertTrue(selenium.isTextPresent("dblclick"));

        //onmousedown
        bodyOutput.mouseDown();
        assertTrue(selenium.isTextPresent("bodyOnmousedown works"));
        assertTrue(selenium.isTextPresent("mousedown"));

        //onmousemove
        bodyOutput.mouseMove();
        assertTrue(selenium.isTextPresent("bodyOnmousemove works"));
        assertTrue(selenium.isTextPresent("mousemove"));

        //onmouseout
        bodyOutput.mouseOut();
        assertTrue(selenium.isTextPresent("bodyOnmouseout works"));
        assertTrue(selenium.isTextPresent("mouseout"));

        //onmouseover
        bodyOutput.mouseOver();
        assertTrue(selenium.isTextPresent("bodyOnmouseover works"));
        assertTrue(selenium.isTextPresent("mouseover"));

        //onmouseup
        bodyOutput.mouseUp();
        assertTrue(selenium.isTextPresent("bodyOnmouseup works"));
        assertTrue(selenium.isTextPresent("mouseup"));
    }

    /*test TreeTable column footer*/
     @Test
    public void testTreeTableColumnFooterEvents() {
        Selenium selenium = getSelenium();
        testAppFunctionalPage("/components/treetable/treeColumn_footer.jsf");

        ElementInspector footerOutput = element("fn:treeTable:footer");
        //onclick
        footerOutput.click();
        assertTrue(selenium.isTextPresent("footerOnclick works"));
        assertTrue(selenium.isTextPresent("click"));

        //ondblclick
        footerOutput.doubleClick();
        assertTrue(selenium.isTextPresent("footerOndblclick works"));
        assertTrue(selenium.isTextPresent("dblclick"));

        //onmousedown
        footerOutput.mouseDown();
        assertTrue(selenium.isTextPresent("footerOnmousedown works"));
        assertTrue(selenium.isTextPresent("mousedown"));

        //onmousemove
        footerOutput.mouseMove();
        assertTrue(selenium.isTextPresent("footerOnmousemove works"));
        assertTrue(selenium.isTextPresent("mousemove"));

        //onmouseout
        footerOutput.mouseOut();
        assertTrue(selenium.isTextPresent("footerOnmouseout works"));
        assertTrue(selenium.isTextPresent("mouseout"));

        //onmouseover
        footerOutput.mouseOver();
        assertTrue(selenium.isTextPresent("footerOnmouseover works"));
        assertTrue(selenium.isTextPresent("mouseover"));

        //onmouseup
        footerOutput.mouseUp();
        assertTrue(selenium.isTextPresent("footerOnmouseup works"));
        assertTrue(selenium.isTextPresent("mouseup"));
    }

    /*test 'onchange' events for the TreeTable selection*/
     @Test
    public void testOnchangeForTreeTableSelection() {
        Selenium selenium = getSelenium();
        testAppFunctionalPage("/components/treetable/TTOnchange_row_events.jsf");

        //single selection
        element("fn:singleSelectionTreeTableID:3:categoryID").click();
        assertTrue(selenium.isTextPresent("single onchange works"));
        assertTrue(selenium.isTextPresent("change"));

        //multiple selection
        element("fn:multipleSelectionTreeTableID:3:categoryID").click();
        assertTrue(selenium.isTextPresent("multiple onchange works"));
        assertTrue(selenium.isTextPresent("change"));
    }

    /*test row events*/
     @Test
    public void testRowEvents() {
        Selenium selenium = getSelenium();
        testAppFunctionalPage("/components/treetable/TTOnchange_row_events.jsf");

        ElementInspector categoryOutput = element("fn:rowEventsTreeTable:2:categoryID");
        //rowOnclick
        categoryOutput.click();
        assertTrue(selenium.isTextPresent("rowOnclick works"));
        assertTrue(selenium.isTextPresent("click"));

        //rowOndblclick
        categoryOutput.doubleClick();
        assertTrue(selenium.isTextPresent("rowOndblclick works"));
        assertTrue(selenium.isTextPresent("click"));

        //rowOnmousedown
        categoryOutput.mouseDown();
        assertTrue(selenium.isTextPresent("rowOnmousedown works"));
        assertTrue(selenium.isTextPresent("mousedown"));

        //rowOnmousemove
        categoryOutput.mouseMove();
        assertTrue(selenium.isTextPresent("rowOnmousemove works"));
        assertTrue(selenium.isTextPresent("mousemove"));

        //rowOnmouseout
        categoryOutput.mouseOut();
        assertTrue(selenium.isTextPresent("rowOnmouseout works"));
        assertTrue(selenium.isTextPresent("mouseout"));

        //rowOnmouseover
        categoryOutput.mouseOver();
        assertTrue(selenium.isTextPresent("rowOnmouseover works"));
        assertTrue(selenium.isTextPresent("mouseover"));

        //rowOnmouseup
        categoryOutput.mouseUp();
        assertTrue(selenium.isTextPresent("rowOnmouseup works"));
        assertTrue(selenium.isTextPresent("mouseup"));
    }

    /*test cell events*/
     @Test
    public void testCellAndRowEvents() {
        Selenium selenium = getSelenium();
        testAppFunctionalPage("/components/treetable/treeTableCellRowsEvents.jsf");

        String cellPath = "tbody[0]/tr[0]/td[0]";

        ElementInspector output = element("output");
        TreeTableInspector onclickTreeTable = treeTable("formID:onclickTT");
        //<o:cell> onclick
        createEvent(onclickTreeTable, cellPath, EventType.MOUSE, "click", 0, false);
        output.assertContainsText("onclick works");
        output.assertContainsText("click");

        //<o:cell> ondblclick
        createEvent(onclickTreeTable, cellPath, EventType.MOUSE, "dblclick", 0, false);
        output.assertContainsText("ondblclick works");
        output.assertContainsText("dblclick");

        ElementInspector output1 = element("output1");
        TreeTableInspector onMouseDownTreeTable = treeTable("formID:onmouseDownUpTT");
        //<o:cell> onmousedown
        createEvent(onMouseDownTreeTable, cellPath, EventType.MOUSE, "mousedown", 0, false);
        output1.assertContainsText("onmousedown works");
        output1.assertContainsText("mousedown");

        //<o:cell> onmouseup
        createEvent(onMouseDownTreeTable, cellPath, EventType.MOUSE, "mouseup", 0, false);
        output1.assertContainsText("onmouseup works");
        output1.assertContainsText("mouseup");

        ElementInspector cell = element("formID:onkeyTT").subElement(cellPath);
        ElementInspector output2 = element("output2");
        TreeTableInspector onkeyTreeTable = treeTable("formID:onkeyTT");
        //<o:cell> onkeydown
        cell.evalExpression("focus()");
        createEvent(onkeyTreeTable, cellPath, EventType.KEY, "keydown", 49, false);
        output2.assertContainsText("onkeydown works");
        output2.assertContainsText("keydown");

        //<o:cell> onkeypress
        cell.evalExpression("focus()");
        createEvent(onkeyTreeTable, cellPath, EventType.KEY, "keypress", 49, false);
        output2.assertContainsText("onkeypress works");
        output2.assertContainsText("keypress");

        //<o:cell> onkeyup
        cell.evalExpression("focus()");
        createEvent(onkeyTreeTable, cellPath, EventType.KEY, "keyup", 49, false);
        output2.assertContainsText("onkeyup works");
        output2.assertContainsText("keyup");

        ElementInspector output3 = element("output3");
        TreeTableInspector onMouseTreeTable = treeTable("formID:onMouseOverOutMoveTT");
        //<o:cell> onmouseover
        createEvent(onMouseTreeTable, cellPath, EventType.MOUSE, "mouseover", 0, false);
        output3.assertContainsText("onmouseover works");
        output3.assertContainsText("mouseover");

        //<o:cell> onmouseout
        createEvent(onMouseTreeTable, cellPath, EventType.MOUSE, "mouseout", 0, false);
        output3.assertContainsText("onmouseout works");
        output3.assertContainsText("mouseout");

        //<o:cell> onmousemove
        createEvent(onMouseTreeTable, cellPath, EventType.MOUSE, "mousemove", 0, false);
        output3.assertContainsText("onmousemove works");
        output3.assertContainsText("mousemove");

        String rowPath = "tbody[0]/tr[0]/td[0]";

        ElementInspector output01 = element("output01");
        TreeTableInspector rowOnclickTreeTable = treeTable("formID:rowOnclickTT");
        //<o:row> onclick
        createEvent(rowOnclickTreeTable, rowPath, EventType.MOUSE, "click", 0, false);
        output01.assertContainsText("row onclick works");
        output01.assertContainsText("row event type: click");

        //<o:row> ondblclick
        createEvent(rowOnclickTreeTable, rowPath, EventType.MOUSE, "dblclick", 0, false);
        output01.assertContainsText("row ondblclick works");
        output01.assertContainsText("row event type: dblclick");

        ElementInspector output11 = element("output11");
        TreeTableInspector rowOnmouseDownUp = treeTable("formID:rowOnmouseDownUpTT");
        //<o:row> onmousedown
        createEvent(rowOnmouseDownUp, rowPath, EventType.MOUSE, "mousedown", 0, false);
        output11.assertContainsText("row onmousedown works");
        output11.assertContainsText("row event type: mousedown");

        //<o:row> onmouseup
        createEvent(rowOnmouseDownUp, rowPath, EventType.MOUSE, "mouseup", 0, false);
        output11.assertContainsText("row onmouseup works");
        output11.assertContainsText("row event type: mouseup");

        ElementInspector output21 = element("output21");
        TreeTableInspector rowOnkeyTreeTable = treeTable("formID:rowOnkeyTT");
        //<o:row> onkeydown
        ElementInspector row = rowOnclickTreeTable.subElement(rowPath);
        row.evalExpression("focus()");
        createEvent(rowOnkeyTreeTable, rowPath, EventType.KEY, "keydown", 49, false);
        output21.assertContainsText("row onkeydown works");
        output21.assertContainsText("row event type: keydown");

        //<o:row> onkeypress
        row.evalExpression("focus()");
        createEvent(rowOnkeyTreeTable, rowPath, EventType.KEY, "keypress", 49, false);
        output21.assertContainsText("row onkeypress works");
        output21.assertContainsText("row event type: keypress");

        //<o:row> onkeyup
        row.evalExpression("focus()");
        createEvent(rowOnkeyTreeTable, rowPath, EventType.KEY, "keyup", 49, false);
        output21.assertContainsText("row onkeyup works");
        output21.assertContainsText("row event type: keyup");

        ElementInspector output31 = element("output31");
        TreeTableInspector rowOnMouseOverOutMove = treeTable("formID:rowOnMouseOverOutMoveTT");
        //<o:row> onmouseover
        createEvent(rowOnMouseOverOutMove, rowPath, EventType.MOUSE, "mouseover", 0, false);
        output31.assertContainsText("row onmouseover works");
        output31.assertContainsText("row event type: mouseover");

        //<o:row> onmouseout
        createEvent(rowOnMouseOverOutMove, rowPath, EventType.MOUSE, "mouseout", 0, false);
        output31.assertContainsText("row onmouseout works");
        output31.assertContainsText("row event type: mouseout");

        //<o:row> onmousemove
        createEvent(rowOnMouseOverOutMove, rowPath, EventType.MOUSE, "mousemove", 0, false);
        output31.assertContainsText("row onmousemove works");
        output31.assertContainsText("row event type: mousemove");
    }
}
TOP

Related Classes of org.openfaces.component.treetable.TreeTableClientSideEvents

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.