X-Git-Url: http://www.project-moonshot.org/gitweb/?p=shibboleth%2Fcpp-opensaml.git;a=blobdiff_plain;f=samltest%2Finternal.h;h=2389848c9e70335e2973b7bceb5ea6eb68114124;hp=7e82e01edf4c8446e5edc5c570b5b50caaa62626;hb=HEAD;hpb=bd8b4c9a43deab5f81fd0d3bcc0f5a74e44ee195 diff --git a/samltest/internal.h b/samltest/internal.h index 7e82e01..2389848 100644 --- a/samltest/internal.h +++ b/samltest/internal.h @@ -1,32 +1,43 @@ -/* - * Copyright 2001-2006 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 +/** + * Licensed to the University Corporation for Advanced Internet + * Development, Inc. (UCAID) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for + * additional information regarding copyright ownership. * - * http://www.apache.org/licenses/LICENSE-2.0 + * UCAID 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 * - * 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. + * 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. */ +#ifdef WIN32 +# define _CRT_SECURE_NO_DEPRECATE 1 +# define _CRT_NONSTDC_NO_DEPRECATE 1 +#endif + #include -#include #include -#include #include -#include -#include + +#include #include #include +#include +#include +#include +#include -using namespace opensaml; using namespace xmltooling; +using namespace xercesc; using namespace std; extern string data_path; @@ -72,8 +83,16 @@ protected: } } - void assertEquals(const char* failMessage, DOMDocument* expectedDOM, XMLObject* xmlObject) { - DOMElement* generatedDOM = xmlObject->marshall(); + void assertEquals(const char* failMessage, DOMDocument* expectedDOM, XMLObject* xmlObject, bool canMarshall=true) { + DOMElement* generatedDOM = xmlObject->getDOM(); + if (!generatedDOM) { + if (!canMarshall) { + TSM_ASSERT("DOM not available", false); + } + else { + generatedDOM = xmlObject->marshall(); + } + } if (!generatedDOM->isEqualNode(expectedDOM->getDocumentElement())) { string buf; XMLHelper::serialize(generatedDOM, buf); @@ -85,19 +104,21 @@ protected: } } - void assertEquals(DOMDocument* expectedDOM, XMLObject* xmlObject) { - assertEquals("Marshalled DOM was not the same as the expected DOM", expectedDOM, xmlObject); + void assertEquals(DOMDocument* expectedDOM, XMLObject* xmlObject, bool canMarshall=true) { + xmlObject->releaseThisAndChildrenDOM(); + auto_ptr cloned(xmlObject->clone()); + assertEquals("Marshalled DOM was not the same as the expected DOM", expectedDOM, cloned.get(), canMarshall); delete xmlObject; } void assertEquals(const char* failMessage, const XMLCh* expectedString, const XMLCh* testString) { - char* buf = NULL; + char* buf = nullptr; if (!XMLString::equals(expectedString, testString)) { buf = XMLString::transcode(testString); - TS_TRACE(buf); + TS_TRACE(buf ? buf : "(NULL)"); XMLString::release(&buf); buf = XMLString::transcode(expectedString); - TS_TRACE(buf); + TS_TRACE(buf ? buf : "(NULL)"); XMLString::release(&buf); TSM_ASSERT(failMessage, false); } @@ -132,7 +153,7 @@ public: class SAMLObjectValidatorBaseTestCase : virtual public SAMLObjectBaseTestCase { public: - SAMLObjectValidatorBaseTestCase() : target(NULL), targetQName(NULL), builder(NULL), validator(NULL) {} + SAMLObjectValidatorBaseTestCase() : target(nullptr), targetQName(nullptr), builder(nullptr), validator(nullptr) {} virtual ~SAMLObjectValidatorBaseTestCase() { delete validator; @@ -143,7 +164,7 @@ class SAMLObjectValidatorBaseTestCase : virtual public SAMLObjectBaseTestCase { XMLObject* target; /** QName of the object to be tested */ - QName targetQName; + xmltooling::QName targetQName; /** Builder for XMLObjects of type targetQName */ const XMLObjectBuilder* builder; @@ -213,11 +234,11 @@ class SAMLObjectValidatorBaseTestCase : virtual public SAMLObjectBaseTestCase { * @param targetQName QName of the type of object to build * @returns new XMLObject of type targetQName */ - XMLObject* buildXMLObject(QName &targetQName) { + XMLObject* buildXMLObject(xmltooling::QName &targetQName) { // Create the builder on the first request only, for efficiency - if (builder == NULL) { + if (builder == nullptr) { builder = XMLObjectBuilder::getBuilder(targetQName); - TSM_ASSERT("Unable to retrieve builder for object QName: " + targetQName.toString(), builder!=NULL); + TSM_ASSERT("Unable to retrieve builder for object QName: " + targetQName.toString(), builder!=nullptr); } return builder->buildObject(targetQName.getNamespaceURI(), targetQName.getLocalPart(), targetQName.getPrefix()); @@ -230,16 +251,16 @@ class SAMLObjectValidatorBaseTestCase : virtual public SAMLObjectBaseTestCase { TSM_ASSERT("targetQName was empty", targetQName.hasLocalPart()); - TSM_ASSERT("validator was null", validator!=NULL); + TSM_ASSERT("validator was null", validator!=nullptr); target = buildXMLObject(targetQName); - TSM_ASSERT("XMLObject target was NULL", target!=NULL); + TSM_ASSERT("XMLObject target was NULL", target!=nullptr); populateRequiredData(); } void tearDown() { delete target; - target=NULL; + target=nullptr; SAMLObjectBaseTestCase::tearDown(); }