package com.windowtester.test.locator.swt;
import static com.windowtester.runtime.swt.locator.SWTLocators.menuItem;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Shell;
import com.windowtester.runtime.internal.factory.WTRuntimeManager;
import com.windowtester.runtime.swt.internal.matchers.IsVisibleMatcher;
/*******************************************************************************
* 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 MenuItemPathTest extends AbstractLocatorTest {
private static final String RUN_ITEM_TEXT = "Run...";
private static final String RUN_AS_ITEM_TEXT = "R&un as";
private static final String RUN_PATTERN = "Run...";
private MenuItem runAs;
private MenuItem run;
/* (non-Javadoc)
* @see com.windowtester.test.locator.swt.AbstractLocatorTest#uiSetup()
*/
@Override
public void uiSetup() {
run = testableMenuItem(RUN_ITEM_TEXT);
runAs = testableMenuItem(RUN_AS_ITEM_TEXT);
// VisibilityMatcher.TEST_MODE = true;
IsVisibleMatcher.TEST_MODE = true;
}
private MenuItem testableMenuItem(String text) {
MenuItem item = new MenuItem(new Menu(new Shell(Display.getDefault())), SWT.PUSH);
item.setText(text);
// VisibilityMatcher.setVisibleForTesting(item);
IsVisibleMatcher.setVisibleForTesting(item);
return item;
}
/* (non-Javadoc)
* @see com.windowtester.test.locator.swt.AbstractLocatorTest#uiTearDown()
*/
@Override
public void uiTearDown() {
// VisibilityMatcher.TEST_MODE = false;
IsVisibleMatcher.TEST_MODE = false;
}
public void testRunPatternMatch() throws Exception {
assertTrue(menuItem(RUN_PATTERN).matches(WTRuntimeManager.asReference(run)));
}
public void testRunAsPatternMatch() throws Exception {
assertFalse(menuItem(RUN_PATTERN).matches(WTRuntimeManager.asReference(runAs)));
}
}