blob: 69bdc9cd7bb1b853c2757f111752958ddbf0b578 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2002, 2003 GEBIT Gesellschaft fuer EDV-Beratung
* und Informatik-Technologien mbH,
* Berlin, Duesseldorf, Frankfurt (Germany) 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:
* GEBIT Gesellschaft fuer EDV-Beratung und Informatik-Technologien mbH - initial implementation
* IBM Corporation - additional tests
*******************************************************************************/
package org.eclipse.ant.tests.ui.editor;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.xml.parsers.ParserConfigurationException;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.apache.xerces.parsers.SAXParser;
import org.eclipse.ant.tests.ui.testplugin.AbstractAntUITest;
import org.eclipse.ant.internal.ui.editor.EnclosingTargetSearchingHandler;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;
/**
* Tests the parsing using the EnclosingTargetSearchingHandler.
*
*/
public class EnclosingTargetSearchingHandlerTest extends AbstractAntUITest {
/**
* Constructor for EnclosingTargetSearchingHandlerTest.
* @param name
*/
public EnclosingTargetSearchingHandlerTest(String name) {
super(name);
}
/**
* The test suite.
*/
public static Test suite() {
return new TestSuite(EnclosingTargetSearchingHandlerTest.class);
}
/**
* Tests parsing an XML file with the use of our EnclosingTargetSearchingHandler.
*/
public void testParsingOfBuildFileWithoutTargetElement() throws SAXException, IOException, ParserConfigurationException {
SAXParser parser = getSAXParser();
File file= getBuildFile("test1.xml");
EnclosingTargetSearchingHandler handler = new EnclosingTargetSearchingHandler(file.getParentFile(), 4, 8);
InputStream stream = getClass().getResourceAsStream("test1.xml");
parse(stream, parser, handler, file);
Element element = handler.getParentElement(false);
assertNull(element);
element = handler.getParentElement(true);
assertNull(element);
handler = new EnclosingTargetSearchingHandler(file.getParentFile(), 2, 0);
stream = new FileInputStream(file);
parse(stream, parser, handler, file);
element = handler.getParentElement(false);
assertNull(element);
element = handler.getParentElement(true);
assertNull(element);
stream.close();
handler = new EnclosingTargetSearchingHandler(file.getParentFile(), 0, 0);
stream = new FileInputStream(file);
parse(stream, parser, handler, file);
stream.close();
element = handler.getParentElement(false);
assertNull(element);
element = handler.getParentElement(true);
assertNull(element);
}
/**
* Tests parsing an XML file with the use of our EnclosingTargetSearchingHandler.
*/
public void testParsingOfBuildFileWithTargetElement() throws SAXException, ParserConfigurationException, IOException {
SAXParser parser = getSAXParser();
File file= getBuildFile("russianbuild.xml");
EnclosingTargetSearchingHandler handler = new EnclosingTargetSearchingHandler(file.getParentFile(), 5, 5);
InputStream stream = new FileInputStream(file);
parse(stream, parser, handler, file);
Element element = handler.getParentElement(false);
assertNotNull(element);
assertEquals("target", element.getTagName());
element = handler.getParentElement(true);
assertNotNull(element);
assertEquals("target", element.getTagName());
assertEquals("init", element.getAttribute("name"));
stream.close();
handler = new EnclosingTargetSearchingHandler(file.getParentFile(), 7, 0);
stream = new FileInputStream(file);
parse(stream, parser, handler, file);
element = handler.getParentElement(false);
assertNull(element);
element = handler.getParentElement(true);
assertNull(element);
stream.close();
handler = new EnclosingTargetSearchingHandler(file.getParentFile(), 0, 0);
stream = new FileInputStream(file);
parse(stream, parser, handler, file);
element = handler.getParentElement(false);
assertNull(element);
element = handler.getParentElement(true);
assertNull(element);
stream.close();
}
/**
* Tests parsing an XML file with the use of our EnclosingTargetSearchingHandler.
*/
public void testParsingOfEmptyBuildFile() throws SAXException, ParserConfigurationException, IOException {
File file= getBuildFile("projectOnly.xml");
EnclosingTargetSearchingHandler handler = new EnclosingTargetSearchingHandler(file.getParentFile(), 0, 0);
InputStream stream= new FileInputStream(file);
parse(stream, getSAXParser(), handler, file);
Element element = handler.getParentElement(false);
assertNull(element);
element = handler.getParentElement(true);
assertNull(element);
stream.close();
}
}