package com.windowtester.test.monitor; import com.windowtester.internal.runtime.monitor.UIThreadMonitorCommon; import com.windowtester.runtime.IUIContext; import com.windowtester.runtime.WaitTimedOutException; import com.windowtester.runtime.WidgetSearchException; import com.windowtester.runtime.condition.ICondition; import com.windowtester.runtime.condition.IConditionHandler; import com.windowtester.runtime.condition.IConditionMonitor; import com.windowtester.runtime.locator.ILocator; import com.windowtester.runtime.locator.IMenuItemLocator; import com.windowtester.runtime.locator.IWidgetLocator; import com.windowtester.runtime.monitor.IUIThreadMonitorListener; /******************************************************************************* * 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 *******************************************************************************/ final class Monitor extends UIThreadMonitorCommon { private boolean _isUIResponsive; private long _testEnd; private boolean _wasTimeout; private boolean _wasTimeoutResponsive; //////////////////////////////////////////////////////////////////////////// // // Testing // //////////////////////////////////////////////////////////////////////////// public Monitor(long testDuration, long expectedDelay, boolean isUIResponsive) { super(createContext()); _testEnd = System.currentTimeMillis() + testDuration; _isUIResponsive = isUIResponsive; _wasTimeout = false; setDefaultExpectedDelay(expectedDelay); setConsoleTracing(true); setListener(new IUIThreadMonitorListener() { public void uiTimeout(boolean isResponsive) { _wasTimeoutResponsive = isResponsive; _wasTimeout = true; } @SuppressWarnings("unused") public int processConditions() { // TODO Auto-generated method stub return IConditionMonitor.PROCESS_NONE; } }); while (!hasTestEnded() && !_wasTimeout) { try { Thread.sleep(100); } catch (InterruptedException e) { // ignored } } } public boolean wasTimeout() { return _wasTimeout; } public boolean wasTimeoutResponsive() { return _wasTimeoutResponsive; } //////////////////////////////////////////////////////////////////////////// // // Implementation // //////////////////////////////////////////////////////////////////////////// protected boolean isUIThreadResponsive() { return _isUIResponsive; } protected boolean hasTestEnded() { long currentTimeMillis = System.currentTimeMillis(); trace("hasTestEnded ", _testEnd - currentTimeMillis); return _testEnd < currentTimeMillis; } protected void addEventListeners() { } protected void removeEventListeners() { } private static IUIContext createContext() { return new IUIContext() { public Object getActiveWindow() { // TODO Auto-generated method stub return null; } public IWidgetLocator[] findAll(IWidgetLocator locator) { // TODO Auto-generated method stub return null; } public IWidgetLocator find(IWidgetLocator locator) throws WidgetSearchException { // TODO Auto-generated method stub return null; } public void pause(int ms) { // TODO Auto-generated method stub } public int handleConditions() { // TODO Auto-generated method stub return 0; } /* (non-Javadoc) * @see com.windowtester.runtime.IUIContext#getConditionMonitor() */ public IConditionMonitor getConditionMonitor() { // TODO Auto-generated method stub return null; } public void wait(ICondition condition, long timeout, int interval) throws WaitTimedOutException { // TODO Auto-generated method stub } public void wait(ICondition condition, long timeout) throws WaitTimedOutException { // TODO Auto-generated method stub } public void wait(ICondition condition) throws WaitTimedOutException { // TODO Auto-generated method stub } public IWidgetLocator setFocus(IWidgetLocator locator) { // TODO Auto-generated method stub return null; } public void close(IWidgetLocator locator) { // TODO Auto-generated method stub } public void keyClick(int modifierMask, char c) { // TODO Auto-generated method stub } public void keyClick(char key) { // TODO Auto-generated method stub } public void keyClick(int key) { // TODO Auto-generated method stub } public void enterText(String txt) { // TODO Auto-generated method stub } public IWidgetLocator dragTo(ILocator locator, int modifierMask) { // TODO Auto-generated method stub return null; } public IWidgetLocator dragTo(ILocator locator) { // TODO Auto-generated method stub return null; } public IWidgetLocator mouseMove(ILocator locator) { // TODO Auto-generated method stub return null; } public IWidgetLocator contextClick(ILocator locator, IMenuItemLocator menuItem, int modifierMask) throws WidgetSearchException { // TODO Auto-generated method stub return null; } public IWidgetLocator contextClick(ILocator locator, IMenuItemLocator menuItem) throws WidgetSearchException { // TODO Auto-generated method stub return null; } public IWidgetLocator click(int clickCount, ILocator locator, int modifierMask) throws WidgetSearchException { // TODO Auto-generated method stub return null; } public IWidgetLocator click(int clickCount, ILocator locator) throws WidgetSearchException { // TODO Auto-generated method stub return null; } public IWidgetLocator click(ILocator locator) throws WidgetSearchException { // TODO Auto-generated method stub return null; } @SuppressWarnings("unchecked") public Object getAdapter(Class adapter) { // TODO Auto-generated method stub return null; } public void assertThat(ICondition condition) throws WaitTimedOutException { // TODO Auto-generated method stub } public void assertThat(String message, ICondition condition) throws WaitTimedOutException { // TODO Auto-generated method stub } public IWidgetLocator contextClick(ILocator locator, String menuItem) throws WidgetSearchException { // TODO Auto-generated method stub return null; } public IWidgetLocator contextClick(ILocator locator, String menuItem, int modifierMask) throws WidgetSearchException { // TODO Auto-generated method stub return null; } public void ensureThat(IConditionHandler conditionHandler) throws WaitTimedOutException, Exception { // TODO Auto-generated method stub } }; } }