#[cfg(all(test, feature = "test-conformance-xml"))]
use std::fs;
#[cfg(all(test, feature = "test-conformance-xml"))]
use xrust::item::Node;
#[cfg(all(test, feature = "test-conformance-xml"))]
use xrust::parser::{ParseError, ParserStateBuilder, StaticStateBuilder, xml};
#[cfg(all(test, feature = "test-conformance-xml"))]
use xrust::trees::smite::RNode;
#[cfg(all(test, feature = "test-conformance-xml"))]
use xrust::validators::Schema;
#[cfg(all(test, feature = "test-conformance-xml"))]
use xrust::{Error, ErrorKind};
#[cfg(all(test, feature = "test-conformance-xml"))]
fn test_eduni_errata4e_invalid(xmldoc: &str) {
let ss = StaticStateBuilder::new()
.dtd_resolver(dtdfileresolve())
.namespace(|_: &_| Err(ParseError::MissingNameSpace))
.build();
let testxml = RNode::new_document();
let ps = ParserStateBuilder::new()
.doc(testxml)
.document_location("tests/conformance/xml/xmlconf/eduni/errata-4e/".to_string())
.build();
let parseresult = xml::parse_with_state(xmldoc, ps, ss);
assert!(parseresult.is_ok());
let doc = parseresult.unwrap();
let validation = doc.validate(Schema::DTD);
assert!(validation.is_err());
}
#[cfg(all(test, feature = "test-conformance-xml"))]
pub fn dtdfileresolve() -> fn(Option<String>, String) -> Result<String, Error> {
move |locdir, uri| {
let u = match locdir {
None => uri,
Some(ld) => ld + uri.as_str(),
};
match fs::read_to_string(u) {
Err(_) => Err(Error::new(
ErrorKind::Unknown,
"Unable to read external DTD".to_string(),
)),
Ok(s) => Ok(s),
}
}
}
#[test]
#[ignore]
#[cfg(all(test, feature = "test-conformance-xml"))]
fn invalidbo1() {
test_eduni_errata4e_invalid(
fs::read_to_string("tests/conformance/xml/xmlconf/eduni/errata-4e/inclbom_be.xml")
.unwrap()
.as_str(),
);
}
#[test]
#[ignore]
#[cfg(all(test, feature = "test-conformance-xml"))]
fn invalidbo2() {
test_eduni_errata4e_invalid(
fs::read_to_string("tests/conformance/xml/xmlconf/eduni/errata-4e/inclbom_le.xml")
.unwrap()
.as_str(),
);
}
#[test]
#[ignore]
#[cfg(all(test, feature = "test-conformance-xml"))]
fn invalidbo3() {
test_eduni_errata4e_invalid(
fs::read_to_string("tests/conformance/xml/xmlconf/eduni/errata-4e/incl8bom.xml")
.unwrap()
.as_str(),
);
}
#[test]
#[ignore]
#[cfg(all(test, feature = "test-conformance-xml"))]
fn invalidbo4() {
test_eduni_errata4e_invalid(
fs::read_to_string("tests/conformance/xml/xmlconf/eduni/errata-4e/inclbombom_be.xml")
.unwrap()
.as_str(),
);
}
#[test]
#[ignore]
#[cfg(all(test, feature = "test-conformance-xml"))]
fn invalidbo5() {
test_eduni_errata4e_invalid(
fs::read_to_string("tests/conformance/xml/xmlconf/eduni/errata-4e/inclbombom_le.xml")
.unwrap()
.as_str(),
);
}
#[test]
#[ignore]
#[cfg(all(test, feature = "test-conformance-xml"))]
fn invalidbo6() {
test_eduni_errata4e_invalid(
fs::read_to_string("tests/conformance/xml/xmlconf/eduni/errata-4e/incl8bombom.xml")
.unwrap()
.as_str(),
);
}
#[test]
#[cfg(all(test, feature = "test-conformance-xml"))]
fn ibminvalid_p89ibm89n06xml() {
test_eduni_errata4e_invalid(
fs::read_to_string("tests/conformance/xml/xmlconf/eduni/errata-4e/ibm89n06.xml")
.unwrap()
.as_str(),
);
}
#[test]
#[cfg(all(test, feature = "test-conformance-xml"))]
fn ibminvalid_p89ibm89n07xml() {
test_eduni_errata4e_invalid(
fs::read_to_string("tests/conformance/xml/xmlconf/eduni/errata-4e/ibm89n07.xml")
.unwrap()
.as_str(),
);
}
#[test]
#[cfg(all(test, feature = "test-conformance-xml"))]
fn ibminvalid_p89ibm89n08xml() {
test_eduni_errata4e_invalid(
fs::read_to_string("tests/conformance/xml/xmlconf/eduni/errata-4e/ibm89n08.xml")
.unwrap()
.as_str(),
);
}
#[test]
#[cfg(all(test, feature = "test-conformance-xml"))]
fn ibminvalid_p89ibm89n09xml() {
test_eduni_errata4e_invalid(
fs::read_to_string("tests/conformance/xml/xmlconf/eduni/errata-4e/ibm89n09.xml")
.unwrap()
.as_str(),
);
}
#[test]
#[cfg(all(test, feature = "test-conformance-xml"))]
fn ibminvalid_p89ibm89n10xml() {
test_eduni_errata4e_invalid(
fs::read_to_string("tests/conformance/xml/xmlconf/eduni/errata-4e/ibm89n10.xml")
.unwrap()
.as_str(),
);
}
#[test]
#[cfg(all(test, feature = "test-conformance-xml"))]
fn ibminvalid_p89ibm89n11xml() {
test_eduni_errata4e_invalid(
fs::read_to_string("tests/conformance/xml/xmlconf/eduni/errata-4e/ibm89n11.xml")
.unwrap()
.as_str(),
);
}
#[test]
#[cfg(all(test, feature = "test-conformance-xml"))]
fn ibminvalid_p89ibm89n12xml() {
test_eduni_errata4e_invalid(
fs::read_to_string("tests/conformance/xml/xmlconf/eduni/errata-4e/ibm89n12.xml")
.unwrap()
.as_str(),
);
}