Ignore:
Timestamp:
10/26/12 09:13:20 (12 years ago)
Author:
pharms
Message:
  • added support for providing horizontal scroll position
  • added support for selected values in text fields and other form elements
Location:
trunk/autoquest-htmlmonitor/src/main/java/de/ugoe/cs/autoquest/htmlmonitor
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/autoquest-htmlmonitor/src/main/java/de/ugoe/cs/autoquest/htmlmonitor/HtmlEvent.java

    r927 r942  
    6060     * if the event is a scroll event, the resulting position of the scrolled element 
    6161     */ 
    62     private Integer scrollPosition; 
     62    private Integer[] scrollPosition; 
     63 
     64    /** 
     65     * if the event is an on change event, the value to which the changed element is changed 
     66     */ 
     67    private String selectedValue; 
    6368 
    6469    /** 
     
    7681     * @param scrollPosition if the event is a scroll event, the resulting position of the 
    7782     *                       scrolled element 
     83     * @param selectedValue  if the event is an on change event, the value to which the changed 
     84     *                       element is changed 
    7885     */ 
    7986    HtmlEvent(HtmlClientInfos clientInfos, 
     
    8390              Integer[]       coordinates, 
    8491              Integer         key, 
    85               Integer         scrollPosition) 
     92              Integer[]       scrollPosition, 
     93              String          selectedValue) 
    8694    { 
    8795        this.clientInfos = clientInfos; 
     
    92100        this.key = key; 
    93101        this.scrollPosition = scrollPosition; 
     102        this.selectedValue = selectedValue; 
    94103    } 
    95104 
     
    139148     * @return the scrollPosition 
    140149     */ 
    141     Integer getScrollPosition() { 
     150    Integer[] getScrollPosition() { 
    142151        return scrollPosition; 
    143152    } 
    144153 
     154    /** 
     155     * @return the selectedValue 
     156     */ 
     157    String getSelectedValue() { 
     158        return selectedValue; 
     159    } 
     160 
    145161} 
  • trunk/autoquest-htmlmonitor/src/main/java/de/ugoe/cs/autoquest/htmlmonitor/HtmlMonitorOutputWriter.java

    r927 r942  
    242242        if (event.getScrollPosition() != null) { 
    243243            outputWriter.print(' '); 
    244             dumpString(event.getScrollPosition().toString()); 
     244             
     245            StringBuffer value = new StringBuffer(); 
     246            for (int i = 0; i < event.getScrollPosition().length; i++) { 
     247                if (i > 0) { 
     248                    value.append(','); 
     249                } 
     250                value.append(event.getScrollPosition()[i]); 
     251            } 
     252             
     253            dumpString(value.toString()); 
     254        } 
     255 
     256        if (event.getSelectedValue() != null) { 
     257            outputWriter.print(' '); 
     258            dumpString(event.getSelectedValue()); 
    245259        } 
    246260             
  • trunk/autoquest-htmlmonitor/src/main/java/de/ugoe/cs/autoquest/htmlmonitor/HtmlMonitorServlet.java

    r927 r942  
    255255                        assertValue(((JSONObject) eventObj), "coordinates", Integer[].class); 
    256256                    Integer key = assertValue(((JSONObject) eventObj), "key", Integer.class); 
    257                     Integer scrollPosition = 
    258                         assertValue(((JSONObject) eventObj), "scrollPosition", Integer.class); 
     257                    Integer[] scrollPosition = 
     258                        assertValue(((JSONObject) eventObj), "scrollPosition", Integer[].class); 
     259                    String selectedValue = 
     260                            assertValue(((JSONObject) eventObj), "selectedValue", String.class); 
    259261                     
    260262                    if (time == null) { 
     
    271273                    } 
    272274                    else if (checkEventParameterCombinations 
    273                                 (eventType, coordinates, key, scrollPosition)) 
     275                                (eventType, coordinates, key, scrollPosition, selectedValue)) 
    274276                    { 
    275277                        events.add(new HtmlEvent(clientInfos, time, path, eventType, coordinates, 
    276                                                  key, scrollPosition)); 
     278                                                 key, scrollPosition, selectedValue)); 
    277279                    } 
    278280                    else { 
     
    295297    /** 
    296298     * <p> 
    297      * validates if for the given event type the parameter combination of coordinates, key, and 
    298      * scroll position is valid. As an example, an onclick event should usually not have an 
    299      * associated scroll position. 
     299     * validates if for the given event type the parameter combination of coordinates, key, 
     300     * scroll position, and selected value is valid. As an example, an onclick event should 
     301     * usually not have an associated scroll position. 
    300302     * </p> 
    301303     * 
     
    304306     * @param key            the key of the event 
    305307     * @param scrollPosition the scroll position of the event 
     308     * @param selectedValue  the value selected through a specific event 
    306309     *  
    307310     * @return true, if the combination of the parameters is valid, false else 
     
    310313                                                    Integer[] coordinates, 
    311314                                                    Integer   key, 
    312                                                     Integer   scrollPosition) 
     315                                                    Integer[] scrollPosition, 
     316                                                    String    selectedValue) 
    313317    { 
    314318        boolean result = false; 
    315319         
    316320        if ("onscroll".equals(eventType)) { 
    317             if ((coordinates == null) && (key == null) && (scrollPosition != null)) { 
     321            if ((coordinates == null) && (key == null) && 
     322                (scrollPosition != null) && (selectedValue == null)) 
     323            { 
    318324                result = true; 
    319325            } 
     
    323329        } 
    324330        else if ("onclick".equals(eventType) || "ondblclick".equals(eventType)) { 
    325             if ((coordinates != null) && (key == null) && (scrollPosition == null)) { 
     331            if ((coordinates != null) && (key == null) && 
     332                (scrollPosition == null) && (selectedValue == null)) 
     333            { 
     334                result = true; 
     335            } 
     336            else { 
     337                Console.printerrln(eventType + " event has invalid parameters"); 
     338            } 
     339        } 
     340        else if ("onchange".equals(eventType)) { 
     341            if ((coordinates == null) && (key == null) && 
     342                (scrollPosition == null) && (selectedValue != null)) 
     343            { 
    326344                result = true; 
    327345            } 
     
    333351                 "onkeyup".equals(eventType)) 
    334352        { 
    335             if ((coordinates == null) && (key != null) && (scrollPosition == null)) { 
     353            if ((coordinates == null) && (key != null) && 
     354                (scrollPosition == null) && (selectedValue == null)) 
     355            { 
    336356                result = true; 
    337357            } 
     
    341361        } 
    342362        else if ("onfocus".equals(eventType) || "onmouseout".equals(eventType) || 
    343                  "onmousemove".equals(eventType) || "onunload".equals(eventType)) 
     363                 "onmousemove".equals(eventType) || "onunload".equals(eventType) || 
     364                 "onbeforeunload".equals(eventType) || "onpagehide".equals(eventType) || 
     365                 "onpageshow".equals(eventType)) 
    344366        { 
    345             if ((coordinates == null) && (key == null) && (scrollPosition == null)) { 
     367            if ((coordinates == null) && (key == null) && 
     368                (scrollPosition == null) && (selectedValue == null)) 
     369            { 
    346370                result = true; 
    347371            } 
Note: See TracChangeset for help on using the changeset viewer.