blob: b11347c3696f5f77d49dcbf27d377846c32ad357 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010, 2011 EclipseSource and others. 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:
* Holger Staudacher - initial API and implementation
*******************************************************************************/
package org.eclipse.libra.warproducts.core.test.tests;
import java.io.*;
import junit.framework.TestCase;
import org.eclipse.core.resources.*;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.libra.warproducts.core.IWARProduct;
import org.eclipse.libra.warproducts.core.WARProductModel;
public class WARProductModelTest extends TestCase {
public void testLoad() throws CoreException {
WARProductModel model = new WARProductModel();
String separator = "/";
ClassLoader classLoader = getClass().getClassLoader();
String fileName = separator + "test.warproduct";
model.load( classLoader.getResourceAsStream( fileName ), false );
IWARProduct product = ( IWARProduct )model.getProduct();
String webXmlPath = product.getWebXml().toString();
assertEquals( separator + "test.rap" + separator + "WEB-INF"
+ separator + "web.xml", webXmlPath );
String launchIniPath = product.getLaunchIni().toString();
assertEquals( separator + "test.rap" + separator
+ "WEB-INF" + separator + "eclipse"
+ separator + "launch.ini", launchIniPath );
String libJarPath = product.getLibraries()[ 0 ].toString();
assertEquals( separator + "test.rap" + separator + "lib.jar", libJarPath );
}
// public void testWrite() throws Exception {
// WARProductModel model = new WARProductModel();
// String separator = File.separator;
// ClassLoader classLoader = getClass().getClassLoader();
// InputStream stream
// = classLoader.getResourceAsStream( separator + "test.warproduct" );
// String xml = readStream( stream );
// InputStream stream2
// = classLoader.getResourceAsStream( separator + "test.warproduct" );
// model.load( stream2, false );
// IProduct product = model.getProduct();
// StringWriter stringWriter = new StringWriter();
// PrintWriter writer = new PrintWriter( stringWriter );
// product.write( "", writer );
// stringWriter.close();
// String actualXml = stringWriter.toString();
// assertEquals( xml.replaceAll( " ", "" ), actualXml.replaceAll( " ", "" ) );
// }
public void testLoadWindowsFile() throws Exception {
setUpProject();
WARProductModel model = new WARProductModel();
String separator = File.separator;
String fileName = separator + "testWin.warproduct";
ClassLoader classLoader = getClass().getClassLoader();
model.load( classLoader.getResourceAsStream( fileName ), false );
IWARProduct product = ( IWARProduct )model.getProduct();
IPath webXml = product.getWebXml();
IWorkspaceRoot wsRoot = ResourcesPlugin.getWorkspace().getRoot();
IPath absolutWebXmlPath = wsRoot.getLocation().append( webXml );
File file = new File( absolutWebXmlPath.toOSString() );
assertTrue( file.exists() );
}
private static void setUpProject() throws Exception {
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
IProject project = root.getProject( "test.rap" );
if( !project.exists() ) {
project.create( null );
project.open( null );
}
IFolder webInf = project.getFolder( "WEB-INF" );
if( !webInf.exists() ) {
webInf.create( true, true, null );
}
IFile file = webInf.getFile( "web.xml" );
if( !file.exists() ) {
File tempFile = File.createTempFile( "test", ".xml" );
FileInputStream stream = new FileInputStream( tempFile );
file.create( stream, true, null );
}
}
}