Skip to content

Console Output

Skipping 8,283 KB.. Full Log
    must "lookup by text" when called without arguments and display-text is not empty
    must "lookup by text" when error status is NOT_UNIQUE, even though the browse parameter is true
  acceptInput
    must set displayText
    must call clearTimeout() for pending lookups
    don't send acceptInput event when display-text has not changed
    send acceptInput event when lookup row is set and display-text has not changed
    do a "lookup by text" when display-text has changed and no lookup row is set
  touch mode
    opens a touch popup when smart field gets touched
    shows smartfield with same text as clicked smartfield

SmartField
  general behavior
    defaults
    setLookupRow
    init LookupCall when configured as string
    when setValue is called, load and set the correct lookup row
    load proposals for the current displayText
    reset active filter
  clear
    clears the value
    clears the value, also in embedded mode
    clears the value, also in touch mode
    does not close the popup but does a browse all
  touch popup
    marks field as clearable even if the field is not focused
    stays open if active / inactive radio buttons are clicked
    stays open even if there are no results (with active filter)
    removes tooltip from original field on open and displays it again when closed
    does not draw glass pane over tooltip
  acceptInput
    should not be triggered, when search text is (still) empty or equals to the text of the lookup row
    should not be triggered, when search text is (still) empty or equals to the text of the lookup row (lookupRow.text is null)
    should (not) reset selected lookup row
      use lookup row
      reset when popup is closed
      reset when user was typing or search-text has changed
      reset when lookup result is out-dated
    must add CSS class from selected lookup-row to field
  lookupCall
    should be cloned and prepared for each lookup
  lookup
    should increase lookupSeqNo when a lookup is executed
    should set error status when result has an exception
    _executeLookup should always remove lookup-status (but not the error-status)
    hierarchical lookup with unique result
    lookupByKey should set first lookup-row from result as this.lookupRow
  touch / embed
    must clone properties required for embedded field
    _copyValuesFromField
  searchRequired
    opens popup if search available and searchRequired=true
    opens popup if no search available and searchRequired=false
    has no popup if no search available and searchRequired=true
    has empty popup if no search available and searchRequired=true and touch
  maxBrowseRowCount
    default - don't limit lookup rows
    limit lookup rows
  aboutToBlurByMouseDown
    should not perform lookup for search by text
  _onFieldKeyDown
    must update flag _userWasTyping
  _onFieldKeyUp
    does not call openPopup() when TAB, CTRL or ALT has been pressed
    calls _lookupByTextOrAll() when a character key has been pressed
    should not perform lookup when Ctrl+A has been pressed
    should return text from lookup-row for last search-text
  _formatValue
    uses a lookup call to format the value
    returns empty string if value is null or undefined
  multiline
    _readSearchText() must concat text of input element and additional lines - required for acceptInput
    multi-line lookupcall on single-line field
    multi-line lookupcall on multi-line field
  label
    is linked with the field
    focuses the field when clicked
    is linked with the field (also in multiline mode)
    focuses the field when clicked (also in multiline mode)
  column descriptors
    with default lookup column at first position renders lookup row column at first position
    with default lookup column in the middle renders lookup row column in the middle

TreeProposalChooser
  ProposalTreeNode
    should display inactive state

StringFieldAdapter
  onModelPropertyChange
    insertText
      may be called multiple times with the same text

StringField
  inputMasked
    sets the field into password mode, if true
    unsets the password mode, if false
  insertText
    expects empty field at the beginning
    inserts text into an empty field
    appends text to the previous value (if no text is selected)
    replaces selection #1 (if part of the text is selected, selection does not start at the beginning)
    replaces selection #2 (if part of the text is selected, start at the beginning)
    replaces selection #3 (if whole content is selected)
    sends display text changed to server using accept text
    sends display text changed to server using accept text, twice, if updateDisplayTextOnModify=true
  trim
    should restore selection
    should not break when displayText is very long (regex is too big)
  setValue
    sets the value and display text if the value is valid
    tries to convert the value into a string
    sets the value to null if given value is empty
    sets value to null if given value only consists of whitespaces and trim is true
    does not set value to null if given value only consists of whitespaces and trim is false
  label
    is linked with the field
    focuses the field when clicked

TabBoxAdapter
  onModelPropertyChange
    selectedTab
      selects the tab but does not send a selectTab event

TabBox
  render
    does NOT call layout for the selected tab on initialization
    must not create LogicalGridData for tab items
  remove
    does not fail if there was no selected tab
  selection
    should select tabs by ID
  key handling
    supports left/right keys to select a tab-item
  first class
    is added to the first tab item
    is added to the first visible tab item
    is correctly updated when visibility changes

TabItem
  _renderStatusVisible
    invalidates tabarea if status visibility changes
  _renderCssClass
    adds CSS class to both, TabItem and GroupBox
  tooltip text
    is shown initially
    is updated
    is removed

TableFieldAdapter
  property table
    destroys the table and model adapter if value is changed to ''

TableField
  property table
    shows (renders) the table if the value is set
    destroys the table if value is changed to null
    table gets class 'field' to make it work with the form field layout
    table gets class 'field' to make it work with the form field layout (also when table is set later)
  requiresSave
    should require save when row has been updated
    does not create a memory leak if same row is updated multiple times
    should require save when row has been deleted
    should require save when row has been inserted
    should NOT require save when row has been inserted and deleted again
    should NOT require save when row has been inserted and deleted again even if it was updated or checked in the meantime
    should require save when row has been checked
    should NOT require save when row has been checked and unchecked again
    should require save after a cell edit.
    should NOT require save open and close cell editor without any text change.
    resets row status on markAsSaved

TagField
  model
    add tag
    remove tag
  rendering
    should render tags (=value)
  key-strokes
    ENTER
  tag lookup
    start and prepare a lookup call clone when typing

TreeBox
  general behavior
    defaults
    init LookupCall when configured as string
    LookupCall can be prepared if value is set explicitly
    LookupCall can be prepared if value is configured
    when setValue is called, load and set the correct lookup rows
  clear
    clears the value
    uncheck all rows
  setEnabled
    should disable check rows
  lookupCall
    switching should refill tree
    should be cloned and prepared for each lookup
  lookup
    should set error status when result has an exception
    _executeLookup should always remove lookup-status (but not the error-status)
    should be executed when lookup call is set
  value
    should be synchronized when rows are checked
  _formatValue
    uses a lookup call to format the value
    returns empty string if value is null or undefined
    does not auto-check child nodes if node is checked by model
  label
    is linked with the field

WizardProgressField
  rendering
    must evaluate activeStepIndex for action-enabled class

WrappedForm
  mandatory indicator
    does not exist
  initial focus disabled
    string field in inner form hasn't focus
  initial focus enabled
    string field in inner form has focus
  innerForm
    is set to null when being destroyed
    will be removed if set to null

IFrame
  setLocation
    sets the location of the iframe
    sets the location to about:blank if location is empty

Icon
  render
    creates a span if it is a font icon
    creates an img if it is an image icon
  setIconDesc
    accepts a string representing the iconId
    accepts a scout.IconDesc

Key
  toKeyStrokeString
    creates a string representing that key
    considers modifiers

KeyStroke
  unrepeatability
    means that an unrepeatable KeyStroke is triggered exactly once per keyup event, even given three keydown events
    means that an unrepeatable KeyStroke is triggered exactly once given the sequence (keydown, keyup)

keys
  forBrowser
  fromBrowser

HtmlComponent
  install
    does NOT set data 'htmlComponent' when constructor is called
    sets data 'htmlComponent' when install() is called
  size
    returns getBoundingClientRect() of JQuery comp
  setSize
    accepts scout.Dimension as single argument
    calls invalidate on layout when size has changed
  insets
    reads padding, margin and border correctly
  validateLayout
    calls htmlComp.layout
    calls layout of the child component
    does not layout invisible components
    does not layout components with an invisible parent
    does not call parents() too many times
    does not layout components with an animating parent
    does not layout animated components
  prefSize
    returns preferred size of the component
    considers max width/height set by CSS
    considers min width/height set by CSS
    returns zero size for invisible components

LayoutValidator
  invalidateTree
    keeps track of invalid html components
    considers only the topmost component
    and validate roots
    makes sure parent components are put in front of child components
  validate
    calls layout for each invalid html component
    does not call layout if component has been removed
    does not call layout if component has been detached, but does not remove from invalid components either
    removes the component from the list of invalidate components after validation
  cleanupInvalidObjects
    removes the widget from invalid components when a widget gets removed

graphics
  bounds
    returns rectangle with position from JQuery.position()
    returns rectangle with size from JQuery.outerWidth/Height
    returns rectangle with size from  JQuery.outerWidth/Height() including margin if includeMargin is true
  Point
    equals
  Dimension
    accepts two numbers as width and height arguments
    accepts a single scout.Dimension argument
    equals
  Rectangle
    equals
    intersects
  Insets
    equals

AbstractGrid01
  group box layout 01
    test horizontal layout
    test vertical smart layout

AbstractGrid02
  group box layout 02
    test horizontal layout
    test vertical smart layout

AbstractGrid03
  group box layout 0100
    test horizontal layout
    test vertical smart layout

AbstractGrid04
  group box layout 04
    test horizontal layout
    test vertical smart layout

AbstractGrid05
  group box layout 05
    test horizontal layout
    test vertical smart layout

AbstractGrid06
  group box layout 06
    test horizontal layout
    test vertical smart layout

AbstractGrid07
  group box layout 07
    test horizontal layout
    test vertical smart layout

AbstractGrid08
  group box layout 08
    test horizontal layout
    test vertical smart layout

AbstractGrid09
  group box layout 09
    test horizontal layout
    test vertical smart layout

AbstractGrid10
  group box layout 10
    test horizontal layout
    test vertical smart layout

AbstractGrid11
  group box layout 11
    test horizontal layout
    test vertical smart layout

LogicalGridLayoutInfo
  Rectangle.union
    produces same results as java.awt.Rectangle
  layoutCellBounds
    calculates bounds

LogicalGridLayout
  prefSize
    returns row height and column width incl. insets
    returns pref size of its child incl. insets if useUiHeight is true
    returns max pref size of its children at on same row incl. insets if useUiHeight is true
    passes widthHint to its children
    considers hgap when passing widthHint if there are multiple children on the same row
    considers weightX when passing widthHint if there are multiple children on the same row
    uses widthInPixel as widthHint
    uses preferred width as widthHint if fill horizontal is false
    uses container width as widthHint if fill horizontal is false and pref width is bigger
    does not mess comp size up if fill horizontal and fill vertical are false

LookupRow
  constructor
  sets defaults when created with a plain object
  uses values from plain object instead of defaults, when set

main
  nvl
    can return alternative value
  assertParameter
    throws Error when value is not set
    throws Error when value has wrong type
  isOneOf
    can check if value is one of multiple values
  create
    accepts string or object as first argument
    creates a new initialized widget with parent and session set
    creates local object if first parameter is the objectType
      sets property 'id' correctly when no ID is provided
      session must be set, but adapter should not be registered
    creates local object if first parameter of type object and contains objectType property

ButtonAdapterMenu
  maps defaultButton setting
    from not set to null
      to defaultMenu = true
    from true
      to defaultMenu = true
    from false (w/o other previous values) to null
      to defaultMenu = null
    from false (with other previous values) to false
      to defaultMenu = false
  initialization / destroy
    should set/delete adaptedBy property on original button instance
  focusable element
    button should delegate to adapter menu

ContextMenuPopup
  options.cloneMenuItems
    true
      clones the given menus and renders the clones
      only destroys and removes the clones on popup close
    false
      renders the original menus
      removes but does not destroy the menus on popup close
  renderMenuItems
    renders invisible menus
    adds last and first classes
    considers visibility when adding last and first classes
    makes cloned menus non-tabbable

MenuBarPopup
  is opened on doAction if the menu has child actions
  rerenders the head on a menu property change

MenuBar
  setMenuItems
    prefers EmptySpace for the left position if menu has multiple menuTypes
    must add/destroy dynamically created separators
    renders menu bar invisible if no visible menu items are available
    renders menu bar visible if at least one visible menu item is available
  propertyChange
    must listen on property changes of its menu items (even when menu bar is not rendered)
    must remove property change listeners on destroy
    automatically hides unused separators
  setVisible
    does not throw an error if called on menus moved to the ellipsis menu
  layout
    gets invalidated if a menu changes its visibility
  updateDefaultMenu
    marks first visible and enabled menu that reacts to ENTER keystroke as default menu
    marks ButtonAdapterMenu that reacts to ENTER keystroke as default menu
    marks first visible and enabled menu that has the "defaultMenu" flag set as default menu
    updates state if menu gets enabled or disabled
    updates state if keyStroke or defaultMenu property of menu changes
    considers rendered state of default menu
  ellipsis position
    is calculated correctly for ellipsisPosition RIGHT
    is calculated correctly for ellipsisPosition LEFT
  reorderMenus
    updates left-of-button correctly
    updates last correctly

