X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=xmltoolingtest%2FKeyInfoTest.h;h=609d167b0542699a95fc675ce75f41f5fa402c9b;hb=2fade7a909ffab2fbeb3433dd1f8971446e3bcf4;hp=50862434f4c8c9b907b34d90fc32e6655f43b9ce;hpb=a514742cd7ede892f18ad7e2deefed1c1712a517;p=shibboleth%2Fcpp-xmltooling.git diff --git a/xmltoolingtest/KeyInfoTest.h b/xmltoolingtest/KeyInfoTest.h index 5086243..609d167 100644 --- a/xmltoolingtest/KeyInfoTest.h +++ b/xmltoolingtest/KeyInfoTest.h @@ -1,94 +1,95 @@ -/* - * Copyright 2001-2005 Internet2 - * - * 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. - */ - -#include "XMLObjectBaseTestCase.h" - -#include -#include - -using namespace xmlsignature; - -class KeyInfoTest : public CxxTest::TestSuite { -public: - KeyInfoTest() {} - - void setUp() { - XMLObjectBuilder::registerDefaultBuilder(new AnyElementBuilder()); - } - - void tearDown() { - XMLObjectBuilder::deregisterDefaultBuilder(); - } - - void testKeyInfo1() { - string path=data_path + "KeyInfo1.xml"; - ifstream fs(path.c_str()); - DOMDocument* doc=XMLToolingConfig::getConfig().getValidatingParser().parse(fs); - TS_ASSERT(doc!=NULL); - - const XMLObjectBuilder* b = XMLObjectBuilder::getBuilder(doc->getDocumentElement()); - TS_ASSERT(b!=NULL); - - auto_ptr kiObject(dynamic_cast(b->buildFromDocument(doc))); - TS_ASSERT(kiObject.get()!=NULL); - TSM_ASSERT_EQUALS("Number of child elements was not expected value", - 3, kiObject->getOrderedChildren().size()); - TSM_ASSERT_EQUALS("Number of child elements was not expected value", - 1, kiObject->getKeyValues().size()); - TSM_ASSERT_EQUALS("Number of child elements was not expected value", - 1, kiObject->getX509Datas().front()->getX509Certificates().size()); - - auto_ptr_XMLCh expected("Public Key for CN=xmldap.org, OU=Domain Control Validated, O=xmldap.org"); - TSM_ASSERT("KeyName was not expected value", XMLString::equals(expected.get(), kiObject->getKeyNames().front()->getName())); - - SchemaValidators.validate(kiObject.get()); - } - - void testKeyInfo2() { - string path=data_path + "KeyInfo2.xml"; - ifstream fs(path.c_str()); - DOMDocument* doc=XMLToolingConfig::getConfig().getValidatingParser().parse(fs); - TS_ASSERT(doc!=NULL); - - const XMLObjectBuilder* b = XMLObjectBuilder::getBuilder(doc->getDocumentElement()); - TS_ASSERT(b!=NULL); - - auto_ptr kiObject(dynamic_cast(b->buildFromDocument(doc))); - TS_ASSERT(kiObject.get()!=NULL); - TSM_ASSERT_EQUALS("Number of child elements was not expected value", - 2, kiObject->getOrderedChildren().size()); - TSM_ASSERT_EQUALS("Number of child elements was not expected value", - 1, kiObject->getRetrievalMethods().size()); - TSM_ASSERT_EQUALS("Number of child elements was not expected value", - 2, kiObject->getSPKIDatas().front()->getSPKISexps().size()); - - SchemaValidators.validate(kiObject.get()); - } - - void testKeyInfo3() { - string path=data_path + "KeyInfo3.xml"; - ifstream fs(path.c_str()); - DOMDocument* doc=XMLToolingConfig::getConfig().getParser().parse(fs); - TS_ASSERT(doc!=NULL); - - const XMLObjectBuilder* b = XMLObjectBuilder::getBuilder(doc->getDocumentElement()); - TS_ASSERT(b!=NULL); - - auto_ptr kiObject(dynamic_cast(b->buildFromDocument(doc))); - TS_ASSERT(kiObject.get()!=NULL); - TS_ASSERT_THROWS(SchemaValidators.validate(kiObject.get()),ValidationException); - } -}; +/* + * Copyright 2001-2007 Internet2 + * + * 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. + */ + +#include "XMLObjectBaseTestCase.h" + +#include +#include +#include + +using namespace xmlsignature; + +class KeyInfoTest : public CxxTest::TestSuite { +public: + KeyInfoTest() {} + + void setUp() { + XMLObjectBuilder::registerDefaultBuilder(new AnyElementBuilder()); + } + + void tearDown() { + XMLObjectBuilder::deregisterDefaultBuilder(); + } + + void testKeyInfo1() { + string path=data_path + "KeyInfo1.xml"; + ifstream fs(path.c_str()); + DOMDocument* doc=XMLToolingConfig::getConfig().getValidatingParser().parse(fs); + TS_ASSERT(doc!=NULL); + + const XMLObjectBuilder* b = XMLObjectBuilder::getBuilder(doc->getDocumentElement()); + TS_ASSERT(b!=NULL); + + auto_ptr kiObject(dynamic_cast(b->buildFromDocument(doc))); + TS_ASSERT(kiObject.get()!=NULL); + TSM_ASSERT_EQUALS("Number of child elements was not expected value", + 3, kiObject->getOrderedChildren().size()); + TSM_ASSERT_EQUALS("Number of child elements was not expected value", + 1, kiObject->getKeyValues().size()); + TSM_ASSERT_EQUALS("Number of child elements was not expected value", + 1, kiObject->getX509Datas().front()->getX509Certificates().size()); + + auto_ptr_XMLCh expected("Public Key for CN=xmldap.org, OU=Domain Control Validated, O=xmldap.org"); + TSM_ASSERT("KeyName was not expected value", XMLString::equals(expected.get(), kiObject->getKeyNames().front()->getName())); + + SchemaValidators.validate(kiObject.get()); + } + + void testKeyInfo2() { + string path=data_path + "KeyInfo2.xml"; + ifstream fs(path.c_str()); + DOMDocument* doc=XMLToolingConfig::getConfig().getValidatingParser().parse(fs); + TS_ASSERT(doc!=NULL); + + const XMLObjectBuilder* b = XMLObjectBuilder::getBuilder(doc->getDocumentElement()); + TS_ASSERT(b!=NULL); + + auto_ptr kiObject(dynamic_cast(b->buildFromDocument(doc))); + TS_ASSERT(kiObject.get()!=NULL); + TSM_ASSERT_EQUALS("Number of child elements was not expected value", + 2, kiObject->getOrderedChildren().size()); + TSM_ASSERT_EQUALS("Number of child elements was not expected value", + 1, kiObject->getRetrievalMethods().size()); + TSM_ASSERT_EQUALS("Number of child elements was not expected value", + 2, kiObject->getSPKIDatas().front()->getSPKISexps().size()); + + SchemaValidators.validate(kiObject.get()); + } + + void testKeyInfo3() { + string path=data_path + "KeyInfo3.xml"; + ifstream fs(path.c_str()); + DOMDocument* doc=XMLToolingConfig::getConfig().getParser().parse(fs); + TS_ASSERT(doc!=NULL); + + const XMLObjectBuilder* b = XMLObjectBuilder::getBuilder(doc->getDocumentElement()); + TS_ASSERT(b!=NULL); + + auto_ptr kiObject(dynamic_cast(b->buildFromDocument(doc))); + TS_ASSERT(kiObject.get()!=NULL); + TS_ASSERT_THROWS(SchemaValidators.validate(kiObject.get()),ValidationException); + } +};