/*
This file belongs to the Servoy development and deployment environment, Copyright (C) 1997-2013 Servoy BV
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU Affero General Public License as published by the Free
Software Foundation; either version 3 of the License, or (at your option) any
later version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along
with this program; if not, see http://www.gnu.org/licenses or write to the Free
Software Foundation,Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
*/
package com.servoy.base.test;
/**
* A bridge test suite that is also able to provide what's needed for jsUnit execution.
*
* @author acostescu
*/
public interface IJSUnitSuiteHandler extends IBridgedTestSuite, IBridgedTestListener
{
public static final String BRIDGE_ID_ARG = "bid"; //$NON-NLS-1$
public static final String NO_INIT_SMC_ARG = "noinitsmc"; //$NON-NLS-1$
public static final String JAVA_OBJECTS_CONTEXT_JNDI_PATH = "java:/comp/env"; //$NON-NLS-1$
public static final String SERVOY_SHARED_MAP_JNDI_PATH = "servoy/sharedMap"; //$NON-NLS-1$
public static final String SERVOY_BRIDGE_KEY = "jsUnitBridge"; //$NON-NLS-1$
int getId();
/**
* When this gets called, the test session should end with an error.
*/
void reportUnexpectedThrowable(String msg, Throwable t);
void registerRunStartListener(TestCycleListener l);
/**
* Returns either null for no credentials or a String[2] where index 0 is 'username' and index 1 is 'password' - for automatic
* test client authentication.
* @return see description.
*/
String[] getCredentials();
/**
* Returns an array of strings. Each string in the array represents javascript code that will need to be evaluated in the client context
* in order to use JSUnit. (For example JsUnit.js, JsUtil.js and JsUnitToJava.js; more could be added if needed in the future)
*/
String[] getJsUnitJavascriptCode();
public static interface TestCycleListener
{
void started();
void finished();
}
}