MenuItemsOrder
  _createSeparator
  _menuTypes

Menu
  defaults
    should have expected defaults
  render
    render depending on the actionStyle
    render as separator
    must not render childActions when popup is not open
  isTabTarget
    should return true when menu can be a target of TAB action
  setTooltipText
    can update the tooltip text
  clone
    and change child actions

menus
  filter
    does nothing if no menus are given
    returns no menus if no types are given
    only returns visible menus, if onlyVisible param is set to true
    only returns menus with given type (even when menu is not visible)
    only returns parent menus if child menus should be displayed
    only returns parent menus if child menus have correct type
  updateSeparatorVisibility
    makes leading separators invisible
    makes trailing separators invisible
    makes duplicate separators invisible
    makes all separators invisible if there are no other visible menus
    reverts to old state if sibling menus get visible
    considers all rules

ModeSelector
  enabled
    propagation
  init
    sets the selectedMode if it is provided
    selects the correct mode if it is selected
  selectModeByRef
    updates the currently selected mode
  selectModeById
    updates the currently selected mode
  setSelectedMode
    unselects every mode when setting it to null
    selects the new mode and unselects the old one
    is called when setting the mode directly
    triggers a property change event
    makes sure only one mode is selected even if multiple modes are selected during init

Mode
  defaults
    should be as expected

Planner
  deleteResources
    deletes resources from model
    deletes resources from html document
    also adjusts selectedResources and selectionRange if deleted resource was selected
  updateResources
    updates resources in model
    updates resources in html document
    updates activities
  renderScale
    displayMode: DAY
      draws scale for whole day
      draws scale for one hour
      draws scale for two hour interval
      draws scale with only showing every second label
    displayMode: WEEK / WORK_WEEK
      draws scale for WEEK for whole day with 6h interval
      draws scale for WEEK with only showing every second label
      draws scale for WEEK with changing month
      draws scale for WORK_WEEK for whole day with 6h interval
      draws scale for WORK_WEEK with only showing every second label
    displayMode: MONTH
      draws scale
      draws scale with only showing every second label
    displayMode: CALENDAR_WEEK
      draws scale for CALENDAR_WEEK displayMode
      draws scale with only showing every second label
      draws scale with only showing every third label
    displayMode: YEAR
      draws scale for YEAR displayMode
      draws scale with only showing every second label
      draws scale with only showing every third label
  transformLeft/transformWidth
    calculates left and width in WEEK mode for whole days
    calculates left and width in WEEK mode for limitted day range
    calculates left and width in WEEK mode for limitted day range (only firstHourOfDay set)
  select
    selects at least the number of intervals configured by display mode options
    respects end of day if minSelectionIntervalCount is set

Popup
  withGlassPane
    shows a glass pane if set to true
    does not show a glass pane if set to false
    does not get covered with glasspane when multiple popups are open
  horizontalAlignment
    RIGHT
      opens on the right of the anchor
      opens on the right of the anchor considering margin
      moves to left when overlapping right window border
      moves to left when overlapping right window border considering margin
    LEFT
      opens on the left of the anchor
      opens on the left of the anchor considering margin
      moves to right when overlapping left window border
      moves to right when overlapping left window border considering margin
    LEFTEDGE
      opens on the left edge of the anchor
      opens on the left edge of the anchor considering margin
    RIGHTEDGE
      opens on the right edge of the anchor
      opens on the left edge of the anchor considering margin
    CENTER
      opens on the center of the anchor
      opens on the center of the anchor considering margin
  verticalAlignment
    BOTTOM
      opens on the bottom of the anchor
      opens on the bottom of the anchor considering margin
      moves to top when overlapping bottom window border
      moves to top when overlapping bottom window border considering margin
    TOP
      opens on the top of the anchor
      opens on the top of the anchor considering margin
      moves to bottom when overlapping top window border
      moves to bottom when overlapping top window border considering margin
    TOPEDGE
      opens on the top edge of the anchor
      opens on the left edge of the anchor considering margin
    BOTTOMEDGE
      opens on the bottom edge of the anchor
      opens on the bottom edge of the anchor considering margin
    CENTER
      opens on the center of the anchor
      opens on the center of the anchor considering margin
  trimWidth
    reduces width if there is not enough space
      on the left
      on the right
    with hAlign = LEFTEDGE
      does not unnecessarily trim if the popup could be displayed completely
  trimHeight
    reduces height if there is not enough space
      on the bottom
      on the top
      on the center
      on the edge
    with vAlign = TOPEDGE
      does not unnecessarily trim if the popup could be displayed completely
  verticalSwitch
    with verticalAlign = bottom
      switches to top when overlapping bottom window border
      switches to top when overlapping bottom window border considering margin
      switches to top when overlapping bottom window border with dynamic margins
    with verticalAlign = top
      switches to bottom when overlapping top window border
      switches to top when overlapping bottom window border considering margin
    with verticalAlign = topedge
      switches to bottomedge when overlapping bottom window border
      switches to bottomedge when overlapping bottom window border considering margin
  horizontalSwitch
    with horizontalAlign = right
      switches to left when overlapping right window border
      switches to left when overlapping right window border considering margin
    with horizontalAlign = left
      switches to right when overlapping left window border
      switches to right when overlapping left window border considering margin
    with horizontalAlign = rightedge
      switches to rightedge when overlapping right window border
      switches to rightedge when overlapping right window border considering margin
  withArrow
    and hAlign LEFT, vAlign CENTER
      opens popup to the left, arrow points to the right into the center of the anchor
    and hAlign RIGHT, vAlign CENTER
      opens popup to the right, arrow points to the left into the center of the anchor
    and hAlign CENTER, vAlign TOP
      opens popup to the top, arrow points to the bottom into the center of the anchor
    and hAlign CENTER, vAlign BOTTOM
      opens popup to the bottom, arrow points to the top into the center of the anchor
  open popup delayed/immediately
    open popup not until parent is rendered and layouted
    open popup immediately when $parent is provided

PopupWithHead
  verticalAlignment
    BOTTOM
      opens on the bottom of the anchor
  horizontalAlignment
    LEFTEDGE
      opens on the left edge of the anchor
    RIGHTEDGE
      opens on the right edge of the anchor
  verticalSwitch
    with verticalAlign = bottom
      switches to top when overlapping bottom window border
      does not switch but trim if top side is smaller
  horizontalSwitch
    with horizontalAlign = leftedge
      switches to rightedge when overlapping left window border
    does not switch but trim if left side is smaller

scrollbars
  onScroll
    attaches handler to scrolling parents which execute when scrolling
  offScroll
    detaches handler from scrolling parents
  isLocationInView
    returns true if the given location is inside the given $scrollable
    returns false if x of the given location is outside of the given $scrollable (smaller)
    returns false if y of the given location is outside of the given $scrollable (smaller)
    returns false if x of the given location is outside of the given $scrollable (greater)
    returns false if y of the given location is outside of the given $scrollable (greater)
  render
    ensures parent has position absolute or relative

BusyIndicator
  render
    uses entry point as parent if no $parent is provided
    uses $parent as parent if provided

ModelAdapter
  can handle properties in any order
  _syncPropertiesOnPropertyChange calls set* methods or setProperty method
  init
    copies properties to widget
    sets default values
  destroy
    destroys the adapter and its children
    does not destroy children, which are globally used
  onModelPropertyChange
    adapter
      creates and registers the new adapter
      destroys the old adapter
    filters
      propertyChange events
        should send event when property change is triggered by widget
        should not send event when property is triggered by server
      widget events
        should handle widget event when it is not filtered
        should not handle widget event when it is filtered
    export adapter
      exportAdapterData should export last part of model-class as ID
    adapters
      creates and registers adapters
      destroys the old adapters
      destroys the old and creates the new adapters if the array contains both

ResponseQueue
  add
    adds elements to the queue in the correct order
    removes elements that are superseded by combined response
  process
    processes elements in the correct order
    does not process elements in the wrong order
    does not process same response twice

Session
  send
    sends multiple async events in one call
    sends multiple async events in one call over multiple user interactions if sending was delayed
    does not await the full delay if a susequent send call has a smaller delay
    does not await the full delay if a previous send call has a smaller delay
    coalesces events if event provides a coalesce function
    sends requests consecutively
    sends requests consecutively and respects delay
    splits events into separate requests if an event requires a new request
    does not split events into separate requests if only first request requires a new request
    queues ?poll results when user requests are pending
    resumes polling after successful responses
    does not resume polling after JS errors
    does not resume polling after UI server errors
    does not resume polling after HTTP errors
    does not resume polling after session terminated
  init
    sends startup parameter
    sends user agent on startup
  texts
    check if correct text is returned
    check if empty text is returned
    check if null text is returned
    check if arguments are replaced in text
    check if multiple arguments are replaced in text
    check if undefined texts return an error message
    optText returns undefined if key is not found
    optText returns default value if key is not found
    optText returns text if key found
    optText returns text if key found, with arguments

Splitter
  renders the splitter at the given position

SimpleTabArea
  renders the tabs in the correct order

HierarchicalTableSpec
  add
    a root row
    a child row to a row which is already a parent row (by id)
    a child row to a row which is already a parent row (by TableRow)
    a child row to a row which is already a parent row (by pseudo row)
    a child row to a row which is leaf
    a child row to a collapsed row
  delete
    leaf row and expect the row structure to be valid
    leaf row with collapsed parent and expect the structure to be valid
    a parent row and expect all children are deleted cascading.
  structure
    is updated when insert a new child row
    is updated when deleting a child row
    is updated when deleting a row and its children
  expanded rows
    are valid after expand parent and its child row and expand parent again.
    are valid after expand all and collapse all.
  selection
    of all rows is valid if parent rows do not match a filter condition
    a single row matching the filter
    a single row which is a parent row of a row matching the filter
    of a not visible row due to a filter
    changes when selected rows gets invisible due to collapse of a parent row.
    of a row is still the same if the row gets collapsed. 
    is still the same after inserting rows
    is still the same after deleting an not selected row
    gets adjusted when deleting a selected row
  update row
    by changing the parent key
    by removing the parent key
    by adding the parent key
    applies expanded change correctly
  filtered visible
    rows are correct after when a child row matches a filter in of a collapsed parent row.
  move
    row down and expect to be moved after the next sibling on the same level.
    row up and expect to be moved before the next sibling on the same level.
    child row down and expect it will not be moved away of its siblings.
    child row up and expect it will not be moved away of its siblings.
  move visible row
    up - expect the row gets moved above the previous visible row
    down - expect the row gets moved below the next visible row

TableAdapter
  selectRows
    sends rowsSelected event containing rowIds
    does not send selection event if triggered by server
  checkRows
    sends rowsChecked event containing rowIds
    does not send rowsChecked event if triggered by server
  expandRows
    sends rowsExpanded event containing rowIds
    does not send rowsChecked event if triggered by server
  onModelAction
    rowsSelected event
      calls selectRows
    rowsDeleted event
      calls deleteRows
      does not send rowsSelected event for the deleted rows
    allRowsDeleted event
      calls deleteAllRows
      does not send rowsSelected event
    rowsInserted event
      calls insertRows
      may contain cells as objects
      may contain cells as scalars
      respects null values
      uses text as value if value is not provided
    rowOrderChanged event
      calls updateRowOrder
      correct DOM order for newly inserted rows
    rowsUpdated event
      calls updateRows
    columnStructureChanged event
      calls updateColumnStructure
    columnOrderChanged event
      calls updateColumnOrder
    columnHeadersUpdated event
      calls updateColumnHeaders
  onModelPropertyChange
    menus
      creates and registers menu adapters
      destroys the old menus
      destroys the old and creates the new menus if the list contains both
  _sendFilter
    should not coalesce remove and 'add' events
  _postCreateWidget
    should send a filter event, if a filter exists on table after widget is created.

TableFilter
  row filtering
    applies row filter when table gets initialized
    doesn't filter anymore if filter gets removed
    applies row filter if a new row gets inserted
    applies row filter if a new row gets inserted, even if table is not rendered
    applies row filter if a row gets updated
    applies row filter if a row gets updated, even if table is not rendered
    properly handles successive row insertion and updates
    properly handles reset table case
    considers view range
    renders empty data if all rows are removed due to filtering
  selection
    gets removed for non visible rows after filtering
    stays removed even if filtered row is selected explicitly
    gets removed for non visible rows after filtering if a row has been updated
    gets restored for visible rows after filtering
  events
    filter
      gets fired when table with a filter is initializing
      does not get fired when table with no filters is initializing
      gets fired if filter() is called
      gets fired if filter() is called, even if table is not rendered
      gets not fired if rows are filtered again but the filtered rows have not changed
      gets fired if rows are filtered during updateRows
      gets fired if rows are filtered during insertRows
      gets fired if rows are filtered during deleteRows
      gets fired if rows are filtered during deleteAllRows
      does not get fired if rows are updated but row filter state has not changed
      gets sent to server containing rowIds when rows are filtered

