blob: ab63201acaaa3194c1d6d63a5deb3b2bfb8643c4 [file] [log] [blame]
/* Copyright 2004 The Apache Software Foundation
*
* Licensed 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 scomp.namespace.detailed;
import org.apache.xmlbeans.XmlErrorCodes;
import org.junit.Ignore;
import org.junit.Test;
import scomp.common.BaseCase;
import xbean.scomp.namespace.attributeWC.*;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
public class AttributeWC extends BaseCase {
@Test
public void testAnyLaxLegal() throws Throwable {
AnyLaxDocument doc = AnyLaxDocument.Factory.parse("<AnyLax xmlns=\"http://xbean/scomp/namespace/AttributeWC\" " +
"attr1=\"val1\"/>");
assertTrue(doc.validate(validateOptions));
}
@Test
public void testAnyLaxIllegal() throws Throwable {
AnyLaxDocument doc = AnyLaxDocument.Factory.parse("<AnyLax xmlns=\"http://xbean/scomp/namespace/AttributeWC\" " +
"attr1=\"val1\"/>");
assertTrue(doc.validate(validateOptions));
}
@Test
public void testAnySkipLegal() throws Throwable {
AnySkipDocument doc = AnySkipDocument.Factory.parse("<AnySkip xmlns=\"http://xbean/scomp/namespace/AttributeWC\" " +
"attr1=\"val1\"/>");
assertTrue(doc.validate(validateOptions));
}
/**
* Everything is legal here
* public void testAnySkipIllegal() throws Throwable {
* }
*/
//no NS is legal too
@Test
public void testAnyStrictLegal() throws Throwable {
AnyStrictDocument doc = AnyStrictDocument.Factory
.parse("<ns:AnyStrict" +
" xmlns:ns=\"http://xbean/scomp/namespace/AttributeWC\" " +
" xmlns:at=\"http://xbean/scomp/attribute/GlobalAttrDefault\" " +
"at:testattribute=\"val1\"/>");
assertTrue(doc.validate(validateOptions));
}
@Test
public void testAnyStrictIllegal() throws Throwable {
AnyStrictDocument doc = AnyStrictDocument.Factory.parse("<AnyStrict xmlns=\"http://xbean/scomp/namespace/AttributeWC\" " +
"attr1=\"val1\"/>");
assertTrue(!doc.validate(validateOptions));
showErrors();
String[] errExpected = new String[]{
XmlErrorCodes.ASSESS_ATTR_SCHEMA_VALID$NOT_RESOLVED
};
assertTrue(compareErrorCodes(errExpected));
}
@Test
public void testOtherLaxLegal() throws Throwable {
OtherLaxDocument doc = OtherLaxDocument.Factory
.parse("<foo:OtherLax " +
"xmlns:foo=\"http://xbean/scomp/namespace/AttributeWC\" " +
"xmlns:foobar=\"http:apache.org\" " +
"foobar:attr1=\"val1\"/>");
assertTrue(doc.validate(validateOptions));
}
//can not be in target NS
//cannot be in noNS
@Test
public void testOtherLaxIllegal() throws Throwable {
OtherLaxDocument doc = OtherLaxDocument.Factory
.parse("<foo:OtherLax xmlns:foo=\"http://xbean/scomp/namespace/AttributeWC\" " +
" foo:attr1=\"val1\"/>");
assertTrue(!doc.validate(validateOptions));
showErrors();
String[] errExpected = new String[]{
XmlErrorCodes.ELEM_COMPLEX_TYPE_LOCALLY_VALID$NOT_WILDCARD_VALID
};
assertTrue(compareErrorCodes(errExpected));
doc = OtherLaxDocument.Factory
.parse("<foo:OtherLax xmlns:foo=\"http://xbean/scomp/namespace/AttributeWC\" " +
"attr1=\"val1\"/>");
clearErrors();
assertTrue(!doc.validate(validateOptions));
showErrors();
errExpected = new String[]{
XmlErrorCodes.ELEM_COMPLEX_TYPE_LOCALLY_VALID$NOT_WILDCARD_VALID
};
assertTrue(compareErrorCodes(errExpected));
}
@Test
public void testOtherSkipLegal() throws Throwable {
OtherSkipDocument doc = OtherSkipDocument.Factory
.parse("<foo:OtherSkip xmlns:foo=\"http://xbean/scomp/namespace/AttributeWC\" " +
"xmlns:foobar=\"http:apache.org\" " +
"foobar:attr1=\"val1\"/>");
assertTrue(doc.validate(validateOptions));
}
//ns not allowed by the wc
@Test
public void testOtherSkipIllegal() throws Throwable {
OtherSkipDocument doc = OtherSkipDocument.Factory
.parse("<foo:OtherSkip xmlns:foo=\"http://xbean/scomp/namespace/AttributeWC\" " +
" foo:attr1=\"val1\"/>");
assertTrue(!doc.validate(validateOptions));
showErrors();
String[] errExpected = new String[]{
XmlErrorCodes.ELEM_COMPLEX_TYPE_LOCALLY_VALID$NOT_WILDCARD_VALID
};
assertTrue(compareErrorCodes(errExpected));
}
@Test
public void testOtherStrictLegal() throws Throwable {
OtherStrictDocument doc = OtherStrictDocument.Factory
.parse("<foo:OtherStrict xmlns:foo=\"http://xbean/scomp/namespace/AttributeWC\"" +
" xmlns:at=\"http://xbean/scomp/attribute/GlobalAttrDefault\"" +
" at:testattribute=\"val1\"/>");
assertTrue(doc.validate(validateOptions));
}
@Test
public void testOtherStrictIllegal() throws Throwable {
OtherStrictDocument doc = OtherStrictDocument.Factory
.parse("<foo:OtherStrict xmlns:foo=\"http://xbean/scomp/namespace/AttributeWC\"" +
" xmlns:at=\"http://xbean/scomp/attribute/GlobalAttrDefault\"" +
" at:test=\"val1\"/>");
assertTrue(!doc.validate(validateOptions));
showErrors();
String[] errExpected = new String[]{
XmlErrorCodes.ASSESS_ATTR_SCHEMA_VALID$NOT_RESOLVED
};
assertTrue(compareErrorCodes(errExpected));
}
//no declaration for this attr, no error on Lax
@Test
public void testListLaxLegal() throws Throwable {
ListLaxDocument doc = ListLaxDocument.Factory
.parse("<foo:ListLax " +
" xmlns:foo=\"http://xbean/scomp/namespace/AttributeWC\"" +
" xmlns:at=\"http://apache.org\"" +
" at:testattribute=\"val1\"/>");
assertTrue(doc.validate(validateOptions));
}
@Test
public void testListLaxIllegal() throws Throwable {
ListLaxDocument doc = ListLaxDocument.Factory.parse("<foo:ListLax " +
" xmlns:foo=\"http://xbean/scomp/namespace/AttributeWC\"" +
" xmlns:at=\"http://xbean/scomp/attribute/GlobalAttrDefault\"" +
" at:test=\"val1\"/>");
assertTrue(!doc.validate(validateOptions));
showErrors();
String[] errExpected = new String[]{
XmlErrorCodes.ELEM_COMPLEX_TYPE_LOCALLY_VALID$NOT_WILDCARD_VALID
};
assertTrue(compareErrorCodes(errExpected));
}
@Test
public void testListSkipLegal() throws Throwable {
ListSkipDocument doc = ListSkipDocument.Factory
.parse("<foo:ListSkip " +
" xmlns:foo=\"http://xbean/scomp/namespace/AttributeWC\"" +
" xmlns:at=\"http://apache.org\"" +
" at:testattribute=\"val1\"/>");
assertTrue(doc.validate(validateOptions));
}
@Test
public void testListSkipIllegal() throws Throwable {
ListSkipDocument doc = ListSkipDocument.Factory
.parse("<foo:ListSkip " +
" xmlns:foo=\"http://xbean/scomp/namespace/AttributeWC\"" +
" xmlns:at=\"http://apache_org.org\"" +
" at:testattribute=\"val1\"/>");
assertTrue(!doc.validate(validateOptions));
showErrors();
String[] errExpected = new String[]{
XmlErrorCodes.ELEM_COMPLEX_TYPE_LOCALLY_VALID$NOT_WILDCARD_VALID
};
assertTrue(compareErrorCodes(errExpected));
}
// " xmlns:pre=\"http://xbean/scomp/attribute/GlobalAttrDefault\"
@Test
public void testListStrictLegal() throws Throwable {
ListStrictDocument doc = ListStrictDocument.Factory
.parse("<foo:ListStrict " +
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " +
" xmlns:foo=\"http://xbean/scomp/namespace/AttributeWC\"" +
" xmlns:at=\"http://xbean/scomp/attribute/GlobalAttrDefault\"" +
" at:testattribute=\"val1\"/>");
if (!doc.validate(validateOptions)) {
showErrors();
fail("testFailed");
}
}
@Test
public void testListStrictIllegal() throws Throwable {
ListStrictDocument doc = ListStrictDocument.Factory
.parse("<foo:ListStrict " +
" xmlns:foo=\"http://xbean/scomp/namespace/AttributeWC\"" +
" xmlns:at=\"http://apache.org\"" +
" at:testattribute=\"val1\"/>");
assertTrue(!doc.validate(validateOptions));
showErrors();
String[] errExpected = new String[]{
XmlErrorCodes.ASSESS_ATTR_SCHEMA_VALID$NOT_RESOLVED
};
assertTrue(compareErrorCodes(errExpected));
}
@Test
public void testTargetLaxLegal() throws Throwable {
TargetLaxDocument doc = TargetLaxDocument.Factory
.parse("<foo:TargetLax " +
" xmlns:foo=\"http://xbean/scomp/namespace/AttributeWC\"" +
" foo:testattribute=\"val1\"/>");
assertTrue(doc.validate(validateOptions));
}
@Test
public void testTargetLaxIllegal() throws Throwable {
TargetLaxDocument doc = TargetLaxDocument.Factory
.parse("<foo:TargetLax " +
" xmlns:foo=\"http://xbean/scomp/namespace/AttributeWC\"" +
" xmlns:at=\"http://xbean/scomp/attribute/GlobalAttrDefault\"" +
" at:testattributeInt=\"foo\"/>");
assertTrue(!doc.validate(validateOptions));
showErrors();
String[] errExpected = new String[]{
XmlErrorCodes.ELEM_COMPLEX_TYPE_LOCALLY_VALID$NOT_WILDCARD_VALID
};
assertTrue(compareErrorCodes(errExpected));
}
@Test
public void testTargetSkipLegal() throws Throwable {
TargetSkipDocument doc = TargetSkipDocument.Factory
.parse("<foo:TargetSkip " +
" xmlns:foo=\"http://xbean/scomp/namespace/AttributeWC\"" +
" foo:undeclAttr=\"val1\"/>");
assertTrue(doc.validate(validateOptions));
}
/**
* can a test ever be illegal here?
*/
@Ignore
@Test
public void testTargetSkipIllegal() throws Throwable {
TargetSkipDocument doc = TargetSkipDocument.Factory
.parse("<foo:TargetSkip " +
" xmlns:foo=\"http://xbean/scomp/namespace/AttributeWC\"" +
" foo:undeclAttr=\"val1\"/>");
assertTrue(!doc.validate(validateOptions));
showErrors();
String[] errExpected = new String[]{"cvc-attribute"};
assertTrue(compareErrorCodes(errExpected));
}
@Test
public void testTargetStrictLegal() throws Throwable {
TargetStrictDocument doc = TargetStrictDocument.Factory
.parse("<foo:TargetStrict " +
" xmlns:foo=\"http://xbean/scomp/namespace/AttributeWC\"" +
" foo:LocalAttr=\"3\"/>");
assertTrue(doc.validate(validateOptions));
}
@Test
public void testTargetStrictIllegal() throws Throwable {
TargetStrictDocument doc = TargetStrictDocument.Factory
.parse("<foo:TargetStrict " +
" xmlns:foo=\"http://xbean/scomp/namespace/AttributeWC\"" +
" foo:LocalAttr=\"foo\"/>");
assertTrue(!doc.validate(validateOptions));
showErrors();
String[] errExpected = new String[]{
XmlErrorCodes.DECIMAL
};
assertTrue(compareErrorCodes(errExpected));
}
@Test
public void testLocalLaxLegal() throws Throwable {
LocalLaxDocument doc = LocalLaxDocument.Factory
.parse("<foo:LocalLax " +
" xmlns:foo=\"http://xbean/scomp/namespace/AttributeWC\"" +
" undeclAttr=\"val1\"/>");
assertTrue(doc.validate(validateOptions));
}
@Test
public void testLocalLaxIllegal() throws Throwable {
LocalLaxDocument doc = LocalLaxDocument.Factory
.parse("<foo:LocalLax " +
" xmlns:foo=\"http://xbean/scomp/namespace/AttributeWC\"" +
" foo:undeclAttr=\"val1\"/>");
assertTrue(!doc.validate(validateOptions));
showErrors();
String[] errExpected = new String[]{
XmlErrorCodes.ELEM_COMPLEX_TYPE_LOCALLY_VALID$NOT_WILDCARD_VALID
};
assertTrue(compareErrorCodes(errExpected));
}
@Test
public void testLocalSkipLegal() throws Throwable {
LocalSkipDocument doc = LocalSkipDocument.Factory
.parse("<foo:LocalSkip " +
" xmlns:foo=\"http://xbean/scomp/namespace/AttributeWC\"" +
" undeclAttr=\"val1\"/>");
assertTrue(doc.validate(validateOptions));
}
/**
* can a test ever be illegal here?
*/
@Ignore
@Test
public void testLocalSkipIllegal() throws Throwable {
LocalSkipDocument doc = LocalSkipDocument.Factory
.parse("<foo:LocalSkip " +
" xmlns:foo=\"http://xbean/scomp/namespace/AttributeWC\"" +
" undeclAttr=\"val1\"/>");
assertTrue(!doc.validate(validateOptions));
showErrors();
String[] errExpected = new String[]{"cvc-attribute"};
assertTrue(compareErrorCodes(errExpected));
}
@Test
public void testLocalStrictIllegal() throws Throwable {
LocalStrictDocument doc = LocalStrictDocument.Factory
.parse("<foo:LocalStrict " +
" xmlns:foo=\"http://xbean/scomp/namespace/AttributeWC\"" +
" undeclAttr=\"val1\"/>");
assertTrue(!doc.validate(validateOptions));
showErrors();
String[] errExpected = new String[]{
XmlErrorCodes.ASSESS_ATTR_SCHEMA_VALID$NOT_RESOLVED
};
assertTrue(compareErrorCodes(errExpected));
}
@Test
public void testLocalStrictLegal() throws Throwable {
LocalStrictDocument doc = LocalStrictDocument.Factory
.parse("<foo:LocalStrict " +
" xmlns:foo=\"http://xbean/scomp/namespace/AttributeWC\"" +
" NoNSAttr=\"2\"/>");
if (!doc.validate(validateOptions)) {
showErrors();
fail("test failed");
}
}
}