diff options
author | Kurt Zenker <kz@openoffice.org> | 2007-05-09 12:48:45 +0000 |
---|---|---|
committer | Kurt Zenker <kz@openoffice.org> | 2007-05-09 12:48:45 +0000 |
commit | 50f19e5c9bd34091375596a04c2b7369e7aa251f (patch) | |
tree | fa18f379d9437183e11fab5ab76aa3d2b714930d /cppu | |
parent | 1296fbd3b0298ee5e0a73287405f68b504a780b5 (diff) |
INTEGRATION: CWS bunoexttm (1.1.2.1.2); FILE ADDED
2007/01/26 09:37:27 kr 1.1.2.1.2.1: fixed: license, warning
Diffstat (limited to 'cppu')
-rw-r--r-- | cppu/test/env_tester/register.test.cxx | 242 |
1 files changed, 242 insertions, 0 deletions
diff --git a/cppu/test/env_tester/register.test.cxx b/cppu/test/env_tester/register.test.cxx new file mode 100644 index 000000000000..bf15ada3c639 --- /dev/null +++ b/cppu/test/env_tester/register.test.cxx @@ -0,0 +1,242 @@ +/************************************************************************* + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: register.test.cxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: kz $ $Date: 2007-05-09 13:48:45 $ + * + * The Contents of this file are made available subject to + * the terms of GNU Lesser General Public License Version 2.1. + * + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2005 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + ************************************************************************/ + +#include <iostream> + +#include "sal/main.h" +#include "rtl/ustring.hxx" +#include "rtl/string.hxx" +#include "rtl/alloc.h" +#include "uno/environment.hxx" +#include "uno/lbnames.h" + +using namespace com::sun::star; + + +static rtl::OUString s_test_getEnvironment(rtl::OUString const & envDcp, void * pContext) +{ + rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\ts_test_getEnvironment(")); + result += envDcp; + result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(", ")); + result += rtl::OUString::valueOf((sal_Int32)pContext); + result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(")\n")); + + uno::Environment env(envDcp, pContext); + + if (!env.is()) + { + result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tFAILURE: couldn't get env.\n")); + return result; + } + + if (rtl::OUString(env.getTypeName()).compareTo(envDcp)) + result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tFAILURE: got environment has wrong descriptor.\n")); + + if (env.getContext() != pContext) + result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tFAILURE: got environment has wrong context.\n")); + + + return result; +} + +static rtl::OUString s_test_regetEnvironment(rtl::OUString const & envDcp1, + rtl::OUString const & envDcp2 , + void * pContext1, void * pContext2) +{ + rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\ts_test_regetEnvironment(")); + result += envDcp1; + result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(", ")); + result += envDcp2; + result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(", ")); + result += rtl::OUString::valueOf((sal_Int32)pContext1); + result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(", " )); + result += rtl::OUString::valueOf((sal_Int32)pContext2); + result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(")\n")); + + uno::Environment env1(envDcp1, pContext1); + uno::Environment env2(envDcp2, pContext2); + + if (! ((pContext1 == pContext2 && envDcp1 == envDcp2) ? env1.get() == env2.get() : env1.get() != env2.get()) + && env1.is() && env2.is()) + result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tFAILURE:\n")); + + return result; +} + +static rtl::OUString s_test_regetEnvironment(rtl::OUString const & envDcp, void * pContext) +{ + return s_test_regetEnvironment(envDcp, envDcp, pContext, pContext); +} + +// static rtl::OUString s_test_regetEnvironment(rtl::OUString const & envDcp, void * pContext1, void * pContext2) +// { +// return s_test_regetEnvironment(envDcp, envDcp, pContext1, pContext2); +// } + +static rtl::OUString s_test_regetEnvironment(rtl::OUString const & envDcp1, rtl::OUString const & envDcp2, void * pContext) +{ + return s_test_regetEnvironment(envDcp1, envDcp2, pContext, pContext); +} + + +static int s_is_registered(rtl::OUString const & envDcp, void * pContext) +{ + int result = 0; + + uno_Environment ** ppEnvs = NULL; + sal_Int32 nLen = 0; + + uno_getRegisteredEnvironments(&ppEnvs, &nLen, rtl_allocateMemory, envDcp.pData); + for (sal_Int32 i = 0; !result && i < nLen; ++ i) + { + result = result || (ppEnvs[i]->pContext == pContext && !rtl::OUString(ppEnvs[i]->pTypeName).compareTo(envDcp)); + + ppEnvs[i]->release(ppEnvs[i]); + } + rtl_freeMemory(ppEnvs); + + return result; +} + +static rtl::OUString s_test_uno_getRegisteredEnvironments_registered(rtl::OUString const & envDcp, void * pContext) +{ + rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\ts_test_uno_getRegisteredEnvironments_registered(")); + result += envDcp; + result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(", ")); + result += rtl::OUString::valueOf((sal_Int32)pContext); + result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(")\n")); + + uno::Environment env(envDcp, pContext); + + if (!env.is() || !s_is_registered(envDcp, pContext)) + result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tFAILURE:\n")); + + return result; +} + +static rtl::OUString s_test_uno_getRegisteredEnvironments_notRegistered(rtl::OUString const & envDcp, void * pContext) +{ + rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\ts_test_uno_getRegisteredEnvironments_notRegistered(")); + result += envDcp; + result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(", ")); + result += rtl::OUString::valueOf((sal_Int32)pContext); + result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(")\n")); + + uno::Environment env(envDcp, pContext); + + if (!env.is() && !s_is_registered(envDcp, pContext)) + result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tFAILURE:\n")); + + return result; +} + + +static rtl::OUString s_test_uno_createEnvironment(rtl::OUString const & envDcp, void * pContext) +{ + rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\ts_test_uno_createEnvironment(")); + result += envDcp; + result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(", ")); + result += rtl::OUString::valueOf((sal_Int32)pContext); + result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(")\n")); + + uno_Environment * pEnv = NULL; + uno_createEnvironment(&pEnv, envDcp.pData, pContext); + + if (!pEnv && !s_is_registered(envDcp, pContext)) + result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tFAILURE:\n")); + + if (pEnv) + pEnv->release(pEnv); + + return result; +} + + +rtl::OUString register_test(rtl::OUString const & envDcp) +{ + rtl::OUString env_A(envDcp); + env_A += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(":purpA")); + + rtl::OUString env_B(envDcp); + env_B += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(":purpB")); + + rtl::OUString result; + + result = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("registration_test")); + result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")); + + result += s_test_getEnvironment(envDcp, NULL); + result += s_test_getEnvironment(env_A, NULL); + result += s_test_getEnvironment(env_B, NULL); + + result += s_test_regetEnvironment(envDcp, NULL); + result += s_test_regetEnvironment(envDcp, (void *)0x1); + result += s_test_regetEnvironment(env_A, NULL) ; + result += s_test_regetEnvironment(env_A, (void *)0x1); + result += s_test_regetEnvironment(env_B, NULL) ; + result += s_test_regetEnvironment(env_B, (void *)0x1); + + result += s_test_regetEnvironment(envDcp, env_A, (void *)NULL); + result += s_test_regetEnvironment(envDcp, env_A, (void *)0x1) ; + result += s_test_regetEnvironment(envDcp, env_B, (void *)NULL); + result += s_test_regetEnvironment(envDcp, env_B, (void *)0x1) ; + result += s_test_regetEnvironment(env_A, env_B, (void *)NULL); + result += s_test_regetEnvironment(env_A, env_B, (void *)0x1) ; + + result += s_test_regetEnvironment(env_A, env_B, (void *)NULL, (void *)0x1); + + result += s_test_uno_getRegisteredEnvironments_registered(envDcp, (void *)NULL); + result += s_test_uno_getRegisteredEnvironments_registered(envDcp, (void *)0x1) ; + result += s_test_uno_getRegisteredEnvironments_registered(env_A, (void *)NULL); + result += s_test_uno_getRegisteredEnvironments_registered(env_A, (void *)0x1) ; + result += s_test_uno_getRegisteredEnvironments_registered(env_B, (void *)NULL); + result += s_test_uno_getRegisteredEnvironments_registered(env_B, (void *)0x1) ; + + result += s_test_uno_getRegisteredEnvironments_notRegistered(envDcp, NULL) ; + result += s_test_uno_getRegisteredEnvironments_notRegistered(envDcp, (void *)0x1); + result += s_test_uno_getRegisteredEnvironments_notRegistered(env_A, NULL) ; + result += s_test_uno_getRegisteredEnvironments_notRegistered(env_A, (void *)0x1); + result += s_test_uno_getRegisteredEnvironments_notRegistered(env_B, NULL) ; + result += s_test_uno_getRegisteredEnvironments_notRegistered(env_B, (void *)0x1); + + result += s_test_uno_createEnvironment(envDcp, NULL) ; + result += s_test_uno_createEnvironment(envDcp, (void *)0x1); + result += s_test_uno_createEnvironment(env_A, NULL) ; + result += s_test_uno_createEnvironment(env_A, (void *)0x1); + result += s_test_uno_createEnvironment(env_B, NULL) ; + result += s_test_uno_createEnvironment(env_B, (void *)0x1); + + return result; +} |