TableFooterSpec
  render
    attaches listener to the table but only once
  remove
    stops the open animation of the selected control
    stops the close animation of the selected control
  controls
    removes old and renders new controls on property change
  TableStatusTooltip
    shows ERROR tooltip
    shows INFO tooltip when table is rendered
    hides INFO tooltip when user clicks in table
    does not hide ERROR tooltip when user clicks in table

Table Grouping
  renders an aggregate row for each group
  considers groupingStyle -> aggregate rows must be rendered previous to the grouped rows
  considers view range -> only renders an aggregate row for rendered rows
  considers view range -> doesn't render an aggregate row if the last row of the group is not rendered
  regroups if rows get inserted
  regroups if rows get inserted, event is from server and table was empty
  does not regroup if rows get inserted, event is from server and table was not empty
  regroups when a filter is applied
  regroups if rows get deleted
  removes aggregate rows if all rows get deleted
  regroups if rows get updated
  may group column 0 only
  may group column 1 only
  may group columns 0 (avg) and 1 (sum)
  may group columns 0, 1 and 2
  may group columns 2 and 1
  may group column 1 only after grouping column 0 first
  may group column 1 and 2 after grouping column 0 first

TableHeaderMenu
  filter
    string column
      shows the unique string values
      converts multiline text to single line
      strips html tags if html is enabled
      reflects the state of the filter
      correctly updates the list after inserting a new row, if a filter is applied
      always displays the selected value, even if the table does not contain the value anymore
      displays empty values as -empty-
      stores selected text in filter.selectedValues
      stores empty as null and not '-empty-'
    grouping / sorting
      count sorted columns
      count grouped columns
    boolean column
      shows the unique string values
    sort enabled
      option enabled shows sort options in table header menu
      option disabled does not show sort options in table header menu
    sort mode
      sorts alphabetically
      sorts by amount

TableHeaderSpec
  render
    attaches listener to the table but only once
  hiddenByUi

TableKeyStrokes
  key up
    selects the above row
    selects the last row if no row is selected yet
    selects the second last row if all rows are selected
    selects the only row if there is only one
    does nothing if first row already is selected
    if first row already is selected but is not the last action row, the row above the last action row gets selected
    if there is a last action row, selects the row above last last action row
    selects the row above the last action row even if the row above already is selected
    uses last row of selection as last action row if last action row is not visible anymore
     + shift
      adds the row above to the selection
      removes the row above from the selection if the last action row is the last row of the selection
      if the row above the last action row is not selected, adds the row above to the selection
  key down
    selects the row below
    selects the first row if no row is selected yet
    selects the second row if all rows are selected
    selects the only row if there is only one
    does nothing if last row already is selected
    if there is a last action row, selects the row below the last action row
    selects the row below the last action row even if the row below already is selected
    uses last row of selection as last action row if last action row is not visible anymore
     + shift
      adds the row below to the selection
      removes the row below from the selection if the last action row is the first row of the selection
      if the row below the last action row is not selected, adds the row below to the selection
  end
    selects last row
     + shift
      selects all rows from currently selected row to last row
      preserves existing selection
      considers last action row as start row for new selection
      uses last row of selection as last action row if last action row is not visible anymore
      does nothing if last row is already selected
      does not add same rows to selectedRows twice
  home
    selects first row
     + shift
      selects all rows from currently selected row to first row
      preserves existing selection
      considers last action row as start row for new selection
      uses first row of selection as last action row if last action row is not visible anymore
      does nothing if first row is already selected
      does not add same rows to selectedRows twice
  space
    does nothing if no rows are selected
    checks the selected rows if first row is unchecked
    does not modify already checked rows when checking
    unchecks the selected rows if first row is checked
  page up
    selects the only row if there is only one
  page down
    selects the only row if there is only one

Table
  render
    renders CSS class
    renders a table header
    renders table rows
      accepts rows with cells
      accepts rows with text only
  _calculateViewRangeForRowIndex
    returns a range based on viewRangeSize
  rowIcons and checkable rows
    creates an artificial cell when a rowIcon is set on a row
  insertRows
    inserts rows at the end of the table
    renders rows only if view range is not full yet
    rowsInserted event must be triggered before rowOrderChanged event
  updateRows
    updates the model cell texts
    updates the html cell texts
    does not fail if the row to update is the same instance as the existing one
    does not destroy selection
    silently updates rows which are not in view range
  deleteRows
    deletes single rows from model
    deletes single rows from html document
    considers view range (distinguishes between rendered and non rendered rows, adjusts viewRangeRendered)
  deleteAllRows
    deletes all rows from model
    deletes all rows from html document
    silently removes not rendered rows
  updateRowOrder
    reorders the model rows
    reorders the html nodes
    considers view range
  checkRow
    checks the row, does not uncheck others if multiCheck is set to true
    unchecks other rows if multiCheck is set to false
    does not check the row if checkable is set to false
    does not check the row if the row is disabled
    does not check the row if the table is disabled
    considers view range
    keeps added checkable column visible even when reloading factory settings
    does not add an additional checkable column if one is already configured
    checkablestyle.checbox_table_row checks row with click event
  selectRows
    updates model
    selects rendered rows and unselects others
    considers view range
    triggers rowsSelected
    selectedRow() returns first selected row or null when table has no selection
  toggle selection
    selects all if not all are selected
    selects none if all are selected
  selectAll
    selects all rows
    considers view range -> renders selection only for rendered rows
  doRowAction
    sends rowAction event with row and column
    does not send rowAction event if the row is not selected
    does not send rowAction event if it is not the only one selected row
  resizeColumn
    updates column model and sends resize event 
    does not send resize event when resizing is in progress
    sends resize event when resizing is finished
    always updates model width, but only resizes cells of visible columns 
  autoResizeColumns
    distributes the table columns using initialWidth as weight
    excludes columns with fixed width
    does not make the column smaller than the initial size
    does not make the column smaller than a minimum size
  sort
    updates column model
    model update
      sets sortAscending according to direction param
      resets properties on other columns
      sets sortIndex
      does not remove sortIndex for columns always included at begin
      does not remove sortIndex for columns always included at end
      does not remove sortIndex for columns always included at begin and end (combination)
      removes column from sort columns
    sends sort without sortingRequested event when client side sorting is possible
    sends sort event with sortingRequested if client side sorting is not possible
    sorts the data
    regroups the data if group by column is active
    restores selection after sorting
    sorting
      sorts text columns considering locale (if browser supports it)
      sorts number columns
      sorts date columns
      uses non sort columns as fallback
  row click
    selects row and unselects others
    sends selection and click events
    sends only click if row already is selected
    sends selection, checked and click events if table is checkable and checkbox has been clicked
  right click on row
    opens context menu
    context menu only shows items without header type also if there is a type singleSelection
    context menu only shows visible menus
  _filterMenus
    returns no menus for contextMenu if no row is selected
    returns only single selection menus for contextMenu if one row is selected
    returns only multi selection menus for contextMenu if multiple rows are selected
    returns menus with single- and multi selection set for contextMenu if one or more rows are selected
    returns only empty space menus if no row is selected
    returns empty space and single selection menus if one row is selected
    returns empty space and multi selection menus if multiple rows are selected
    returns menus with empty space, single- and multi selection set if one or more rows are selected
  menu bar popup 
    shows no menus if no row is selected
    shows single selection and empty space menus if single row is selected
    shows multi selection and empty space menus if multiple rows are selected
  setMenus
    updates the menubar with the relevant menus
  row mouse down / move / up
    selects multiple rows
    only sends selection event, no click
    only send one event for mousedown and immediate mouseup on the same row
    only selects first row if mouse move selection or multi selection is disabled
  moveColumn
    moves column from oldPos to newPos
    considers view range (does not fail if not all rows are rendered)
  updateRowOrder
    correct DOM order for newly inserted rows
  initColumns
    table is available in _init
    sets the column indices if not already set
    does not set the column indices if already set
  updateColumnStructure
    resets the model columns
    redraws the header to reflect header cell changes (text)
    updates width of empty data
  updateColumnOrder
    reorders the model columns
    reorders the html nodes
    silently moves cells which are not rendered in view range
  updateColumnHeaders
    updates the text and sorting state of model columns
    updates sort indices of the sort columns if a sort column got removed
    updates the text and sorting state of html table header nodes
    updates the custom css class of table header nodes
    considers html enabled property of table header cells
  headerVisible
    hides/shows the table header
    adds empty div when set to true if there are no rows
    removes empty div when set to false even if there are no rows
  Column visibility
    update headers and rows when visibility of a column changes
    visibleColumns() only return visible columns
    moveColumn() must deal with different indices for visible and all columns
  moveRowUp
    moves row one up
  moveRowDown
    moves row one down
  moveRowToTop
    moves row to the top
  moveRowToBottom
    moves row to the bottom
  moveVisibleRowUp
    moves row one up regarding filtered rows
  moveVisibleRowDown
    moves row one up regarding filtered rows
  rowStatus
    changes when updating the value
  ensureExpansionVisible
    scrolls current row to the top when expanding a large child set
    scrolls current row up so that the full expansion is visible plus half a row at the bottom
  invisible
    does not try to read row height when invisible

TableUpdateBuffer
  buffers updateRow calls and processes them when all promises resolve
  prevents rendering viewport while buffering

BooleanColumn
  table checkable column
    a checkbox column gets inserted if table.checkable=true
    no checkbox column gets inserted if table.checkable=false
    this.checkableColumn is set to the new column
    displays the row.checked state as checkbox
  boolean column
    displays the cell value as checkbox

Column
  considers horizontal alignment
  converts linebreak into <br> in header cells
  considers custom css class of a column
  considers custom css class of a column, as well for checkbox columns
  considers custom css class of a cell, if both are set only the cell class is used
  considers htmlEnabled of a cell
  caches encoded text of a cell to improve performance
  multilineText
    replaces
 with br, but only if htmlEnabled is false
  textWrap
    wraps text if column.textWrap and table.multilineText are true
    does not wrap text if column.textWrap is false and table.multilineText is true
    does not wrap text if column.textWrap is true and table.multilineText is false
    can be toggled on the fly
  initCell
    sets the value and the text
    calls formatValue to format the text
    calls formatValue to format the text, also for cell objects
    does not format the value if a text is provided
    sets the value to null if only text is provided
  setCellValue
    sets the value and the text
    calls formatValue to format the text
  cell getters
    cell() should return cell of given row
    selectedCell() should return cell from selected row
  autoOptimizeWidth
    will resize the column to fit its content after layouting
    also works if there is no header
    considers images
    autoOptimizeWidthRequired
      will be set to true if a row is updated and the content changed
      will be set to true if a row is inserted
      will be set to true if a row is deleted
      will be set to true if all rows are deleted
      will be set to true if autoOptimizeWidth is set dynamically
  displayable
    if set to false, column may not be made visible

DateColumn
  format
    updates the value and the display text if the format changes

NumberColumn
  background effect
    colorGradient1
      colors cells from red to green
      colors cells according to rounded values
    considers view range -> only colors rendered cells
    updates colors if row gets deleted
    updates colors if row gets inserted
    updates colors if row gets updated
    colors cells if table gets rendered
    restores existing background color if background effect gets removed
    barChart
      does not overwrite existing background color
    setBackgroundEffect
      changes the background effect
      sends columnBackgroundEffectChanged event
      does not send columnBackgroundEffectChanged if server triggered it
  calculateMinMaxValues
    calculates the min/max values based on rounded values
  format
    updates the value and the display text if the multiplier changes

SmartColumn
  must NOT execute a lookup by key when the editor is initialized
  must use batch lookup calls when enabled

scout.comparators
  tests 'compare' method of TEXT comparator
  tests 'compareIgnoreCase' method of TEXT comparator
  tests 'compare' method of NUMERIC comparator
  tests 'compare' method of ALPHANUMERIC comparator
  tests 'compareIgnoreCase' method of ALPHANUMERIC comparator
  tests 'compareIgnoreCase' method of ALPHANUMERIC comparator with session

AggregateTableControl
  aggregate
    creates an aggregate row
    sums up numbers in a number column
    aggregation type none does not aggregate
    sums up numbers in a number column but only on filtered rows
    sums up numbers in a number column and considers format pattern
    sums up numbers in a number column and considers rounded values fo aggregation
    updates aggregation if a row is inserted
    updates aggregation if a row is updated
    updates aggregation if a row is deleted
  eanbled state
    is false if there are no number columns
    is true if there is at least one number column
    is false if there is a number column but without an aggregate function
  selected state
    is false if control is not enabled initially
    is set to false if control will be disabled

