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() {
|