X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=xmltoolingtest%2FInlineKeyResolverTest.h;h=0f6a8fa79b3b7bc8fbbcb9152548873e686ac0a1;hb=a0d768778a8f5f539b909baf5b115e70ea765f0f;hp=0a23779f004a043051bc37bcbbe4cc17093b9084;hpb=68ad80745115ce5646ac4a6477e9a937ee339987;p=shibboleth%2Fcpp-xmltooling.git diff --git a/xmltoolingtest/InlineKeyResolverTest.h b/xmltoolingtest/InlineKeyResolverTest.h index 0a23779..0f6a8fa 100644 --- a/xmltoolingtest/InlineKeyResolverTest.h +++ b/xmltoolingtest/InlineKeyResolverTest.h @@ -1,63 +1,63 @@ -/* - * 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 -#include - -using namespace xmlsignature; - -class InlineKeyResolverTest : public CxxTest::TestSuite { - KeyResolver* m_resolver; -public: - InlineKeyResolverTest() : m_resolver(NULL) {} - - void setUp() { - string config = data_path + "InlineKeyResolver.xml"; - ifstream in(config.c_str()); - DOMDocument* doc=XMLToolingConfig::getConfig().getParser().parse(in); - XercesJanitor janitor(doc); - m_resolver=XMLToolingConfig::getConfig().KeyResolverManager.newPlugin(INLINE_KEY_RESOLVER,doc->getDocumentElement()); - } - - void tearDown() { - delete m_resolver; - m_resolver=NULL; - } - - void testResolver() { - 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); - - auto_ptr key(m_resolver->resolveKey(kiObject.get())); - TSM_ASSERT("Unable to resolve public key.", key.get()!=NULL); - TSM_ASSERT_EQUALS("Unexpected key type.", key->getKeyType(), XSECCryptoKey::KEY_RSA_PUBLIC); - - auto_ptr crl(m_resolver->resolveCRL(kiObject.get())); - TSM_ASSERT("Unable to resolve CRL.", crl.get()!=NULL); - - KeyResolver::ResolvedCertificates certs; - TSM_ASSERT_EQUALS("Wrong certificate count.", m_resolver->resolveCertificates(kiObject.get(), certs), 1); - } -}; +/* + * Copyright 2001-2010 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 +#include +#include + +using namespace xmlsignature; + +class InlineKeyResolverTest : public CxxTest::TestSuite { + KeyInfoResolver* m_resolver; +public: + InlineKeyResolverTest() : m_resolver(nullptr) {} + + void setUp() { + string config = data_path + "InlineKeyResolver.xml"; + ifstream in(config.c_str()); + DOMDocument* doc=XMLToolingConfig::getConfig().getParser().parse(in); + XercesJanitor janitor(doc); + m_resolver=XMLToolingConfig::getConfig().KeyInfoResolverManager.newPlugin(INLINE_KEYINFO_RESOLVER,doc->getDocumentElement()); + } + + void tearDown() { + delete m_resolver; + m_resolver=nullptr; + } + + void testResolver() { + string path=data_path + "KeyInfo1.xml"; + ifstream fs(path.c_str()); + DOMDocument* doc=XMLToolingConfig::getConfig().getValidatingParser().parse(fs); + TS_ASSERT(doc!=nullptr); + const XMLObjectBuilder* b = XMLObjectBuilder::getBuilder(doc->getDocumentElement()); + TS_ASSERT(b!=nullptr); + auto_ptr kiObject(dynamic_cast(b->buildFromDocument(doc))); + TS_ASSERT(kiObject.get()!=nullptr); + + auto_ptr cred(dynamic_cast(m_resolver->resolve(kiObject.get()))); + TSM_ASSERT("Unable to resolve KeyInfo into Credential.", cred.get()!=nullptr); + + TSM_ASSERT("Unable to resolve public key.", cred->getPublicKey()!=nullptr); + TSM_ASSERT_EQUALS("Unexpected key type.", cred->getPublicKey()->getKeyType(), XSECCryptoKey::KEY_RSA_PUBLIC); + TSM_ASSERT_EQUALS("Wrong certificate count.", cred->getEntityCertificateChain().size(), 1); + TSM_ASSERT_EQUALS("Wrong CRL count.", cred->getCRLs().size(), 3); + } +};