TableControl
  selected
    opens and closes the control container
    removes the content of the previous selected control without closing the container
    sends selected events (for current and previous selection)

CellEditorAdapter
  endCellEdit event
    destroys the field
    removes the cell editor popup
  completeEdit
    sends completeCellEdit
    sends completeCellEdit only once
    does not remove the popup and its field (will be done by endCellEdit)
  cancelEdit
    sends cancelCellEdit
    removes the popup and its field

CellEditor
  mouse click
    starts cell edit if cell is editable
    does not start cell edit if cell is not editable
    does not start cell edit if row is disabled
    does not start cell edit if table is disabled
    does not start cell edit if form is disabled
    does not start cell edit if mouse down and up happened on different cells
    does not start cell edit if right mouse button was pressed
    does not start cell edit if middle mouse button was pressed
    does not open cell editor if a ctrl or shift is pressed, because the user probably wants to do row selection rather than cell editing
  prepareCellEdit
    creates field and calls start
    triggers prepareCellEdit event
  startCellEdit
    opens popup with field
    triggers startCellEdit event
  completeCellEdit
    triggers completeCellEdit event
    calls endCellEdit with saveEditorValue=true
    saves editor value
    does not reopen the editor again
  cancelCellEdit
    triggers cancelCellEdit event
    calls endCellEdit with saveEditorValue=false
    does not save editor value
  endCellEdit
    destroys the field
    removes the cell editor popup
  validation
    shows a tooltip if field has an error
    does not sho a tooltip if field has no error
  popup recovery
    reopens popup if row gets updated
    closes popup if row gets deleted
    closes popup if all rows get deleted
    closes popup (before) table is removed
    closes popup when table is removed
  tooltip recovery
    removes tooltip if row gets deleted

DateColumnUserFilter
  acceptByFields works
  acceptByFields works with time
  addFilterFields must not create date fields with time

TableTextUserFilter
  filter
    filters rows based on cell text
    separates cell values with whitepace
    works with bean columns

DateFormat
  format
    considers d M y
    considers h H m a
    considers E
    considers ss SSS Z
  parse
    considers d M y
    considers h H m a
    considers ss SSS Z
  analyze
    analyzes the text and returns an object with months, years and days
      considers pattern dd.MM.yyyy
      considers pattern yyyy-MM-dd
      considers pattern MM/dd/yyy
      checks correct handling of am/pm
      proposes valid dates for pattern dd.MM.yyyy
      proposes valid dates for pattern MM.yyyy
      proposes valid dates for pattern yyyy
      proposes valid times

DecimalFormat
  constructor
    uses the pattern from the options
    if the options parameter is a string, it assumes it is the pattern
  format
    considers decimal separators
    considers grouping separators
    is lenient with grouping separators
    can swap the position of the minus sign
    can handle invalid patterns
    distinguishes digits and zero digits
    can handle positive and negative subpattern
    can handle exotic symbols
    can handle percentages, format taken from application
    can handle multiplier
    can handle rounding mode
  round
    can handle rounding modes

TextMap
  get
    returns correct text for key
    may return empty text
    may return null text
    replaces arguments in text
    may replace multiple arguments
    returns a text containing undefinied if the key is not found
    does a parent lookup if key is not found
    returns a text containing undefinied if neither child nor parent contains the key
  optGet
    returns undefined if key is not found
    returns default value if key is not found
    returns text if key is found
    returns text if key is found, with arguments
    replaces the same placeholder if used multiple times
    does a parent lookup if key is not found

scout.texts
  init
    creates Texts objects for each language tag given in the model
    links Texts objects according the sub tags of the language tag
    does not override existing text maps
  get
    returns the Texts for the given language tag
    returns a Texts object with correct linking
    creates an empty Texts object with correct linking if language tag is unknown

TileGridAdapter
  initProperties
    creates a tile filter if tiles are filtered by the server
  _syncFilteredTiles
    creates a tile filter if tiles are filtered by the server

TileGrid
  selectTiles
    selects the given tiles and unselects the previously selected ones
    does not select if selectable is false
    does not select tiles excluded by filter
    triggers a property change event
  deselectTiles
    deselects the given tiles
    triggers a property change event
  insertTiles
    inserts the given tiles
    triggers a property change event
    links the inserted tiles with the tileGrid
  deleteTiles
    deletes the given tiles
    deselects the deleted tiles
    triggers a property change event
    destroys the deleted tiles
    does not destroy the deleted tiles if the tileGrid is not the owner
  deleteAllTiles
    deletes all tiles
    deselects the deleted tiles
    adds empty marker
  setTiles
    applies the order of the new tiles to tiles and filteredTiles
    applies the order of the new tiles to the rendered elements
    applies the order of the new tiles to the filteredTiles if a filter is active
  sort
    uses the comparator to sort the tiles and filteredTiles
    is executed when new tiles are added
    reorders the DOM elements accordingly
  mouseDown
    with multiSelect = false
      on a deselected tile selects the tile
      on a deselected tile selects the tile and unselects others
      on a selected tile does nothing
      sets focusedTile property to clicked tile when selected
    with multiSelect = true
      on a deselected tile selects the tile
      on a deselected tile selects the tile and unselects others
      on a selected tile does nothing
      on a selected tile keeps the selection but deselects others if other tiles are selected
      with CTRL pressed
        on a deselected tile adds the tile to the selection
        on a selected tile removes the tile from the selection
        sets focusedTile property to null when when clicked tile is unselected
  click
    triggers tileClick
    triggers tileSelected and tileClick if selectable
    triggers tileAction when clicked twice
  filter
    filters the tiles according to the added filters
    considers newly inserted tiles
    deselects not accepted tiles
    applies the filters initially, if there is one
    applies the filters initially even if every tile is accepted
    updates empty marker
    still works if moved from one grid to anoter
  addFilters
    adds the given filters
  removeFilters
    invalidates the logical grid
    removes the given filters

VirtualTileGrid
  virtual
    only renders the tiles in the view range, if true
    can be toggled dynamically
    does nothing if all tiles are in the view port
    can be enabled even if tiles have been inserted
    removes tiles correctly when enabled even if a filter is active
  selectTiles
    selects the given tiles but renders the selection only for the tiles in the view range
  deselectTiles
    deselects the given tiles, no matter if they are in the view port or not
  insertTiles
    inserts the given tiles and renders them if they are in the viewport
  deleteTiles
    deletes the given tiles no mather if they are in the view port or not
    destroys the deleted tiles
  deleteAllTiles
    adds empty marker also if virtual is true
  setTiles
    applies the order of the new tiles to the rendered elements in the view range
    applies the order of the new tiles to the filteredTiles if a filter is active
  sort
    reorders the DOM elements in the view range according to the new order
  mouseDown
    with multiSelect = true
      with CTRL pressed
        on a deselected tile adds the tile to the selection, even if the selection is not in the view range
  filter
    removes not accepted elements
    considers newly inserted tiles
    applies the filters initially, if there is one
    applies the filters initially even if every tile is accepted
    updates empty marker
    updates view port if filter changed while container was invisible and scroll parent not at y=0

TileAccordionAdapter
  initProperties
    does not take filters from tile grid in remote case

TileAccordionKeyStrokes
  ctrl + a
    selects all tiles
    deselects all tiles if tiles are already selected
    only considers tiles of expanded groups
  key right
    selects the first tile of the next group if selected tile is the last one in the current group
    selects the first tile of the next group if selected tile is the last one in the current group but only if next group is not collapsed
    selects the first tile if no tile is selected yet
    does nothing if the last tile is already selected
    selects the only tile if there is only one
    with shift
      adds the tile of the next group to the selection if the focused tile is the last tile of the current group
      removes the next tile from the selection if the focused tile is the first tile of the selection
      does nothing if the last tile is already selected
      adds the correct tile to the selection if the focused tile gets invisible
      connects two selections blocks and sets the focused tile to the beginning of the new block
  key left
    selects the last tile of the previous group if selected tile is the first one in the current group
    selects the last tile of the previous group if selected tile is the first one in the current group but only if the group is not collapsed
    selects the last tile if no tile is selected yet
    does nothing if the first tile is already selected
    selects the only tile if there is only one
    with shift
      adds the previous tile to the selection
      does nothing if the first tile is already selected
      removes the previous tile from the selection if the next tile is already selected
      adds the correct tile to the selection if the focused tile gets invisible
      connects two selections blocks and sets the focused tile to the beginning of the new block
  key down
    selects the tile in the grid below if the selected tile is in the last line of the current group
    selects the tile in the grid below if the selected tile is in the last line of the current group but only if the group is not collapsed
    considers filtered tiles
    selects the first tile if no tile is selected yet
    selects the first tile if no tile is selected yet or the focused tile was in a collapsed group
    does nothing if a tile in the last row is already selected
    selects the only tile if there is only one
    selects the last tile if below the focused tile is no tile
    with shift
      adds the tiles between the focused and the newly focused tile to the selection
      removes the tiles between the focused and the newly focused tiles from the selection if the focused tile is the first tile of the selection
      does nothing if a tile in the last row is already selected
      adds the correct tile to the selection if the focused tile gets invisible
      connects two selections blocks and sets the focused tile to the beginning of the new block
  key up
    selects the tile in the grid above if the selected tile is in the first line of the current group
    selects the tile in the grid above if the selected tile is in the first line of the current group but only if the group is not collapsed
    selects the last tile if no tile is selected yet
    does nothing if a tile in the first row is already selected
    selects the only tile if there is only one
    with shift
      adds the tiles between the focused and the newly focused tile to the selection
      removes the tiles between the focused and the newly focused tiles from the selection if the focused tile is the first tile of the selection
      does nothing if a tile in the first row is already selected
      adds the correct tile to the selection if the focused tile gets invisible
      connects two selections blocks and sets the focused tile to the beginning of the new block
  home
    selects the first tile
    selects the first tile but only if the group is not collapsed
    does nothing if the first tile is already selected
    selects only the first tile if first and other tiles are selected
    selects the only tile if there is only one
    with shift
      adds the tiles between the focused and the newly focused tile to the selection
  end
    selects the last tile
    selects the last tile but only if the group is not collapsed
    does nothing if the last tile is already selected
    selects only the last tile if last and other tiles are selected
    selects the only tile if there is only one
    with shift
      adds the tiles between the focused and the newly focused tile to the selection

TileAccordion
  init
    copies properties to tile grids
    does not override properties which are specified by the tile grid itself
  setters
    copy properties to tile grids
  addTileFilter
    adds the filter to every existing tile grid
    adds the filter to future tile grids
  removeTileFilter
    removes the filter to every existing tile grid
    makes sure the filter is not added to future tile grids
  click
    triggers tileClick
    triggers tileSelected and tileClick if selectable
    triggers tileAction when clicked twice
    is not delegated anymore if group is deleted without being destroyed
  selectTiles
    selects one of the given tiles and unselects the previously selected ones
    selects all the given tiles and unselects the previously selected ones if multiSelect is true
    triggers a property change event
    triggers a property change event also if multiSelect is true
    does not select tiles in a collapsed group
  insertGroups
    triggers property change events for tiles inserted by the new group
    adjusts selection if new grid contains selected tiles
    triggers a property change event for the new selection if new grid contains selected tiles
  deleteGroups
    triggers a property change event for tiles of the deleted group

TileGridKeyStrokes
  ctrl + a
    selects all tiles
    deselects all tiles if tiles are already selected
  key right
    selects the next tile
    selects the first tile if no tile is selected yet
    does nothing if the last tile is already selected
    selects the only tile if there is only one
    with shift
      adds the next tile to the selection
      removes the next tile from the selection if the focused tile is the first tile of the selection
      does nothing if the last tile is already selected
      adds the correct tile to the selection if the focused tile gets invisible
      connects two selections blocks and sets the focused tile to the beginning of the new block
  key left
    selects the previous tile
    selects the last tile if no tile is selected yet
    does nothing if the first tile is already selected
    selects the only tile if there is only one
    with shift
      adds the previous tile to the selection
      does nothing if the first tile is already selected
      removes the previous tile from the selection if the next tile is already selected
      adds the correct tile to the selection if the focused tile gets invisible
      connects two selections blocks and sets the focused tile to the beginning of the new block
  key down
    selects the tile below
    selects the first tile if no tile is selected yet
    does nothing if a tile in the last row is already selected
    selects the only tile if there is only one
    selects the last tile if below the focused tile is no tile
    with shift
      adds the tiles between the focused and the newly focused tile to the selection
      removes the tiles between the focused and the newly focused tiles from the selection if the focused tile is the first tile of the selection
      does nothing if a tile in the last row is already selected
      adds the correct tile to the selection if the focused tile gets invisible
      connects two selections blocks and sets the focused tile to the beginning of the new block
  key up
    selects the tile above
    selects the last tile if no tile is selected yet
    does nothing if a tile in the first row is already selected
    selects the only tile if there is only one
    with shift
      adds the tiles between the focused and the newly focused tile to the selection
      removes the tiles between the focused and the newly focused tiles from the selection if the focused tile is the first tile of the selection
      does nothing if a tile in the first row is already selected
      adds the correct tile to the selection if the focused tile gets invisible
      connects two selections blocks and sets the focused tile to the beginning of the new block
  home
    selects the first tile
    does nothing if the first tile is already selected
    selects only the first tile if first and other tiles are selected
    selects the only tile if there is only one
    with shift
      adds the tiles between the focused and the newly focused tile to the selection
  end
    selects the last tile
    does nothing if the first tile is already selected
    selects only the last tile if last and other tiles are selected
    selects the only tile if there is only one
    with shift
      adds the tiles between the focused and the newly focused tile to the selection

