/******************************************************************************* * 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 *******************************************************************************/ package com.windowtester.eclipse.ui.views; import org.eclipse.swt.widgets.Widget; import com.windowtester.internal.runtime.IWidgetIdentifier; import com.windowtester.internal.runtime.PropertySet; import com.windowtester.internal.runtime.locator.IdentifierAdapter; import com.windowtester.recorder.event.user.SemanticKeyDownEvent; import com.windowtester.recorder.event.user.SemanticWidgetInspectionEvent; import com.windowtester.recorder.event.user.SemanticWidgetSelectionEvent; import com.windowtester.recorder.event.user.UISemanticEvent.EventInfo; import com.windowtester.runtime.WT; import com.windowtester.runtime.locator.ILocator; import com.windowtester.ui.internal.corel.model.Event; public class FakeEventFactory { public static EventInfo mockEvent(IWidgetIdentifier wl) { return mockEvent(Widget.class /* likely ignored */, wl); } public static EventInfo mockEvent(Class cls, IWidgetIdentifier wl) { EventInfo info = new EventInfo(); info.cls = cls.getName(); info.button = WT.BUTTON1; info.hierarchyInfo = wl; return info; } public static SemanticWidgetSelectionEvent mockSelect(Class cls, IWidgetIdentifier wl) { return new SemanticWidgetSelectionEvent(mockEvent(cls, wl)); } public static SemanticWidgetInspectionEvent mockAssert(Class cls, IWidgetIdentifier wl) { return new SemanticWidgetInspectionEvent(mockEvent(cls, wl)); } public static Event fakeSelectEvent(Class cls, IWidgetIdentifier locator) { return new Event(mockSelect(cls, locator)); } public static Event fakeAssertEvent(Class cls, IWidgetIdentifier locator, PropertySet properties) { return new Event(mockAssert(cls, locator).withProperties(properties)); } public static Event fakeKeyEntry(char key) { SemanticKeyDownEvent keyDown = new SemanticKeyDownEvent(new EventInfo()); keyDown.setKey(key); return new Event(keyDown); } public static EventInfo mockEvent(ILocator locator) { return mockEvent(adaptToIdentifier(locator)); } public static IWidgetIdentifier adaptToIdentifier(ILocator locator) { IWidgetIdentifier identifier = null; if (locator instanceof IWidgetIdentifier) { identifier = (IWidgetIdentifier) locator; } else { identifier = new IdentifierAdapter(locator); } return identifier; } }