@@ -0,0 +1,3251 @@
+/*%0A * #%25L%0A * ImageJ software for multidimensional image processing and analysis.%0A * %25%25%0A * Copyright (C) 2009 - 2013 Board of Regents of the University of%0A * Wisconsin-Madison, Broad Institute of MIT and Harvard, and Max Planck%0A * Institute of Molecular Cell Biology and Genetics.%0A * %25%25%0A * Redistribution and use in source and binary forms, with or without%0A * modification, are permitted provided that the following conditions are met:%0A * %0A * 1. Redistributions of source code must retain the above copyright notice,%0A *    this list of conditions and the following disclaimer.%0A * 2. Redistributions in binary form must reproduce the above copyright notice,%0A *    this list of conditions and the following disclaimer in the documentation%0A *    and/or other materials provided with the distribution.%0A * %0A * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS %22AS IS%22%0A * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE%0A * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE%0A * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE%0A * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR%0A * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF%0A * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS%0A * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN%0A * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)%0A * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE%0A * POSSIBILITY OF SUCH DAMAGE.%0A * %0A * The views and conclusions contained in the software and documentation are%0A * those of the authors and should not be interpreted as representing official%0A * policies, either expressed or implied, of any organization.%0A * #L%25%0A */%0A%0Apackage imagej.test;%0A%0Aimport java.io.File;%0Aimport java.io.IOException;%0Aimport java.net.URL;%0A%0Aimport org.scijava.util.ClassUtils;%0Aimport org.scijava.util.FileUtils;%0A%0A/**%0A * A bunch of helpful functions for unit tests.%0A * %0A * @author Johannes Schindelin%0A */%0Apublic class TestUtils %7B%0A%0A%09/**%0A%09 * Makes a temporary directory for use with unit tests.%0A%09 * %3Cp%3E%0A%09 * When the unit test runs in a Maven context, the temporary directory will be%0A%09 * created in the corresponding %3Ci%3Etarget/%3C/i%3E directory instead of%0A%09 * %3Ci%3E/tmp/%3C/i%3E.%0A%09 * %3C/p%3E%0A%09 * %0A%09 * @param prefix the prefix for the directory's name%0A%09 * @param forClass the class for context (to determine whether there's a%0A%09 *          %3Ci%3Etarget/%3Ci%3E directory)%0A%09 * @return the reference to the newly-created temporary directory%0A%09 * @throws IOException%0A%09 */%0A%09public static File createTemporaryDirectory(final String prefix,%0A%09%09final Class%3C?%3E forClass) throws IOException%0A%09%7B%0A%09%09final URL directory = ClassUtils.getLocation(forClass);%0A%09%09if (directory != null && %22file%22.equals(directory.getProtocol())) %7B%0A%09%09%09final String path = directory.getPath();%0A%09%09%09if (path != null && path.endsWith(%22/target/test-classes/%22)) %7B%0A%09%09%09%09final File baseDirectory =%0A%09%09%09%09%09new File(path.substring(0, path.length() - 13));%0A%09%09%09%09final File file = File.createTempFile(prefix, %22%22, baseDirectory);%0A%09%09%09%09if (file.delete() && file.mkdir()) return file;%0A%09%09%09%7D%0A%09%09%7D%0A%09%09return FileUtils.createTemporaryDirectory(prefix, %22%22);%0A%09%7D%0A%0A%7D%0A

Add a function to create temporary directories for tests