scout.WidgetTooltipSpec
  can create and hold a widget

scout.tooltips
  can be installed and uninstalled for a form field
  creates a tooltip on mouseenter and removes it on mouseleave
  if text
    is empty no tooltip will be shown
    is a function, it will be called for tooltip text
    is undefined no tooltip will be shown
    is provided by component, it will be used as tooltip text
    is provided as function by component, it will be called and used as tooltip text
    is provided using options and by component, text provided using options will be used
    is a function, component is passed as first and only argument
  can update the text of an already visible tooltip

CompactTreeAdapter
  selectNodes
    selects child node and notifies server if server selects the first title node

Compacttree
  creation
    adds no empty section node
    adds a node with child node
    adds a node with child nodes in correct order
    deletes a node
    inserts a child node
  node click
    calls selectNodes

TreeAdapter
  node click
    sends selection and click events in one call in this order
    sends selection, check and click events if tree is checkable and checkbox has been clicked
    does not send click if mouse down happens on another node than mouseup
    does not send click if mouse down does not happen on a node
  node double click
    sends clicked, selection, action and expansion events
  node control double click
    sends clicked, selection, action and expansion events
  selectNodes
    sends nodeExpanded for the parents if a hidden node should be selected whose parents are collapsed (revealing the selection)
    does not send selection event if triggered by server
  checkNodes
    does not send checked event if triggered by server
  setNodesExpanded
    does not send expand event if triggered by server
  collapseAll
    sends nodeExpanded for every collapsed node
  onModelAction
    nodesInserted event
      calls insertNodes
    nodesDeleted event
      calls deleteNodes
    allChildNodesDeleted event
      calls deleteAllChildNodes
    nodesSelected event
      calls selectNodes
    nodeChanged event
      calls changeNode
      updates the text of the node
    nodesUpdated event
      calls updateNodes
    childNodeOrderChanged event
      calls updateNodeOrder
    multiple events
      handles delete, collapse, insert, expand events correctly

TreeKeyStrokes
  key up
    selects the above node in collapsed tree
    selects the above node node in expanded tree
    selects the last node if no node is selected yet
    selects the only node if there is only one
    does nothing if first node already is selected
  key down
    selects the node below in collapsed tree
    selects the first node if no row is selected yet
    selects the above node node in expanded tree
    selects the only node if there is only one
    does nothing if last node already is selected
  Home
    selects first node in collapsed tree
    selects first node in expanded tree
  Subtract
     collapses a node
     collapses a node and drill up
  Add
     expands a node
     expands a node and drill down
  End
     jumps to last node
  space
    does nothing if no nodes are selected
    checks the selected node 
    unchecks the selected node 

TreeNodePosition
  _findInsertPositionInFlatList
    insert node between two other nodes on the same level
    insert node between two other nodes on another level
    insert node ahead all other nodes on the same level
    insert node below all other nodes on the same level
    insert a subtree between two other nodes on the same level
    insert a node below another node of the same level with an expanded subtree
  _addChildrenToFlatListIfExpanded
    expands collapsed node
    expands collapsed node with different levels in insertBatch

TreeNode
  isAncestorOf
    returns true if the node is an ancestor of the given node 

Tree
  creation
    adds nodes
    does not add notes if no nodes are provided
  insertNodes
    inserting a child
      inserts in a reasonable order if childNodeIndex is not set
      updates model
      updates model with a complex node containing another node
      updates html document if parent is expanded
      updates html document at a specific position
    only updates the model if parent is collapsed
    expands the parent if parent.expanded = true and the new inserted nodes are the first child nodes
    with breadcrumb style
      inserts a html node if the parent node is selected
      only updates model if the parent node is not selected
      inserts html nodes at a specific position
    expands the parent if parent.expanded = true and the new inserted nodes are the first child nodes
  updateNodes
    update same node instance
    enabled update
      updates the enabled state of the model node
      updates the enabled state of the html node, if visible
      updates the enabled state of the html node after expansion, if not visible
    enabled update on checkable tree
      updates the enabled state of the model node
      updates the enabled state of the html node, if visible
      updates the enabled state of the html node after expansion, if not visible
  changeNode
    updates the text of the model node
    updates the text of the html node
    updates custom cssClass of model and html node
    preserves child-of-selected when root nodes get changed
    preserves child-of-selected when child nodes get changed
    preserves group css class when nodes get updated
  deleteNodes
    deleting a child
      updates model
      updates html document
      updates child node indices
      considers view range (distinguishes between rendered and non rendered rows, adjusts viewRangeRendered)
      calculateViewRangeSize should not return values < 4
    deleting a root node
      updates model
      updates html document
      deleting a collapsed root node
        updates model
        updates html document
    deleting all nodes
      updates model
      updates html document
    deleting child nodes without commentParentNode
      updates model
    deselects the deleted nodes
    unchecks the deleted nodes
  deleteAllChildNodes
    deletes all nodes from model
    deletes all nodes from html document
    deletes all nodes from model for a given parent
    deletes all nodes from html document for a given parent
  checkNodes
    checks a subnode -> mark upper nodes 
    checks a node -> mark upper nodes -> uncheck node and test if node keeps marked because children are checked
    checks a subnode and its sibling -> mark upper nodes -> uncheck one of the siblings
    does not check a disabled node
    does not check a node in a disabled tree
    never checks two nodes if multiCheck is set to false
    checks children if autoCheckChildren is set to true
    does not check the children if autoCheckChildren is set to false
    does not check nodes if checkable is set to false
    checkablestyle.checkbox_tree_node checks row with click event
  node click
    calls tree._onNodeMouseDown
    updates model (selection)
  node double click
    expands/collapses the node
  node control double click
    does the same as control single click (does NOT expand and immediately collapse again)
  checkable node double click
    doesn't expands/collapses the node with checkable style checkbox_tree_node (default)
    expands/collapses the node with checkable style checkbox
  deselectAll
    clears the selection
  selectNodes
    selects a node
    selectedNode()
    expands the parents if a hidden node should be selected whose parents are collapsed (revealing the selection)
    also expands the node if bread crumb mode is enabled
    also expands the parents in breadcrumb mode if a hidden node should be selected after being expanded and collapsed while in its hidden state
    sets css class ancestor-of-selected on every ancestor of the selected element
    sets css class child-of-selected on direct children of the selected element
    may select a node which is not rendered
    sets parent and ancestor css classes even if nodes are not rendered
    sets child-of-selected css class even if nodes are not rendered
  expandNode
    sets css class child-of-selected on direct children if the expanded node is selected
    renders the child nodes if parent is expanded
    with breadcrumb style
      renders the child nodes if parent is expanded
      ensures top level nodes are rendered
  expandAllParentNodes
    expands all parent nodes of the given node (model)
    expands all parent nodes of the given node (html)
  lazyExpandCollapse
    manual expand -> manual collapse node
    manual expand -> lazy collapse node
    lazy expand -> manual collapse node
    lazy expand -> lazy collapse node
  collapseNode
    prevents collapsing in bread crumb mode if node is selected
  collapseAll
    collapses all nodes
  updateItemPath
    Sets css class group on every element within the same group
  updateNodeOrder
    reorders the child nodes if parent is given (model)
    reorders the child nodes if parent is given and expanded (model)
    reorders the child nodes if parent is given (html)
    considers view range when updating child node order
    reorders expanded child nodes if parent is given (model)
    reorders the root nodes if no parent is given (model)
    reorders the root nodes if no parent is given (html)
    reorders expanded root nodes if no parent is given (model)
    reorders expanded root nodes if no parent is given (html)
  tree filter
    filters nodes when filter() is called
    filters nodes when filter is added and removed
    makes sure only filtered nodes are displayed when node gets expanded
    applies filter if a node gets changed
    applies filter if a node gets inserted
    make sure nodes unchanged by filters are attached. See ticket #168957
    shows nodes correctly if nodes are made hidden right before
  tree enabled/disabled
    disables checkboxes when tree is disabled
  test visible list and map
    with initial all expanded nodes
      init with all expanded in correct order
      collapse a node -> all children have to be removed
      filter node -> filtered node and children has to be removed from visible
      update node -> node is filtered
      insert expanded node to expanded parent
      insert child node in filtered parent
      insert child node which should be filtered
    with initial all closed nodes
      init with all collapsed
      insert child node collapsed parent
      expand node
      expand child node
  destroy tree nodes
    should destroy all tree nodes and set destroyed flag
  ensureExpansionVisible
    scrolls current node to the top when expanding a large child set
    scrolls current node up so that the full expansion is visible plus half a node at the bottom
  invisible
    does not try to read node width when invisible

scout.Call
  calls done on success
  calls fail on failure
  retries on failure

Device
  scout.device
    is initialized automatically
  isWindowsTabletMode
    returns true if system is windows and scrollbarWidth is 0
  user agent parsing
    recognizes iOS devices
    recognizes Android devices
    recognizes Windows devices
    recognizes supported browsers

EventSupport
  on / trigger / off
    single event func only triggered until off() is called
    multiple events
  one
    single event func only triggered once when registered with one()
    event parameter passed to registered func
    de-register function registered with one()
  off
    remove all with same type
    remove specific listener

Range
  equals
  add
    returns a new range with the sum of both ranges
    fails if the new range does not border on the existing
    returns a copy of the non empty range if one range is empty
  union
    returns a new range with the sum of both ranges
    returns a copy of both ranges if the ranges don't overlap
    returns a copy of the non empty range if one range is empty
  subtract
    returns a new range where the second range is removed from the first
    returns a copy of the first range if the second does not overlap the first
    returns an empty range if second range completely covers the first
    returns a new range if second range is inside the first and touches a border
    returns an array of two ranges if second range is inside the first but does not touch a border
    returns a copy of the first range if the second range is empty
    returns an empty range if the first range is empty
  subtractAll
    subtracts all given ranges
    may return multiple ranges
  intersect
    returns a new range with the part where both ranges overlap
    returns an empty range if the ranges don't overlap
    returns an empty range if one range is empty

scout.Status
  convenience functions
    create valid status objects

scout.URL
  can parse super-simple URL
  can parse empty hash
  can parse a moderately simple URL
  can convert the URL to string (only changed in order of arguments)
  can handle multi-valued parameters
  can add parameters
  can remove parameters
  can create or replace parameters
  can handle non-ascii characters
  can sort parameters

scout.arrays
  init
    checks whether array has correct length and initial values
  ensure
    creates an array if the param is not an array
    returns the param if the param already is an array
  remove
    removes elements
  removeAll
    removes all given elements
    considers emtpy args
  replace
    replaces elements
  insert
    insert element at index
  insertAll
    insert element array at index
  insertSorted
    inserts element at correct position
  max
    returns 0 iff input contains 0
    behaves like Math.max on null and undefined
    ignores non-number elements
  min
    returns 0 iff input contains 0
    behaves like Math.min on null and undefined
    ignores non-number elements
  move
    replaces elements
  union
    merges two arrays
    merges two arrays and removes duplicates
    also works with floats
    if the arrays contain objects instead of primitives, it uses their id to check for equality
    does not fail if arr1 or arr2 are not defined
  equals
    checks whether two arrays contain the same elements in the same order
    considers emtpy and same arrays
    returns true if one array is undefined/null and the other empty
  equalsIgnoreOrder
    checks whether two arrays contain the same elements without considering the order
    considers emtpy and same arrays
    returns true if one array is undefined/null and the other empty
  findIndex
    returns the index of the element for which the given predicate returns true
  find
    returns the element for which the given predicate returns true
  findFrom
    returns the element for which the given predicate returns true, starting from a given index
    does not return the element for which the given predicate returns true, if it is on the left side of the start index
    also checks the element at start index 
    searches from right to left if backwards is true
  format
    formats an array by concatenating each entry
    returns '' for empty array or if no array was provided
  formatEncoded
    encodes the html of each array element
  first
    finds first array element
  last
    finds last array element
  pushIfDefined
    pushes element only if it is defined
  pushSet
    only pushes the element if it is truthy and does not already exist in the array
  diff
    returns all elements of the first array which are not in the second array
  flatMap
    returns flat list of all merged array elements

