blob: 0e254de75265c784905274da22e2854c58478f2e [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
*
* 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 org.netbeans.spi.xml.cookies;
import java.io.*;
import java.net.*;
import junit.framework.*;
import org.netbeans.junit.*;
import org.xml.sax.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.sax.*;
import javax.xml.transform.stream.*;
import org.netbeans.api.xml.cookies.*;
import org.netbeans.spi.xml.cookies.*;
/**
*
* @author Libor Kramolis
*/
public class TransformableSupportTest extends NbTestCase {
public TransformableSupportTest(java.lang.String testName) {
super(testName);
}
public static void main(java.lang.String[] args) {
junit.textui.TestRunner.run(suite());
}
public static Test suite() {
TestSuite suite = new NbTestSuite(TransformableSupportTest.class);
return suite;
}
public void testTransform () {
assertTrue ("Correct XML and correct XSLT must pass!", transform ("data/doc.xml", "data/doc2xhtml.xsl"));
assertTrue ("Incorrect XML and correct XSLT must not pass!", false==transform ("data/InvalidDocument.xml", "data/doc2xhtml.xsl"));
assertTrue ("Correct XML and incorrect XSLT must not pass!", false==transform ("data/doc.xml", "data/InvalidDocument.xml"));
assertTrue ("Incrrect XML and incorrect XSLT must not pass!", false==transform ("data/InvalidDocument.xml", "data/InvalidDocument.xml"));
}
private boolean transform (String xml, String xslt) {
URL xmlURL = getClass().getResource(xml);
URL xsltURL = getClass().getResource(xslt);
Source xmlSource = new SAXSource (new InputSource (xmlURL.toExternalForm()));
Source xsltSource = new SAXSource (new InputSource (xsltURL.toExternalForm()));
Result outputResult = new StreamResult (new StringWriter());
TransformableSupport support = new TransformableSupport (xmlSource);
Observer observer = new Observer(); // not yet used
boolean exceptionThrown = false;
try {
support.transform (xsltSource, outputResult, null);
} catch (TransformerException exc) {
System.err.println("!!! " + exc);
exceptionThrown = true;
}
System.out.println(xml + " & " + xslt + " => " + ( exceptionThrown ? "WRONG" : "OK" ));
return exceptionThrown==false;
}
//
// class Observer
//
private static class Observer implements CookieObserver {
private int receives;
private int warnings;
public void receive(CookieMessage msg) {
receives++;
if (msg.getLevel() >= CookieMessage.WARNING_LEVEL) {
warnings++;
}
}
public int getWarnings() {
return warnings;
}
}
}