/*
* Copyright (c) 2012, the Dart project authors.
*
* Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.eclipse.org/legal/epl-v10.html
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package com.google.dart.tools.ui.refactoring;
import com.google.dart.tools.core.test.AbstractDartCoreTest;
import com.google.dart.tools.core.test.util.TestProject;
import org.eclipse.swt.widgets.Display;
/**
* Abstract base for any Dart test which uses {@link TestProject}.
*/
public abstract class AbstractDartTest extends AbstractDartCoreTest {
/**
* Function to force formatter to put every string on separate line.
*/
public static String[] formatLines(String... lines) {
return lines;
}
/**
* Waits given number of milliseconds and runs events loop every 1 millisecond. At least one
* events loop will be executed.
*/
public static void waitEventLoop(int time) {
waitEventLoop(time, 0);
}
/**
* Waits given number of milliseconds and runs events loop every <code>sleepMillis</code>
* milliseconds. At least one events loop will be executed.
*/
public static void waitEventLoop(int time, long sleepMillis) {
long start = System.currentTimeMillis();
do {
try {
Thread.sleep(sleepMillis);
} catch (Throwable e) {
}
while (Display.getCurrent().readAndDispatch()) {
// do nothing
}
} while (System.currentTimeMillis() - start < time);
}
}