scout.dates
  shift
    shifts year or month or day
    shifts year and month if both provided
    shifts year and month and day if all provided
    shift year
      adds or removes years
      handles edge case leap year
    shift month
      adds or removes months
      handles edge case start month
      handles edge case end month
      handles edge case leap year
  shiftToNextDayOfType
    shifts to next day of type
  shiftToPreviousDayOfType
    shifts to previous day of type
  ensureMonday
    shifts to next monday in direction if it is not a monday yet
  isSameDay
    returns true if day, month and year matches
  compareMonths
    returns the differences in number of months
    ignores time
    works with different years
  compareDays
    returns the differences in number of days
    ignores time
    works with different month
    works with different years
  timestamp
    returns a string of the expected length withonly digits
  orderWeekdays
    orders weekdays
  toJsonDate / parseJsonDate
    can handle missing or invalid inputs
    can convert JSON and JS dates
  create
    can create dates
  weekInYear
    can calculate week in year
  format
    can handle invalid values
    can format valid dates
  compare
    can handle invalid dates
    can compare valid dates
  equals
    returns true if the dates are equal, false if not
  isLeapYear
    correctly identifies leap years
  combineDateTime
    creates a new date by using date part of param date and time part of param time.
    uses 01-01-1970 as date part if date is ommitted
    uses 00:00 as time part if time is ommitted

scout.defaultValues
  init
    can load invalid configurations
  applyTo
    can apply default values to JSON
    can apply default values to JSON considering the model variant
    copies default values 'by value'

scout.icons
  parses bitmap icons
  parses font icons (scoutIcons font)
  parses font icons (custom font)
  parses returns a CSS class for custom fonts
  appends CSS class string with custom fonts

scout.models
  get
    load object without type possible
    ensure the object is a copy
  extend
    insert new property into root object
    override property in root object
    insert new property into a non existing array on root object
    override property in tree object
    insert new object into tree object
    insert new object tree into tree object
    insert new object into tree object with fixed index
    insert new object into tree object with relative index
    insert new object into tree object with relative index and two extension elements
    insert object referenced by String
    insert object bound to field
    insert objects array bound to field

scout.numbers
  round
    tests special cases
    tests rounding mode 'UP'
    tests rounding mode 'DOWN'
    tests rounding mode 'CEILING'
    tests rounding mode 'FLOOR'
    tests rounding mode 'HALF_UP'
    tests rounding mode 'HALF_DOWN'
  shiftDecimalPoint
    can shift decimal point to left and right
  randomId
    can generate random IDs
  correlationId
    can generate random correlation IDs
  isNumber
    returns true if the value is a number
    returns false if the value is not a number
    returns false if the value is NaN

scout.objects
  copyProperties
    copies all properties
    copies the properties from prototype as well
    copies only the properties specified by the filter, if there is one
  copyOwnProperties
    copies all properties
    does not copy the properties from prototype
    copies only the properties specified by the filter, if there is one
  countOwnProperties
    counts all own properties
    works for objects created with createMap() function
  valueCopy
    copies an object by value
    works for objects created with createMap() function
  isNumber
    returns true iff argument is a number
  isArray
    returns true when argument is an array
  isNullOrUndefined
    returns true when argument is null or undefined, but not when 0 or any other value
  values
    returns object values
    can handle maps
    createMap with optional properties
    createMap should not have a prototype
  findChildObjectByKey
    find root object
    find object in tree
    find object in array
    find object in nested array
    find object in array within the tree
    search for not existing property
    search for not existing id
    search for not existing property and value
  isPlainObject
    works as expected
  argumentsToArray
    returns an array
  equals
    works as expected
  equalsRecursive
    works as expected
  Constant resolving from plain object / JSON model
    resolveConst
    resolveConstProperty
  optProperty
    should return the last property in the object chain

scout.promises
  oneByOne stops executing after failure
  groupwise stops executing after failed group
  parallel stops executing after failed promise
  does not cut off error arguments
  adds all result arguments, one for each deferred

scout.strings
  nl2br
    can convert newlines to br tags
    encodes html, if the parameter is set to true (default)
  hasText
    can check if string has text
  repeat
    can repeat strings
  padZeroLeft
    can pad strings with 0
  startsWith
    can check if a string starts with another
  endsWith
    can check if a string ends with another
  count
    can count occurrences
  encode
    encodes html
    does not try to encode empty strings
    caches the html element used for encoding
  join
    joins strings
    join works with array as second parameter
  box
    boxes strings
  lowercaseFirstLetter
    converts first letter to lowercase
  uppercaseFirstLetter
    converts first letter to uppercase
  quote
    quotes special characters for regexp
  asString
    converts input to string
  plainText
    converts html to plain text
    does not try to get plaintext of empty strings
    caches the html element used for getting plain text
    considers upper and lower case tags
    converts br, p, div into new lines
    converts li, tr into new lines
    converts td into whitespaces
    converts &nbsp;, &amp;, &gt;, &lt;
    preserves tabs
    removes leading and trailing newlines if configured
    leaves multiple newlines alone unless configured
  insertAt
    can insert strings into other strings
  nvl
    returns an empty string when input is null or undefined
    should throw an error when called with more than one parameter
  countCodePoints
    returns the number of codepoints in a string
  splitMax
    returns not more than limit elements
  removePrefix and removeSuffix
    removePrefix
    removeSuffix

scout.styles
  can merge colors
  can lighten and darken colors
  can calculate and apply legacy styles
  rgb
    parses an rgb string
    supports alpha

Widget
  visitChildren
    visits all descendants
    can be aborted when returning true
    can be aborted when returning scout.TreeVisitResult.TERMINATE
    can skip a subtree when returning scout.TreeVisitResult.SKIP_SUBTREE
  widget
    finds a child with the given widget id
    does not visit other children if the child has been found
  enabled
    should be propagated correctly
    should not be inherited if inheritAccessibility is disabled
    should correctly recalculate enabled state when adding a new field
  rendering
    should set rendering, rendered flags correctly
    should set rendering flag to true _while_ the component is rendering
  clone
    clones only properties marked as clone property
    'text' must be recognized as clone property, but not '$container'
    prefers properties passed as modelOverride
  init
    links widget properties with the widget
  destroy
    destroys the widget
    destroys the children
    does only destroy children if the parent is the owner
    removes the link to parent and owner
  setParent
    links the widget with the new parent
    removes the widget from the old parent if the old is not the owner
    does not remove the widget from the old parent if the old is the owner
    relinks parent destroy listener to the new parent
    triggers hierarchyChange event when parent changes
  remove
    removes the widget
    removes the children
    does not remove the children if owner is removed but parent is still rendered
    removes the widget if removing is animated but parent is removed while animation is running
  setProperty
    triggers a property change event if the value changes
    does not trigger a property change event if the value does not change
    with widget property
      links the widget with the new child widget
      links the widget with the new child widgets if it is an array
      does not fail if new widget is null
    calls the _render* method if there is one for this property
  property css class
    adds or removes custom css class
    does not accidentally remove other css classes on a property change
    addCssClass
      adds the cssClass to the existing classes
      does not add the same class multiple times
    removeCssClass
      removes the cssClass from the existing classes
    toggleCssClass
      toggles the cssClass based on a predicate
  focus
    sets the focus on the container
    schedules the focus request if the widget is not rendered
  Widget properties
    automatically resolves referenced widgets
  scrollTop
    is stored on scroll if scrollbars are installed
    is not stored on scroll if scrollbars are not installed
    is applied again on render after remove
    is set to null if scrollbars are not installed
    is set to null if scrollbars are uninstalled on the fly
  isEveryParentVisible
    should correctly calculate the parents visible state if all parents are visible
    should correctly calculate the parents visible state if one parent is invisible
    should correctly calculate the parents visible state if several parents are invisible
    should correctly calculate the parents visible state if all parents are invisible

Results: 2296 specs, 0 failures, 0 pending

