Class SplitLayoutTester<T extends SplitLayout>

java.lang.Object
com.vaadin.browserless.ComponentTester<T>
com.vaadin.flow.component.splitlayout.SplitLayoutTester<T>
Type Parameters:
T - component type
All Implemented Interfaces:
Clickable<T>

public class SplitLayoutTester<T extends SplitLayout> extends ComponentTester<T>
Tester for SplitLayout components.

Simulates the user dragging the splitter and gives access to the components shown in the primary and secondary splits.

  • Constructor Details

    • SplitLayoutTester

      public SplitLayoutTester(T component)
      Wrap given component for testing.
      Parameters:
      component - target component
  • Method Details

    • dragSplitterTo

      public void dragSplitterTo(double position)
      Simulates the user dragging the splitter so that the primary split gets the given percentage of the available space.

      The drag is delivered the same way the browser delivers it, so the component updates its splitter position and notifies splitter drag end listeners.

      The component rounds the position it derives from a drag to two decimals, so getSplitterPosition() reports 33.33 after dragging to 33.333.

      Parameters:
      position - the new splitter position, as a percentage between 0 and 100
      Throws:
      IllegalArgumentException - if the position is not between 0 and 100
      IllegalStateException - if the layout is not usable
    • getSplitterPosition

      @Nullable public @Nullable Double getSplitterPosition()
      Gets the relative position of the splitter, as a percentage between 0 and 100 of the space given to the primary split. A position that comes from a drag is rounded to two decimals by the component.
      Returns:
      the splitter position, or null if it has neither been set on the server nor been dragged by the user
      Throws:
      IllegalStateException - if the layout is not visible to the user
    • getPrimaryComponent

      @Nullable public @Nullable Component getPrimaryComponent()
      Gets the component shown in the primary split.
      Returns:
      the primary component, or null if the primary split is empty
      Throws:
      IllegalStateException - if the layout is not visible to the user
    • getSecondaryComponent

      @Nullable public @Nullable Component getSecondaryComponent()
      Gets the component shown in the secondary split.
      Returns:
      the secondary component, or null if the secondary split is empty
      Throws:
      IllegalStateException - if the layout is not visible to the user
    • findInPrimary

      public <R extends Component> ComponentQuery<R> findInPrimary(Class<R> componentType)
      Searches the primary split for components of the given type.

      The primary split holds the components added with SplitLayout.addToPrimary(Component...). Components nested inside them are found too, so a button inside the layout filling the split is reached as well as a button added to the split directly.

      Type Parameters:
      R - the type of the components to search for
      Parameters:
      componentType - the type of the components to search for
      Returns:
      a query for components of the given type in the primary split
      Throws:
      IllegalStateException - if the layout is not visible to the user
    • findInSecondary

      public <R extends Component> ComponentQuery<R> findInSecondary(Class<R> componentType)
      Searches the secondary split for components of the given type.

      The secondary split holds the components added with SplitLayout.addToSecondary(Component...). Components nested inside them are found too, so a button inside the layout filling the split is reached as well as a button added to the split directly.

      Type Parameters:
      R - the type of the components to search for
      Parameters:
      componentType - the type of the components to search for
      Returns:
      a query for components of the given type in the secondary split
      Throws:
      IllegalStateException - if the layout is not visible to the user