functional/ControlsTests/test/javafx/scene/control/test/ListView/TestBase.java

Print this page




  32 import javafx.scene.Scene;
  33 import javafx.scene.control.*;
  34 import static javafx.scene.control.test.ListView.NewListViewApp.*;
  35 import javafx.scene.control.test.util.MultipleSelectionHelper;
  36 import javafx.scene.control.test.util.MultipleSelectionHelper.Range;
  37 import javafx.scene.control.test.util.TableListCommonTests;
  38 import static javafx.scene.control.test.utils.ComponentsFactory.*;
  39 import javafx.scene.control.test.utils.SelectionFormatter;
  40 import javafx.scene.control.test.utils.ptables.AbstractPropertyController.SettingType;
  41 import static javafx.scene.control.test.utils.ptables.NodesChoserFactory.*;
  42 import javafx.scene.text.Text;
  43 import org.jemmy.Point;
  44 import org.jemmy.action.GetAction;
  45 import org.jemmy.control.Wrap;
  46 import org.jemmy.env.Environment;
  47 import org.jemmy.fx.ByID;
  48 import org.jemmy.fx.Root;
  49 import org.jemmy.fx.control.ListItemWrap.ListItemByObjectLookup;
  50 import org.jemmy.interfaces.Keyboard.KeyboardButtons;
  51 import org.jemmy.interfaces.Keyboard.KeyboardModifiers;

  52 import org.jemmy.interfaces.Mouse;
  53 import org.jemmy.interfaces.Parent;
  54 import org.jemmy.interfaces.Selectable;
  55 import org.jemmy.interfaces.Showable;
  56 import org.jemmy.lookup.Lookup;
  57 import org.jemmy.lookup.LookupCriteria;
  58 import org.jemmy.timing.State;
  59 import org.junit.After;
  60 import org.junit.Assert;
  61 import org.junit.Before;
  62 import org.junit.BeforeClass;
  63 import test.javaclient.shared.Utils;
  64 import static test.javaclient.shared.TestUtil.isEmbedded;
  65 
  66 /**
  67  * @author Alexander Kirov
  68  */
  69 public class TestBase extends TableListCommonTests {
  70 
  71     static Wrap<? extends Scene> scene;


 218     }
 219 
 220     protected void removeFromPos(int position) {
 221         setText(findTextField(REMOVE_ITEM_POS_TEXT_FIELD_ID), position);
 222         clickButtonForTestPurpose(REMOVE_BUTTON_ID);
 223     }
 224 
 225     protected void scrollTo(int position) {
 226         setText(findTextField(SCROLL_TO_TEXT_FIELD_ID), position);
 227         clickButtonForTestPurpose(SCROLL_TO_BUTTON_ID);
 228     }
 229 
 230     protected void changeSelectionModel(int position) {
 231         clickButtonForTestPurpose(CHANGE_SELECTION_MODEL_BUTTON_ID);
 232     }
 233 
 234     /**
 235      * Checks visibility states of horizontal and vertical scrollBars.
 236      */
 237     protected void checkScrollbarsStates(boolean horizontalVisibility, boolean verticalVisibility) {
 238         Assert.assertFalse(findScrollBar(testedControl.as(Parent.class, Node.class), Orientation.HORIZONTAL, horizontalVisibility) == null);
 239         Assert.assertFalse(findScrollBar(testedControl.as(Parent.class, Node.class), Orientation.VERTICAL, verticalVisibility) == null);
 240     }
 241 
 242     /**
 243      * Set size if tested control using bidirectional bindings.
 244      */
 245     protected void setSize(double width, double height) throws InterruptedException {
 246         setPropertyBySlider(SettingType.BIDIRECTIONAL, Properties.prefHeight, height);
 247         setPropertyBySlider(SettingType.BIDIRECTIONAL, Properties.prefWidth, width);
 248     }
 249 
 250     /**
 251      * Make chessboard focus.
 252      *
 253      * @param elemCount - length of list of added elements.
 254      */
 255     protected void addAndSelectElements(final int elemCount) {
 256         for (int i = 0; i < elemCount; i++) {
 257             addElement(String.valueOf(i * i), i);
 258         }
 259 
 260         new GetAction() {
 261             @Override
 262             public void run(Object... os) throws Exception {
 263                 ListView lv = (ListView) os[0];

 264                 for (int i = 0; i < elemCount; i++) {
 265                     if (Integer.valueOf((String) lv.getItems().get(i)) % 2 == 0) {
 266                         lv.getSelectionModel().select(i);



 267                     }
 268                 }
 269             }
 270         }.dispatch(Root.ROOT.getEnvironment(), (ListView) testedControl.getControl());
 271     }
 272 
 273     protected void checkScreenshotsWithStep(String name, final int elementsCount, final int step) throws Throwable {
 274         Wrap<Text> cellWrap = getCellWrap((Integer) (0)); //mouse will be over the second item.
 275         cellWrap.as(Showable.class).shower().show();
 276         cellWrap.mouse().click(1, cellWrap.getClickPoint(), Mouse.MouseButtons.BUTTON1, CTRL_DOWN_MASK_OS);
 277         for (int i = 0; i < elementsCount / step; i++) {
 278             for (int j = 0; j < step; j++) {
 279                 testedControl.keyboard().pushKey(KeyboardButtons.RIGHT, CTRL_DOWN_MASK_OS);
 280             }
 281             checkScreenshot("ListView_" + name + "_" + i, testedControl);
 282         }
 283 
 284         throwScreenshotError();
 285     }
 286 
 287     @Override
 288     protected void checkSelection() {
 289         testedControl.waitState(new State() {
 290             public Object reached() {
 291                 Collection<Point> helper_selected = selectionHelper.getSelected();
 292                 Collection<Point> selected = getSelected();
 293                 Point helper_selection = selectionHelper.focus;
 294                 Point selection = getSelectedItem();
 295 
 296                 System.out.println(SelectionFormatter.format("Helper selection: ", helper_selected, "Selection: ", selected));
 297                 System.out.println("Helper focus : " + helper_selection);
 298                 System.out.println("Focus        : " + selection);

 299                 System.out.println("Anchor : " + selectionHelper.anchor + "\n\n");
 300 
 301                 if (((helper_selected.size() == selected.size())
 302                         && helper_selected.containsAll(selected)
 303                         && selected.containsAll(helper_selected)
 304                         && selection.equals(helper_selection))
 305                         || (selectionHelper.ctrlA && (selected.size() == currentListContentSize))) {
 306                     return true;
 307                 } else {
 308                     return null;
 309                 }
 310             }
 311         });
 312     }
 313 
 314     /**
 315      * @return hashSet of selected items in listView
 316      */
 317     @Override
 318     protected HashSet<Point> getSelected() {




  32 import javafx.scene.Scene;
  33 import javafx.scene.control.*;
  34 import static javafx.scene.control.test.ListView.NewListViewApp.*;
  35 import javafx.scene.control.test.util.MultipleSelectionHelper;
  36 import javafx.scene.control.test.util.MultipleSelectionHelper.Range;
  37 import javafx.scene.control.test.util.TableListCommonTests;
  38 import static javafx.scene.control.test.utils.ComponentsFactory.*;
  39 import javafx.scene.control.test.utils.SelectionFormatter;
  40 import javafx.scene.control.test.utils.ptables.AbstractPropertyController.SettingType;
  41 import static javafx.scene.control.test.utils.ptables.NodesChoserFactory.*;
  42 import javafx.scene.text.Text;
  43 import org.jemmy.Point;
  44 import org.jemmy.action.GetAction;
  45 import org.jemmy.control.Wrap;
  46 import org.jemmy.env.Environment;
  47 import org.jemmy.fx.ByID;
  48 import org.jemmy.fx.Root;
  49 import org.jemmy.fx.control.ListItemWrap.ListItemByObjectLookup;
  50 import org.jemmy.interfaces.Keyboard.KeyboardButtons;
  51 import org.jemmy.interfaces.Keyboard.KeyboardModifiers;
  52 import static org.jemmy.interfaces.Keyboard.KeyboardModifiers.META_DOWN_MASK;
  53 import org.jemmy.interfaces.Mouse;
  54 import org.jemmy.interfaces.Parent;
  55 import org.jemmy.interfaces.Selectable;
  56 import org.jemmy.interfaces.Showable;
  57 import org.jemmy.lookup.Lookup;
  58 import org.jemmy.lookup.LookupCriteria;
  59 import org.jemmy.timing.State;
  60 import org.junit.After;
  61 import org.junit.Assert;
  62 import org.junit.Before;
  63 import org.junit.BeforeClass;
  64 import test.javaclient.shared.Utils;
  65 import static test.javaclient.shared.TestUtil.isEmbedded;
  66 
  67 /**
  68  * @author Alexander Kirov
  69  */
  70 public class TestBase extends TableListCommonTests {
  71 
  72     static Wrap<? extends Scene> scene;


 219     }
 220 
 221     protected void removeFromPos(int position) {
 222         setText(findTextField(REMOVE_ITEM_POS_TEXT_FIELD_ID), position);
 223         clickButtonForTestPurpose(REMOVE_BUTTON_ID);
 224     }
 225 
 226     protected void scrollTo(int position) {
 227         setText(findTextField(SCROLL_TO_TEXT_FIELD_ID), position);
 228         clickButtonForTestPurpose(SCROLL_TO_BUTTON_ID);
 229     }
 230 
 231     protected void changeSelectionModel(int position) {
 232         clickButtonForTestPurpose(CHANGE_SELECTION_MODEL_BUTTON_ID);
 233     }
 234 
 235     /**
 236      * Checks visibility states of horizontal and vertical scrollBars.
 237      */
 238     protected void checkScrollbarsStates(boolean horizontalVisibility, boolean verticalVisibility) {
 239         Assert.assertFalse(findScrollBar((Parent<Node>) testedControl.as(Parent.class, Node.class), Orientation.HORIZONTAL, horizontalVisibility) == null);
 240         Assert.assertFalse(findScrollBar((Parent<Node>) testedControl.as(Parent.class, Node.class), Orientation.VERTICAL, verticalVisibility) == null);
 241     }
 242 
 243     /**
 244      * Set size if tested control using bidirectional bindings.
 245      */
 246     protected void setSize(double width, double height) throws InterruptedException {
 247         setPropertyBySlider(SettingType.BIDIRECTIONAL, Properties.prefHeight, height);
 248         setPropertyBySlider(SettingType.BIDIRECTIONAL, Properties.prefWidth, width);
 249     }
 250 
 251     /**
 252      * Make chessboard focus.
 253      *
 254      * @param elemCount - length of list of added elements.
 255      */
 256     protected void addAndSelectElements(final int elemCount) {
 257         for (int i = 0; i < elemCount; i++) {
 258             addElement(String.valueOf(i * i), i);
 259         }
 260 
 261         new GetAction() {
 262             @Override
 263             public void run(Object... os) throws Exception {
 264                 ListView lv = (ListView) os[0];
 265                 selectionHelper.setRowsNum(elemCount);
 266                 for (int i = 0; i < elemCount; i++) {
 267                     if (Integer.valueOf((String) lv.getItems().get(i)) % 2 == 0) {
 268                         lv.getSelectionModel().select(i);
 269                         selectionHelper.push(KeyboardButtons.SPACE, KeyboardModifiers.CTRL_DOWN_MASK);
 270                         selectionHelper.push(KeyboardButtons.DOWN, KeyboardModifiers.CTRL_DOWN_MASK);
 271                         selectionHelper.push(KeyboardButtons.DOWN, KeyboardModifiers.CTRL_DOWN_MASK);
 272                     }
 273                 }
 274             }
 275         }.dispatch(Root.ROOT.getEnvironment(), (ListView) testedControl.getControl());
 276     }
 277 
 278     protected void checkScreenshotsWithStep(String name, final int elementsCount, final int step) throws Throwable {
 279         Wrap<Text> cellWrap = getCellWrap((Integer) (0)); //mouse will be over the second item.
 280         cellWrap.as(Showable.class).shower().show();
 281         cellWrap.mouse().click(1, cellWrap.getClickPoint(), Mouse.MouseButtons.BUTTON1, Utils.isMacOS() ? META_DOWN_MASK : CTRL_DOWN_MASK_OS);
 282         for (int i = 0; i < elementsCount / step; i++) {
 283             for (int j = 0; j < step; j++) {
 284                 testedControl.keyboard().pushKey(KeyboardButtons.RIGHT, Utils.isMacOS() ? META_DOWN_MASK : CTRL_DOWN_MASK_OS);
 285             }
 286             checkScreenshot("ListView_" + name + "_" + i, testedControl);
 287         }
 288 
 289         throwScreenshotError();
 290     }
 291 
 292     @Override
 293     protected void checkSelection() {
 294         testedControl.waitState(new State() {
 295             public Object reached() {
 296                 Collection<Point> helper_selected = selectionHelper.getSelected();
 297                 Collection<Point> selected = getSelected();
 298                 Point helper_selection = selectionHelper.focus;
 299                 Point selection = getSelectedItem();
 300 
 301                 System.out.println(SelectionFormatter.format("Helper selection: ", helper_selected, "Selection: ", selected));
 302                 System.out.println("Helper focus : " + helper_selection);
 303                 System.out.println("Focus        : " + selection);
 304                 System.out.println("Helper anchor : " + selectionHelper.anchor + "\n\n");
 305                 System.out.println("Anchor : " + selectionHelper.anchor + "\n\n");
 306 
 307                 if (((helper_selected.size() == selected.size())
 308                         && helper_selected.containsAll(selected)
 309                         && selected.containsAll(helper_selected)
 310                         && selection.equals(helper_selection))
 311                         || (selectionHelper.ctrlA && (selected.size() == currentListContentSize))) {
 312                     return true;
 313                 } else {
 314                     return null;
 315                 }
 316             }
 317         });
 318     }
 319 
 320     /**
 321      * @return hashSet of selected items in listView
 322      */
 323     @Override
 324     protected HashSet<Point> getSelected() {