/*******************************************************************************
* 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;
}
}