[INFO] stopped o.e.j.s.h.ContextHandler{/webjars,file:/home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/}
[INFO] stopped o.e.j.s.h.ContextHandler{/classpath,file:/home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/}
[INFO] stopped o.e.j.s.h.ContextHandler{/,file:/home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/}
[INFO] stopped o.e.j.s.h.ContextHandler{/ext,file:/home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/}
[INFO] stopped o.e.j.s.h.ContextHandler{/ext,file:/home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/}
[INFO] stopped o.e.j.s.h.ContextHandler{/spec,file:/home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/}
[INFO] stopped o.e.j.s.h.ContextHandler{/src,file:/home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/}
[INFO] 
[INFO] --- maven-jar-plugin:3.1.1:jar (default-jar) @ org.eclipse.scout.rt.ui.html.test ---
[INFO] Building jar: /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt.ui.html.test/target/org.eclipse.scout.rt.ui.html.test-9.0.0-SNAPSHOT.jar
[INFO] 
[INFO] --- maven-site-plugin:3.7.1:attach-descriptor (attach-descriptor) @ org.eclipse.scout.rt.ui.html.test ---
[INFO] Skipping because packaging 'jar' is not pom.
[INFO] 
[INFO] --- maven-jar-plugin:3.1.1:test-jar (attach-tests) @ org.eclipse.scout.rt.ui.html.test ---
[INFO] Building jar: /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt.ui.html.test/target/org.eclipse.scout.rt.ui.html.test-9.0.0-SNAPSHOT-tests.jar
[INFO] 
[INFO] --- maven-source-plugin:3.0.1:jar-no-fork (attach-sources) @ org.eclipse.scout.rt.ui.html.test ---
[INFO] Building jar: /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt.ui.html.test/target/org.eclipse.scout.rt.ui.html.test-9.0.0-SNAPSHOT-sources.jar
[INFO] 
[INFO] --- maven-source-plugin:3.0.1:test-jar-no-fork (attach-test-sources) @ org.eclipse.scout.rt.ui.html.test ---
[INFO] Building jar: /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt.ui.html.test/target/org.eclipse.scout.rt.ui.html.test-9.0.0-SNAPSHOT-test-sources.jar
[INFO] 
[INFO] --- duplicate-finder-maven-plugin:1.3.0:check (default) @ org.eclipse.scout.rt.ui.html.test ---
[INFO] Checking compile classpath
[INFO] Checking runtime classpath
[INFO] Checking test classpath
[INFO] 
[INFO] --- animal-sniffer-maven-plugin:1.17:check (enforce-java-api-compatibility) @ org.eclipse.scout.rt.ui.html.test ---
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java18:1.0
[INFO] 
[INFO] -----< org.eclipse.scout.rt:org.eclipse.scout.rt.ui.html.selenium >-----
[INFO] Building org.eclipse.scout.rt:org.eclipse.scout.rt.ui.html.selenium 9.0.0-SNAPSHOT [42/49]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ org.eclipse.scout.rt.ui.html.selenium ---
[INFO] 
[INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-rules) @ org.eclipse.scout.rt.ui.html.selenium ---
[INFO] 
[INFO] --- git-commit-id-plugin:2.2.5:revision (default) @ org.eclipse.scout.rt.ui.html.selenium ---
[INFO] 
[INFO] --- jacoco-maven-plugin:0.8.2:prepare-agent (default) @ org.eclipse.scout.rt.ui.html.selenium ---
[INFO] master_test_jacocoArgLine set to -javaagent:/home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/.repository/org/jacoco/org.jacoco.agent/0.8.2/org.jacoco.agent-0.8.2-runtime.jar=destfile=/home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt.ui.html.selenium/../org.eclipse.scout.rt/target/jacoco-all.exec
[INFO] 
[INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ org.eclipse.scout.rt.ui.html.selenium ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ org.eclipse.scout.rt.ui.html.selenium ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 19 source files to /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt.ui.html.selenium/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ org.eclipse.scout.rt.ui.html.selenium ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt.ui.html.selenium/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.0:testCompile (default-testCompile) @ org.eclipse.scout.rt.ui.html.selenium ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.22.1:test (default-test) @ org.eclipse.scout.rt.ui.html.selenium ---
[INFO] No tests to run.
[INFO] 
[INFO] --- maven-jar-plugin:3.1.1:jar (default-jar) @ org.eclipse.scout.rt.ui.html.selenium ---
[INFO] Building jar: /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt.ui.html.selenium/target/org.eclipse.scout.rt.ui.html.selenium-9.0.0-SNAPSHOT.jar
[INFO] 
[INFO] --- maven-site-plugin:3.7.1:attach-descriptor (attach-descriptor) @ org.eclipse.scout.rt.ui.html.selenium ---
[INFO] Skipping because packaging 'jar' is not pom.
[INFO] 
[INFO] --- maven-jar-plugin:3.1.1:test-jar (attach-tests) @ org.eclipse.scout.rt.ui.html.selenium ---
[INFO] Skipping packaging of the test-jar
[INFO] 
[INFO] --- maven-source-plugin:3.0.1:jar-no-fork (attach-sources) @ org.eclipse.scout.rt.ui.html.selenium ---
[INFO] Building jar: /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt.ui.html.selenium/target/org.eclipse.scout.rt.ui.html.selenium-9.0.0-SNAPSHOT-sources.jar
[INFO] 
[INFO] --- maven-source-plugin:3.0.1:test-jar-no-fork (attach-test-sources) @ org.eclipse.scout.rt.ui.html.selenium ---
[INFO] No sources in project. Archive not created.
[INFO] 
[INFO] --- duplicate-finder-maven-plugin:1.3.0:check (default) @ org.eclipse.scout.rt.ui.html.selenium ---
[INFO] Checking compile classpath
[INFO] Checking runtime classpath
[INFO] Checking test classpath
[INFO] 
[INFO] --- animal-sniffer-maven-plugin:1.17:check (enforce-java-api-compatibility) @ org.eclipse.scout.rt.ui.html.selenium ---
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java18:1.0
[INFO] 
[INFO] --< org.eclipse.scout.rt:org.eclipse.scout.rt.ui.html.scriptprocessor.test >--
[INFO] Building org.eclipse.scout.rt:org.eclipse.scout.rt.ui.html.scriptprocessor.test 9.0.0-SNAPSHOT [43/49]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ org.eclipse.scout.rt.ui.html.scriptprocessor.test ---
[INFO] 
[INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-rules) @ org.eclipse.scout.rt.ui.html.scriptprocessor.test ---
[INFO] 
[INFO] --- git-commit-id-plugin:2.2.5:revision (default) @ org.eclipse.scout.rt.ui.html.scriptprocessor.test ---
[INFO] 
[INFO] --- jacoco-maven-plugin:0.8.2:prepare-agent (default) @ org.eclipse.scout.rt.ui.html.scriptprocessor.test ---
[INFO] master_test_jacocoArgLine set to -javaagent:/home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/.repository/org/jacoco/org.jacoco.agent/0.8.2/org.jacoco.agent-0.8.2-runtime.jar=destfile=/home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt.ui.html.scriptprocessor.test/../org.eclipse.scout.rt/target/jacoco-all.exec
[INFO] 
[INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ org.eclipse.scout.rt.ui.html.scriptprocessor.test ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt.ui.html.scriptprocessor.test/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ org.eclipse.scout.rt.ui.html.scriptprocessor.test ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ org.eclipse.scout.rt.ui.html.scriptprocessor.test ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt.ui.html.scriptprocessor.test/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.0:testCompile (default-testCompile) @ org.eclipse.scout.rt.ui.html.scriptprocessor.test ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 3 source files to /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt.ui.html.scriptprocessor.test/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.22.1:test (default-test) @ org.eclipse.scout.rt.ui.html.scriptprocessor.test ---
[INFO] Surefire report directory: /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt.ui.html.scriptprocessor.test/target/surefire-reports
[INFO] 
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running org.eclipse.scout.rt.ui.html.scriptprocessor.ScriptProcessorTest
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.915 s - in org.eclipse.scout.rt.ui.html.scriptprocessor.ScriptProcessorTest
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0
[INFO] 
[INFO] 
[INFO] --- maven-jar-plugin:3.1.1:jar (default-jar) @ org.eclipse.scout.rt.ui.html.scriptprocessor.test ---
[WARNING] JAR will be empty - no content was marked for inclusion!
[INFO] Building jar: /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt.ui.html.scriptprocessor.test/target/org.eclipse.scout.rt.ui.html.scriptprocessor.test-9.0.0-SNAPSHOT.jar
[INFO] 
[INFO] --- maven-site-plugin:3.7.1:attach-descriptor (attach-descriptor) @ org.eclipse.scout.rt.ui.html.scriptprocessor.test ---
[INFO] Skipping because packaging 'jar' is not pom.
[INFO] 
[INFO] --- maven-jar-plugin:3.1.1:test-jar (attach-tests) @ org.eclipse.scout.rt.ui.html.scriptprocessor.test ---
[INFO] Building jar: /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt.ui.html.scriptprocessor.test/target/org.eclipse.scout.rt.ui.html.scriptprocessor.test-9.0.0-SNAPSHOT-tests.jar
[INFO] 
[INFO] --- maven-source-plugin:3.0.1:jar-no-fork (attach-sources) @ org.eclipse.scout.rt.ui.html.scriptprocessor.test ---
[INFO] No sources in project. Archive not created.
[INFO] 
[INFO] --- maven-source-plugin:3.0.1:test-jar-no-fork (attach-test-sources) @ org.eclipse.scout.rt.ui.html.scriptprocessor.test ---
[INFO] Building jar: /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt.ui.html.scriptprocessor.test/target/org.eclipse.scout.rt.ui.html.scriptprocessor.test-9.0.0-SNAPSHOT-test-sources.jar
[INFO] 
[INFO] --- duplicate-finder-maven-plugin:1.3.0:check (default) @ org.eclipse.scout.rt.ui.html.scriptprocessor.test ---
[INFO] Checking compile classpath
[INFO] Checking runtime classpath
[INFO] Checking test classpath
[INFO] 
[INFO] --- animal-sniffer-maven-plugin:1.17:check (enforce-java-api-compatibility) @ org.eclipse.scout.rt.ui.html.scriptprocessor.test ---
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java18:1.0
[INFO] 
[INFO] -------< org.eclipse.scout.rt:org.eclipse.scout.rt.svg.ui.html >--------
[INFO] Building org.eclipse.scout.rt:org.eclipse.scout.rt.svg.ui.html 9.0.0-SNAPSHOT [44/49]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ org.eclipse.scout.rt.svg.ui.html ---
[INFO] 
[INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-rules) @ org.eclipse.scout.rt.svg.ui.html ---
[INFO] 
[INFO] --- git-commit-id-plugin:2.2.5:revision (default) @ org.eclipse.scout.rt.svg.ui.html ---
[INFO] 
[INFO] --- jacoco-maven-plugin:0.8.2:prepare-agent (default) @ org.eclipse.scout.rt.svg.ui.html ---
[INFO] master_test_jacocoArgLine set to -javaagent:/home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/.repository/org/jacoco/org.jacoco.agent/0.8.2/org.jacoco.agent-0.8.2-runtime.jar=destfile=/home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt.svg.ui.html/../org.eclipse.scout.rt/target/jacoco-all.exec
[INFO] 
[INFO] --- build-helper-maven-plugin:3.0.0:add-resource (add-js-resource) @ org.eclipse.scout.rt.svg.ui.html ---
[INFO] 
[INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ org.eclipse.scout.rt.svg.ui.html ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] Copying 5 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ org.eclipse.scout.rt.svg.ui.html ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt.svg.ui.html/target/classes
[INFO] 
[INFO] --- jandex-maven-plugin:1.0.5:jandex (make-index) @ org.eclipse.scout.rt.svg.ui.html ---
[INFO] 
[INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ org.eclipse.scout.rt.svg.ui.html ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt.svg.ui.html/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.0:testCompile (default-testCompile) @ org.eclipse.scout.rt.svg.ui.html ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.22.1:test (default-test) @ org.eclipse.scout.rt.svg.ui.html ---
[INFO] No tests to run.
[INFO] 
[INFO] --- maven-jar-plugin:3.1.1:jar (default-jar) @ org.eclipse.scout.rt.svg.ui.html ---
[INFO] Building jar: /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt.svg.ui.html/target/org.eclipse.scout.rt.svg.ui.html-9.0.0-SNAPSHOT.jar
[INFO] 
[INFO] --- maven-site-plugin:3.7.1:attach-descriptor (attach-descriptor) @ org.eclipse.scout.rt.svg.ui.html ---
[INFO] Skipping because packaging 'jar' is not pom.
[INFO] 
[INFO] --- maven-jar-plugin:3.1.1:test-jar (attach-tests) @ org.eclipse.scout.rt.svg.ui.html ---
[INFO] Skipping packaging of the test-jar
[INFO] 
[INFO] --- maven-source-plugin:3.0.1:jar-no-fork (attach-sources) @ org.eclipse.scout.rt.svg.ui.html ---
[INFO] Building jar: /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt.svg.ui.html/target/org.eclipse.scout.rt.svg.ui.html-9.0.0-SNAPSHOT-sources.jar
[INFO] 
[INFO] --- maven-source-plugin:3.0.1:test-jar-no-fork (attach-test-sources) @ org.eclipse.scout.rt.svg.ui.html ---
[INFO] No sources in project. Archive not created.
[INFO] 
[INFO] --- duplicate-finder-maven-plugin:1.3.0:check (default) @ org.eclipse.scout.rt.svg.ui.html ---
[INFO] Checking compile classpath
[INFO] Checking runtime classpath
[INFO] Checking test classpath
[INFO] 
[INFO] --- animal-sniffer-maven-plugin:1.17:check (enforce-java-api-compatibility) @ org.eclipse.scout.rt.svg.ui.html ---
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java18:1.0
[INFO] 
[INFO] ----------< org.eclipse.scout.rt:org.eclipse.scout.dev.jetty >----------
[INFO] Building org.eclipse.scout.rt:org.eclipse.scout.dev.jetty 9.0.0-SNAPSHOT [45/49]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ org.eclipse.scout.dev.jetty ---
[INFO] 
[INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-rules) @ org.eclipse.scout.dev.jetty ---
[INFO] 
[INFO] --- git-commit-id-plugin:2.2.5:revision (default) @ org.eclipse.scout.dev.jetty ---
[INFO] 
[INFO] --- jacoco-maven-plugin:0.8.2:prepare-agent (default) @ org.eclipse.scout.dev.jetty ---
[INFO] master_test_jacocoArgLine set to -javaagent:/home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/.repository/org/jacoco/org.jacoco.agent/0.8.2/org.jacoco.agent-0.8.2-runtime.jar=destfile=/home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.dev.jetty/../org.eclipse.scout.rt/target/jacoco-all.exec
[INFO] 
[INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ org.eclipse.scout.dev.jetty ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.dev.jetty/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ org.eclipse.scout.dev.jetty ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.dev.jetty/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ org.eclipse.scout.dev.jetty ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.dev.jetty/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.0:testCompile (default-testCompile) @ org.eclipse.scout.dev.jetty ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.22.1:test (default-test) @ org.eclipse.scout.dev.jetty ---
[INFO] No tests to run.
[INFO] 
[INFO] --- maven-jar-plugin:3.1.1:jar (default-jar) @ org.eclipse.scout.dev.jetty ---
[INFO] Building jar: /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.dev.jetty/target/org.eclipse.scout.dev.jetty-9.0.0-SNAPSHOT.jar
[INFO] 
[INFO] --- maven-site-plugin:3.7.1:attach-descriptor (attach-descriptor) @ org.eclipse.scout.dev.jetty ---
[INFO] Skipping because packaging 'jar' is not pom.
[INFO] 
[INFO] --- maven-jar-plugin:3.1.1:test-jar (attach-tests) @ org.eclipse.scout.dev.jetty ---
[INFO] Skipping packaging of the test-jar
[INFO] 
[INFO] --- maven-source-plugin:3.0.1:jar-no-fork (attach-sources) @ org.eclipse.scout.dev.jetty ---
[INFO] Building jar: /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.dev.jetty/target/org.eclipse.scout.dev.jetty-9.0.0-SNAPSHOT-sources.jar
[INFO] 
[INFO] --- maven-source-plugin:3.0.1:test-jar-no-fork (attach-test-sources) @ org.eclipse.scout.dev.jetty ---
[INFO] No sources in project. Archive not created.
[INFO] 
[INFO] --- duplicate-finder-maven-plugin:1.3.0:check (default) @ org.eclipse.scout.dev.jetty ---
[INFO] Checking compile classpath
[INFO] Checking runtime classpath
[INFO] Checking test classpath
[INFO] 
[INFO] --- animal-sniffer-maven-plugin:1.17:check (enforce-java-api-compatibility) @ org.eclipse.scout.dev.jetty ---
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java18:1.0
[INFO] 
[INFO] ----< org.eclipse.scout.rt:org.eclipse.scout.dev.jetty.test.affix >-----
[INFO] Building org.eclipse.scout.rt:org.eclipse.scout.dev.jetty.test.affix 9.0.0-SNAPSHOT [46/49]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ org.eclipse.scout.dev.jetty.test.affix ---
[INFO] 
[INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-rules) @ org.eclipse.scout.dev.jetty.test.affix ---
[INFO] 
[INFO] --- git-commit-id-plugin:2.2.5:revision (default) @ org.eclipse.scout.dev.jetty.test.affix ---
[INFO] 
[INFO] --- jacoco-maven-plugin:0.8.2:prepare-agent (default) @ org.eclipse.scout.dev.jetty.test.affix ---
[INFO] master_test_jacocoArgLine set to -javaagent:/home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/.repository/org/jacoco/org.jacoco.agent/0.8.2/org.jacoco.agent-0.8.2-runtime.jar=destfile=/home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.dev.jetty.test.affix/../org.eclipse.scout.rt/target/jacoco-all.exec
[INFO] 
[INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ org.eclipse.scout.dev.jetty.test.affix ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ org.eclipse.scout.dev.jetty.test.affix ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ org.eclipse.scout.dev.jetty.test.affix ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.dev.jetty.test.affix/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.0:testCompile (default-testCompile) @ org.eclipse.scout.dev.jetty.test.affix ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.22.1:test (default-test) @ org.eclipse.scout.dev.jetty.test.affix ---
[INFO] No tests to run.
[INFO] 
[INFO] --- maven-jar-plugin:3.1.1:jar (default-jar) @ org.eclipse.scout.dev.jetty.test.affix ---
[INFO] Building jar: /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.dev.jetty.test.affix/target/org.eclipse.scout.dev.jetty.test.affix-9.0.0-SNAPSHOT.jar
[INFO] 
[INFO] --- maven-site-plugin:3.7.1:attach-descriptor (attach-descriptor) @ org.eclipse.scout.dev.jetty.test.affix ---
[INFO] Skipping because packaging 'jar' is not pom.
[INFO] 
[INFO] --- maven-jar-plugin:3.1.1:test-jar (attach-tests) @ org.eclipse.scout.dev.jetty.test.affix ---
[INFO] Skipping packaging of the test-jar
[INFO] 
[INFO] --- maven-source-plugin:3.0.1:jar-no-fork (attach-sources) @ org.eclipse.scout.dev.jetty.test.affix ---
[INFO] Building jar: /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.dev.jetty.test.affix/target/org.eclipse.scout.dev.jetty.test.affix-9.0.0-SNAPSHOT-sources.jar
[INFO] 
[INFO] --- maven-source-plugin:3.0.1:test-jar-no-fork (attach-test-sources) @ org.eclipse.scout.dev.jetty.test.affix ---
[INFO] No sources in project. Archive not created.
[INFO] 
[INFO] --- duplicate-finder-maven-plugin:1.3.0:check (default) @ org.eclipse.scout.dev.jetty.test.affix ---
[INFO] Checking compile classpath
[INFO] Checking runtime classpath
[INFO] Checking test classpath
[INFO] 
[INFO] --- animal-sniffer-maven-plugin:1.17:check (enforce-java-api-compatibility) @ org.eclipse.scout.dev.jetty.test.affix ---
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java18:1.0
[INFO] 
[INFO] -------< org.eclipse.scout.rt:org.eclipse.scout.dev.jetty.test >--------
[INFO] Building org.eclipse.scout.rt:org.eclipse.scout.dev.jetty.test 9.0.0-SNAPSHOT [47/49]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ org.eclipse.scout.dev.jetty.test ---
[INFO] 
[INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-rules) @ org.eclipse.scout.dev.jetty.test ---
[INFO] 
[INFO] --- git-commit-id-plugin:2.2.5:revision (default) @ org.eclipse.scout.dev.jetty.test ---
[INFO] 
[INFO] --- jacoco-maven-plugin:0.8.2:prepare-agent (default) @ org.eclipse.scout.dev.jetty.test ---
[INFO] master_test_jacocoArgLine set to -javaagent:/home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/.repository/org/jacoco/org.jacoco.agent/0.8.2/org.jacoco.agent-0.8.2-runtime.jar=destfile=/home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.dev.jetty.test/../org.eclipse.scout.rt/target/jacoco-all.exec
[INFO] 
[INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ org.eclipse.scout.dev.jetty.test ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 7 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ org.eclipse.scout.dev.jetty.test ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ org.eclipse.scout.dev.jetty.test ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.dev.jetty.test/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.0:testCompile (default-testCompile) @ org.eclipse.scout.dev.jetty.test ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.dev.jetty.test/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.22.1:test (default-test) @ org.eclipse.scout.dev.jetty.test ---
[INFO] Surefire report directory: /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.dev.jetty.test/target/surefire-reports
[INFO] 
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running org.eclipse.scout.dev.jetty.JettyServerTest
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.096 s - in org.eclipse.scout.dev.jetty.JettyServerTest
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0
[INFO] 
[INFO] 
[INFO] --- maven-jar-plugin:3.1.1:jar (default-jar) @ org.eclipse.scout.dev.jetty.test ---
[INFO] Building jar: /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.dev.jetty.test/target/org.eclipse.scout.dev.jetty.test-9.0.0-SNAPSHOT.jar
[INFO] 
[INFO] --- maven-site-plugin:3.7.1:attach-descriptor (attach-descriptor) @ org.eclipse.scout.dev.jetty.test ---
[INFO] Skipping because packaging 'jar' is not pom.
[INFO] 
[INFO] --- maven-jar-plugin:3.1.1:test-jar (attach-tests) @ org.eclipse.scout.dev.jetty.test ---
[INFO] Building jar: /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.dev.jetty.test/target/org.eclipse.scout.dev.jetty.test-9.0.0-SNAPSHOT-tests.jar
[INFO] 
[INFO] --- maven-source-plugin:3.0.1:jar-no-fork (attach-sources) @ org.eclipse.scout.dev.jetty.test ---
[INFO] Building jar: /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.dev.jetty.test/target/org.eclipse.scout.dev.jetty.test-9.0.0-SNAPSHOT-sources.jar
[INFO] 
[INFO] --- maven-source-plugin:3.0.1:test-jar-no-fork (attach-test-sources) @ org.eclipse.scout.dev.jetty.test ---
[INFO] Building jar: /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.dev.jetty.test/target/org.eclipse.scout.dev.jetty.test-9.0.0-SNAPSHOT-test-sources.jar
[INFO] 
[INFO] --- duplicate-finder-maven-plugin:1.3.0:check (default) @ org.eclipse.scout.dev.jetty.test ---
[INFO] Checking compile classpath
[INFO] Checking runtime classpath
[INFO] Checking test classpath
[INFO] 
[INFO] --- animal-sniffer-maven-plugin:1.17:check (enforce-java-api-compatibility) @ org.eclipse.scout.dev.jetty.test ---
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java18:1.0
[INFO] 
[INFO] ---------< org.eclipse.scout.rt:org.eclipse.scout.rt-settings >---------
[INFO] Building org.eclipse.scout.rt-settings 9.0.0-SNAPSHOT            [48/49]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ org.eclipse.scout.rt-settings ---
[INFO] 
[INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-rules) @ org.eclipse.scout.rt-settings ---
[INFO] 
[INFO] --- git-commit-id-plugin:2.2.5:revision (default) @ org.eclipse.scout.rt-settings ---
[INFO] 
[INFO] --- jacoco-maven-plugin:0.8.2:prepare-agent (default) @ org.eclipse.scout.rt-settings ---
[INFO] master_test_jacocoArgLine set to -javaagent:/home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/.repository/org/jacoco/org.jacoco.agent/0.8.2/org.jacoco.agent-0.8.2-runtime.jar=destfile=/home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt-settings/../org.eclipse.scout.rt/target/jacoco-all.exec
[INFO] 
[INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ org.eclipse.scout.rt-settings ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 15 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ org.eclipse.scout.rt-settings ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ org.eclipse.scout.rt-settings ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt-settings/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.0:testCompile (default-testCompile) @ org.eclipse.scout.rt-settings ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.22.1:test (default-test) @ org.eclipse.scout.rt-settings ---
[INFO] No tests to run.
[INFO] 
[INFO] --- maven-jar-plugin:3.1.1:jar (default-jar) @ org.eclipse.scout.rt-settings ---
[INFO] Building jar: /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt-settings/target/org.eclipse.scout.rt-settings-9.0.0-SNAPSHOT.jar
[INFO] 
[INFO] --- maven-site-plugin:3.7.1:attach-descriptor (attach-descriptor) @ org.eclipse.scout.rt-settings ---
[INFO] Skipping because packaging 'jar' is not pom.
[INFO] 
[INFO] --- maven-jar-plugin:3.1.1:test-jar (attach-tests) @ org.eclipse.scout.rt-settings ---
[INFO] Skipping packaging of the test-jar
[INFO] 
[INFO] --- maven-source-plugin:3.0.1:jar-no-fork (attach-sources) @ org.eclipse.scout.rt-settings ---
[INFO] Building jar: /home/jenkins/agent/workspace/org.eclipse.scout.rt_5_2_and_higher_gerrit/org.eclipse.scout.rt-settings/target/org.eclipse.scout.rt-settings-9.0.0-SNAPSHOT-sources.jar
[INFO] 
[INFO] --- maven-source-plugin:3.0.1:test-jar-no-fork (attach-test-sources) @ org.eclipse.scout.rt-settings ---
[INFO] No sources in project. Archive not created.
[INFO] 
[INFO] --- duplicate-finder-maven-plugin:1.3.0:check (default) @ org.eclipse.scout.rt-settings ---
[INFO] Checking compile classpath
[INFO] Checking runtime classpath
[INFO] Checking test classpath
[INFO] 
[INFO] --- animal-sniffer-maven-plugin:1.17:check (enforce-java-api-compatibility) @ org.eclipse.scout.rt-settings ---
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java18:1.0
[INFO] 
[INFO] -----------< org.eclipse.scout.rt:org.eclipse.scout.rt-root >-----------
[INFO] Building Eclipse Scout RT ROOT Module 9.0.0-SNAPSHOT             [49/49]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ org.eclipse.scout.rt-root ---
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for Eclipse Scout RT ROOT Module 9.0.0-SNAPSHOT:
[INFO] 
[INFO] Eclipse Scout RT ................................... SUCCESS [03:25 min]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.json ........ SUCCESS [ 29.429 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.platform . SUCCESS [ 18.238 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.platform.test SUCCESS [02:06 min]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.shared ... SUCCESS [ 16.994 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.shared.test SUCCESS [  7.165 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.server.commons SUCCESS [  3.463 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.server.commons.test SUCCESS [ 11.402 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.mom.api .. SUCCESS [  2.555 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.server ... SUCCESS [  2.966 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.server.test SUCCESS [ 17.305 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.server.jaxws SUCCESS [  5.447 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.jaxws.apt ... SUCCESS [  3.381 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.server.jaxws.test SUCCESS [ 39.828 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.server.jdbc SUCCESS [  2.943 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.server.jdbc.test SUCCESS [  5.890 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.dataobject SUCCESS [  2.542 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.jackson .. SUCCESS [  6.173 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.dataobject.test SUCCESS [  4.406 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.jackson.test SUCCESS [  5.615 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.mom.api.test SUCCESS [  4.115 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.mom.jms .. SUCCESS [  3.882 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.mom.jms.test SUCCESS [03:20 min]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.mail ..... SUCCESS [  3.682 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.mail.test  SUCCESS [  4.876 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.security . SUCCESS [  2.536 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.security.test SUCCESS [  4.347 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.dataformat SUCCESS [  4.078 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.rest ..... SUCCESS [  4.812 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.rest.test  SUCCESS [  5.023 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.rest.jackson SUCCESS [  2.549 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.rest.jersey.client SUCCESS [  7.377 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.rest.jersey.test SUCCESS [ 18.814 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.client ... SUCCESS [  5.841 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.client.test SUCCESS [ 26.362 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.svg.client SUCCESS [ 14.285 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.svg.client.test SUCCESS [  4.266 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.serverbridge SUCCESS [  2.730 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.ui.html.scriptprocessor SUCCESS [ 26.052 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.ui.html .. SUCCESS [  5.218 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.ui.html.test SUCCESS [02:40 min]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.ui.html.selenium SUCCESS [ 11.851 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.ui.html.scriptprocessor.test SUCCESS [  4.183 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.rt.svg.ui.html SUCCESS [  2.992 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.dev.jetty ... SUCCESS [  5.697 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.dev.jetty.test.affix SUCCESS [  2.491 s]
[INFO] org.eclipse.scout.rt:org.eclipse.scout.dev.jetty.test SUCCESS [  3.517 s]
[INFO] org.eclipse.scout.rt-settings ...................... SUCCESS [  2.487 s]
[INFO] Eclipse Scout RT ROOT Module ....................... SUCCESS [  0.261 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  17:45 min
[INFO] Finished at: 2021-02-26T10:05:07Z
[INFO] ------------------------------------------------------------------------
[org.eclipse.scout.rt_5_2_and_higher_gerrit] $ /bin/sh -xe /tmp/jenkins8696042869995886674.sh
+ find . -maxdepth 2 -type d -name node_modules -prune -exec rm -r '{}' ';'
Recording test results
[Checks API] No suitable checks publisher found.
Finished: SUCCESS