| /******************************************************************************* |
| * Copyright (c) 2000, 2003 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Common Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/cpl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.team.tests.core; |
| |
| import java.io.BufferedReader; |
| import java.io.File; |
| import java.io.FileReader; |
| import java.net.MalformedURLException; |
| import java.net.URL; |
| import java.util.Properties; |
| |
| import junit.extensions.TestSetup; |
| import junit.framework.Test; |
| |
| import org.eclipse.core.runtime.Path; |
| import org.eclipse.team.core.sync.IRemoteResource; |
| import org.eclipse.team.internal.core.target.IRemoteTargetResource; |
| import org.eclipse.team.internal.core.target.ISiteFactory; |
| import org.eclipse.team.internal.core.target.Site; |
| import org.eclipse.team.internal.core.target.TargetManager; |
| import org.eclipse.team.internal.core.target.TargetProvider; |
| |
| /** |
| * A set of test cases for org.eclipse.team.core.sync.IRemoteResource |
| */ |
| public class TargetTestSetup extends TestSetup { |
| |
| public static Properties properties; |
| static { |
| loadProperties(); |
| } |
| |
| public static void loadProperties() { |
| properties = new Properties(); |
| String propertiesFile = System.getProperty("eclipse.target.properties"); |
| if (propertiesFile == null) |
| return; |
| File file = new File(propertiesFile); |
| if (file.isDirectory()) |
| file = new File(file, "target.properties"); |
| try { |
| BufferedReader reader = new BufferedReader(new FileReader(file)); |
| try { |
| for (String line;(line = reader.readLine()) != null;) { |
| int sep = line.indexOf("="); |
| String property = line.substring(0, sep).trim(); |
| String value = line.substring(sep + 1).trim(); |
| properties.setProperty(property, value); |
| } |
| } finally { |
| reader.close(); |
| } |
| } catch (Exception e) { |
| System.err.println("Could not read repository properties file: " + file.getAbsolutePath()); |
| } |
| } |
| |
| public TargetTestSetup(Test test) { |
| super(test); |
| } |
| /** |
| * Retrieves the Site object that the TargetProvider is contained in. |
| * @return Site |
| */ |
| Site getSite() { |
| try { |
| URL url = new URL(properties.getProperty("location")); |
| return TargetManager.getSite(properties.getProperty("target"), url); |
| } catch (MalformedURLException e) { |
| return null; |
| } |
| } |
| /** |
| * This method runs before starting the entire test suite. |
| * @see TestCase#setUp() |
| */ |
| protected void setUp() throws Exception { |
| super.setUp(); |
| Site location; |
| ISiteFactory factory = TargetManager.getSiteFactory(properties.getProperty("target")); |
| assertNotNull(factory); |
| Site[] locations = TargetManager.getSites(); |
| |
| if (locations.length == 0) { |
| Site l = factory.newSite(properties); |
| TargetManager.addSite(l); |
| } |
| location = getSite(); |
| |
| //clean up the directory: |
| IRemoteTargetResource remote=location.getRemoteResource().getFolder(properties.getProperty("test_dir")); |
| IRemoteResource[] children=remote.members(null); |
| for (int i = 0; i < children.length; i++) { |
| ((IRemoteTargetResource)children[i]).delete(null); |
| } |
| |
| TargetProvider target = location.newProvider(new Path(properties.getProperty("test_dir"))); |
| assertNotNull(target); |
| } |
| } |