package com.windowtester.test.locator.swt; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.List; import abbot.tester.swt.ListTester; import com.windowtester.runtime.IUIContext; import com.windowtester.runtime.WidgetSearchException; import com.windowtester.runtime.swt.locator.ListItemLocator; import com.windowtester.test.locator.swt.shells.ListTestShell; /******************************************************************************* * Copyright (c) 2012 Google, Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Google, Inc. - initial API and implementation *******************************************************************************/ public class ListItemLocatorTest extends AbstractLocatorTest { ListTestShell _window; @Override public void uiSetup() { _window = new ListTestShell(); _window.open(); } @Override public void uiTearDown() { _window.getShell().dispose(); } private List getList() { return _window.getList(); } // public void testCtrlClicks() throws WidgetSearchException { // // IUIContext ui = getUI(); // // List list = getList(); // ui.click(new ListItemLocator("two", new WidgetReference(list))); // assertContainsExactly(new ListTester().getSelection(list), new String[]{"two"}); // // ui.click(1, new ListItemLocator("seven", new WidgetReference(list)), SWT.BUTTON1 | SWT.MOD1); // ui.click(1, new ListItemLocator("one", new WidgetReference(list)), SWT.BUTTON1 | SWT.MOD1); // assertContainsExactly(new ListTester().getSelection(list), new String[]{"one", "two", "seven"}); // } public void testCtrlClicks() throws WidgetSearchException { IUIContext ui = getUI(); List list = getList(); ui.click(new ListItemLocator("two")); assertContainsExactly(new ListTester().getSelection(list), new String[]{"two"}); ui.click(1, new ListItemLocator("seven"), SWT.BUTTON1 | SWT.MOD1); ui.click(1, new ListItemLocator("one"), SWT.BUTTON1 | SWT.MOD1); assertContainsExactly(new ListTester().getSelection(list), new String[]{"one", "two", "seven"}); } public void testShiftClicks() throws WidgetSearchException { IUIContext ui = getUI(); List list = getList(); ui.click(new ListItemLocator("five")); assertContainsExactly(new ListTester().getSelection(list), new String[]{"five"}); ui.click(1, new ListItemLocator("seven"), SWT.BUTTON1 | SWT.SHIFT); assertContainsExactly(new ListTester().getSelection(list), new String[]{"five", "six", "seven"}); } public void testRegularClicks() throws WidgetSearchException { IUIContext ui = getUI(); List list = getList(); assertContainsExactly(new ListTester().getSelection(list), new String[]{}); ui.click(new ListItemLocator("one")); assertContainsExactly(new ListTester().getSelection(list), new String[]{"one"}); ui.click(new ListItemLocator("two")); assertContainsExactly(new ListTester().getSelection(list), new String[]{"two"}); ui.click(new ListItemLocator("seven")); assertContainsExactly(new ListTester().getSelection(list), new String[]{"seven"}); } public void testIsVisible() throws Exception { // test for regression on Case 41970 IUIContext ui = getUI(); for (int i = 0; i < ListTestShell.LIST_TEST_SHELL_ITEMS.length; i++) { ui.assertThat(new ListItemLocator(ListTestShell.LIST_TEST_SHELL_ITEMS[i]).isVisible()); ui.assertThat(new ListItemLocator(ListTestShell.LIST_TEST_SHELL_ITEMS[i]).isVisible(true)); ui.assertThat(new ListItemLocator(ListTestShell.LIST_TEST_SHELL_ITEMS[i]+'_').isVisible(false)); } // what was recorded //ui.click(new ListItemLocator("five")); //ui.assertThat(new ListItemLocator().isVisible()); //ui.close(new SWTWidgetLocator(Shell.class, "List Test")); } public void testContextClicks() throws Exception{ IUIContext ui = getUI(); ui.click(new ListItemLocator("one")); ui.contextClick(new ListItemLocator("one"), "Menu item 1"); //TODO: update test shell to show different menu items specific to the target item //ui.contextClick(new ListItemLocator("two"), "Menu item 2"); } // public void testDiagnostic() { // fail("unimplemented"); // // List list = window.getList(); // ListTester listTester = new ListTester(); // Rectangle clientArea = listTester.getClientArea(list); // System.out.println("client area:\t" + clientArea); // System.out.println("client area/7:\t" + clientArea.height/7); // System.out.println("item height:\t" + UIProxy.getItemHeight(list)); // } }