1 /**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_cppu.hxx"
26
27 #include "sal/config.h"
28
29 #include <typeinfo>
30
31 #include "com/sun/star/beans/Optional.hpp"
32 #include "com/sun/star/beans/PropertyChangeEvent.hpp"
33 #include "com/sun/star/lang/EventObject.hpp"
34 #include "com/sun/star/uno/Exception.hpp"
35 #include "com/sun/star/uno/Reference.hxx"
36 #include "com/sun/star/uno/RuntimeException.hpp"
37 #include "com/sun/star/uno/Sequence.hxx"
38 #include "com/sun/star/uno/Type.hxx"
39 #include "com/sun/star/uno/TypeClass.hpp"
40 #include "com/sun/star/uno/XComponentContext.hpp"
41 #include "com/sun/star/uno/XInterface.hpp"
42 #include "cppu/unotype.hxx"
43 #include "rtl/ustring.h"
44 #include "rtl/ustring.hxx"
45 #include "sal/types.h"
46 #include "gtest/gtest.h"
47
48 namespace com { namespace sun { namespace star { namespace uno {
49 class Any;
50 } } } }
51
52 namespace {
53
54 namespace css = com::sun::star;
55
56 struct DerivedStruct1: css::lang::EventObject {};
57
58 struct DerivedStruct2: css::beans::PropertyChangeEvent {};
59
60 struct DerivedException1: css::uno::Exception {};
61
62 struct DerivedException2: css::uno::RuntimeException {};
63
64 struct DerivedInterface1: css::uno::XInterface {};
65
66 struct DerivedInterface2: css::uno::XComponentContext {};
67
68 class Test: public ::testing::Test {
69 public:
70 };
71
TEST_F(Test,testUnoType)72 TEST_F(Test, testUnoType) {
73 css::uno::Type t;
74 t = ::cppu::UnoType< ::cppu::UnoVoidType >::get();
75 ASSERT_EQ(css::uno::TypeClass_VOID, t.getTypeClass());
76 ASSERT_EQ(
77 ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("void")), t.getTypeName());
78 t = ::cppu::UnoType< bool >::get();
79 ASSERT_EQ(css::uno::TypeClass_BOOLEAN, t.getTypeClass());
80 ASSERT_EQ(
81 ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("boolean")),
82 t.getTypeName());
83 ASSERT_TRUE(::cppu::UnoType< ::sal_Bool >::get() == t);
84 t = ::cppu::UnoType< ::sal_Int8 >::get();
85 ASSERT_EQ(css::uno::TypeClass_BYTE, t.getTypeClass());
86 ASSERT_EQ(
87 ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("byte")), t.getTypeName());
88 t = ::cppu::UnoType< ::sal_Int16 >::get();
89 ASSERT_EQ(css::uno::TypeClass_SHORT, t.getTypeClass());
90 ASSERT_EQ(
91 ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("short")), t.getTypeName());
92 t = ::cppu::UnoType< ::cppu::UnoUnsignedShortType >::get();
93 ASSERT_EQ(css::uno::TypeClass_UNSIGNED_SHORT, t.getTypeClass());
94 ASSERT_EQ(
95 ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("unsigned short")),
96 t.getTypeName());
97 t = ::cppu::UnoType< ::sal_Int32 >::get();
98 ASSERT_EQ(css::uno::TypeClass_LONG, t.getTypeClass());
99 ASSERT_EQ(
100 ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("long")), t.getTypeName());
101 t = ::cppu::UnoType< ::sal_uInt32 >::get();
102 ASSERT_EQ(css::uno::TypeClass_UNSIGNED_LONG, t.getTypeClass());
103 ASSERT_EQ(
104 ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("unsigned long")),
105 t.getTypeName());
106 t = ::cppu::UnoType< ::sal_Int64 >::get();
107 ASSERT_EQ(css::uno::TypeClass_HYPER, t.getTypeClass());
108 ASSERT_EQ(
109 ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("hyper")), t.getTypeName());
110 t = ::cppu::UnoType< ::sal_uInt64 >::get();
111 ASSERT_EQ(css::uno::TypeClass_UNSIGNED_HYPER, t.getTypeClass());
112 ASSERT_EQ(
113 ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("unsigned hyper")),
114 t.getTypeName());
115 t = ::cppu::UnoType< float >::get();
116 ASSERT_EQ(css::uno::TypeClass_FLOAT, t.getTypeClass());
117 ASSERT_EQ(
118 ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("float")), t.getTypeName());
119 t = ::cppu::UnoType< double >::get();
120 ASSERT_EQ(css::uno::TypeClass_DOUBLE, t.getTypeClass());
121 ASSERT_EQ(
122 ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("double")),
123 t.getTypeName());
124 t = ::cppu::UnoType< ::cppu::UnoCharType >::get();
125 ASSERT_EQ(css::uno::TypeClass_CHAR, t.getTypeClass());
126 ASSERT_EQ(
127 ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("char")), t.getTypeName());
128 t = ::cppu::UnoType< ::rtl::OUString >::get();
129 ASSERT_EQ(css::uno::TypeClass_STRING, t.getTypeClass());
130 ASSERT_EQ(
131 ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("string")),
132 t.getTypeName());
133 t = ::cppu::UnoType< css::uno::Type >::get();
134 ASSERT_EQ(css::uno::TypeClass_TYPE, t.getTypeClass());
135 ASSERT_EQ(
136 ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("type")), t.getTypeName());
137 t = ::cppu::UnoType< css::uno::Any >::get();
138 ASSERT_EQ(css::uno::TypeClass_ANY, t.getTypeClass());
139 ASSERT_EQ(
140 ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("any")), t.getTypeName());
141 t = ::cppu::UnoType< ::cppu::UnoSequenceType< ::sal_Int8 > >::get();
142 ASSERT_EQ(css::uno::TypeClass_SEQUENCE, t.getTypeClass());
143 ASSERT_EQ(
144 ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("[]byte")),
145 t.getTypeName());
146 ASSERT_TRUE(
147 ::cppu::UnoType< css::uno::Sequence< ::sal_Int8 > >::get() == t);
148 t = ::cppu::UnoType<
149 ::cppu::UnoSequenceType< ::cppu::UnoUnsignedShortType > >::get();
150 ASSERT_EQ(css::uno::TypeClass_SEQUENCE, t.getTypeClass());
151 ASSERT_EQ(
152 ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("[]unsigned short")),
153 t.getTypeName());
154 t = ::cppu::UnoType<
155 ::cppu::UnoSequenceType< ::cppu::UnoCharType > >::get();
156 ASSERT_EQ(css::uno::TypeClass_SEQUENCE, t.getTypeClass());
157 ASSERT_EQ(
158 ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("[]char")),
159 t.getTypeName());
160 t = ::cppu::UnoType< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
161 ::sal_Int8 > > >::get();
162 ASSERT_EQ(css::uno::TypeClass_SEQUENCE, t.getTypeClass());
163 ASSERT_EQ(
164 ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("[][]byte")),
165 t.getTypeName());
166 ASSERT_TRUE(
167 ::cppu::UnoType<
168 css::uno::Sequence< css::uno::Sequence< ::sal_Int8 > > >::get() == t);
169 t = ::cppu::UnoType< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
170 ::cppu::UnoUnsignedShortType > > >::get();
171 ASSERT_EQ(css::uno::TypeClass_SEQUENCE, t.getTypeClass());
172 ASSERT_EQ(
173 ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("[][]unsigned short")),
174 t.getTypeName());
175 t = ::cppu::UnoType< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
176 ::cppu::UnoCharType > > >::get();
177 ASSERT_EQ(css::uno::TypeClass_SEQUENCE, t.getTypeClass());
178 ASSERT_EQ(
179 ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("[][]char")),
180 t.getTypeName());
181 t = ::cppu::UnoType< css::uno::TypeClass >::get();
182 ASSERT_EQ(css::uno::TypeClass_ENUM, t.getTypeClass());
183 ASSERT_EQ(
184 ::rtl::OUString(
185 RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.TypeClass")),
186 t.getTypeName());
187 t = ::cppu::UnoType< css::lang::EventObject >::get();
188 ASSERT_EQ(css::uno::TypeClass_STRUCT, t.getTypeClass());
189 ASSERT_EQ(
190 ::rtl::OUString(
191 RTL_CONSTASCII_USTRINGPARAM("com.sun.star.lang.EventObject")),
192 t.getTypeName());
193 ASSERT_TRUE(::cppu::UnoType< DerivedStruct1 >::get() == t);
194 t = ::cppu::UnoType< css::beans::PropertyChangeEvent >::get();
195 ASSERT_EQ(css::uno::TypeClass_STRUCT, t.getTypeClass());
196 ASSERT_EQ(
197 ::rtl::OUString(
198 RTL_CONSTASCII_USTRINGPARAM(
199 "com.sun.star.beans.PropertyChangeEvent")),
200 t.getTypeName());
201 #if !(defined __SUNPRO_CC && __SUNPRO_CC <= 0x550) // erroneous ambiguity stated
202 ASSERT_TRUE(::cppu::UnoType< DerivedStruct2 >::get() == t);
203 #endif
204 t = ::cppu::UnoType< css::beans::Optional< ::sal_Int8 > >::get();
205 ASSERT_EQ(css::uno::TypeClass_STRUCT, t.getTypeClass());
206 ASSERT_EQ(
207 ::rtl::OUString(
208 RTL_CONSTASCII_USTRINGPARAM("com.sun.star.beans.Optional<byte>")),
209 t.getTypeName());
210 t = ::cppu::UnoType< css::uno::Exception >::get();
211 ASSERT_EQ(css::uno::TypeClass_EXCEPTION, t.getTypeClass());
212 ASSERT_EQ(
213 ::rtl::OUString(
214 RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.Exception")),
215 t.getTypeName());
216 ASSERT_TRUE(::cppu::UnoType< DerivedException1 >::get() == t);
217 t = ::cppu::UnoType< css::uno::RuntimeException >::get();
218 ASSERT_EQ(css::uno::TypeClass_EXCEPTION, t.getTypeClass());
219 ASSERT_EQ(
220 ::rtl::OUString(
221 RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.RuntimeException")),
222 t.getTypeName());
223 #if !(defined __SUNPRO_CC && __SUNPRO_CC <= 0x550) // erroneous ambiguity stated
224 ASSERT_TRUE(::cppu::UnoType< DerivedException2 >::get() == t);
225 #endif
226 t = ::cppu::UnoType< css::uno::XInterface >::get();
227 ASSERT_EQ(css::uno::TypeClass_INTERFACE, t.getTypeClass());
228 ASSERT_EQ(
229 ::rtl::OUString(
230 RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XInterface")),
231 t.getTypeName());
232 ASSERT_TRUE(
233 ::cppu::UnoType< css::uno::Reference< css::uno::XInterface > >::get() ==
234 t);
235 ASSERT_TRUE(::cppu::UnoType< DerivedInterface1 >::get() == t);
236 ASSERT_TRUE(
237 ::cppu::UnoType< css::uno::Reference< DerivedInterface1 > >::get() ==
238 t);
239 t = ::cppu::UnoType< css::uno::XComponentContext >::get();
240 ASSERT_EQ(css::uno::TypeClass_INTERFACE, t.getTypeClass());
241 ASSERT_EQ(
242 ::rtl::OUString(
243 RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XComponentContext")),
244 t.getTypeName());
245 ASSERT_TRUE(
246 ::cppu::UnoType<
247 css::uno::Reference< css::uno::XComponentContext > >::get() == t);
248 #if !(defined __SUNPRO_CC && __SUNPRO_CC <= 0x550) // erroneous ambiguity stated
249 ASSERT_TRUE(::cppu::UnoType< DerivedInterface2 >::get() == t);
250 ASSERT_TRUE(
251 ::cppu::UnoType< css::uno::Reference< DerivedInterface2 > >::get() ==
252 t);
253 #endif
254 }
255
TEST_F(Test,testGetTypeFavourUnsigned)256 TEST_F(Test, testGetTypeFavourUnsigned) {
257 ASSERT_TRUE(typeid(::sal_Unicode) == typeid(::sal_uInt16));
258 ASSERT_TRUE(
259 ::getCppuType(static_cast< ::sal_Unicode * >(0)) ==
260 ::getCppuType(static_cast< ::sal_uInt16 * >(0)));
261 ASSERT_TRUE(
262 ::cppu::getTypeFavourUnsigned(
263 static_cast< ::cppu::UnoVoidType * >(0)) ==
264 ::cppu::UnoType< ::cppu::UnoVoidType >::get());
265 ASSERT_TRUE(
266 ::cppu::getTypeFavourUnsigned(static_cast< bool * >(0)) ==
267 ::cppu::UnoType< bool >::get());
268 ASSERT_TRUE(
269 ::cppu::getTypeFavourUnsigned(static_cast< bool * >(0)) ==
270 ::getCppuType(static_cast< bool * >(0)));
271 ASSERT_TRUE(
272 ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Bool * >(0)) ==
273 ::cppu::UnoType< bool >::get());
274 ASSERT_TRUE(
275 ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Bool * >(0)) ==
276 ::getCppuType(static_cast< ::sal_Bool * >(0)));
277 ASSERT_TRUE(
278 ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Int8 * >(0)) ==
279 ::cppu::UnoType< ::sal_Int8 >::get());
280 ASSERT_TRUE(
281 ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Int8 * >(0)) ==
282 ::getCppuType(static_cast< ::sal_Int8 * >(0)));
283 ASSERT_TRUE(
284 ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Int16 * >(0)) ==
285 ::cppu::UnoType< ::sal_Int16 >::get());
286 ASSERT_TRUE(
287 ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Int16 * >(0)) ==
288 ::getCppuType(static_cast< ::sal_Int16 * >(0)));
289 ASSERT_TRUE(
290 ::cppu::getTypeFavourUnsigned(
291 static_cast< ::cppu::UnoUnsignedShortType * >(0)) ==
292 ::cppu::UnoType< ::cppu::UnoUnsignedShortType >::get());
293 ASSERT_TRUE(
294 ::cppu::getTypeFavourUnsigned(static_cast< ::sal_uInt16 * >(0)) ==
295 ::cppu::UnoType< ::cppu::UnoUnsignedShortType >::get());
296 ASSERT_TRUE(
297 ::cppu::getTypeFavourUnsigned(static_cast< ::sal_uInt16 * >(0)) ==
298 ::getCppuType(static_cast< ::sal_uInt16 * >(0)));
299 ASSERT_TRUE(
300 ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Int32 * >(0)) ==
301 ::cppu::UnoType< ::sal_Int32 >::get());
302 ASSERT_TRUE(
303 ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Int32 * >(0)) ==
304 ::getCppuType(static_cast< ::sal_Int32 * >(0)));
305 ASSERT_TRUE(
306 ::cppu::getTypeFavourUnsigned(static_cast< ::sal_uInt32 * >(0)) ==
307 ::cppu::UnoType< ::sal_uInt32 >::get());
308 ASSERT_TRUE(
309 ::cppu::getTypeFavourUnsigned(static_cast< ::sal_uInt32 * >(0)) ==
310 ::getCppuType(static_cast< ::sal_uInt32 * >(0)));
311 ASSERT_TRUE(
312 ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Int64 * >(0)) ==
313 ::cppu::UnoType< ::sal_Int64 >::get());
314 ASSERT_TRUE(
315 ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Int64 * >(0)) ==
316 ::getCppuType(static_cast< ::sal_Int64 * >(0)));
317 ASSERT_TRUE(
318 ::cppu::getTypeFavourUnsigned(static_cast< ::sal_uInt64 * >(0)) ==
319 ::cppu::UnoType< ::sal_uInt64 >::get());
320 ASSERT_TRUE(
321 ::cppu::getTypeFavourUnsigned(static_cast< ::sal_uInt64 * >(0)) ==
322 ::getCppuType(static_cast< ::sal_uInt64 * >(0)));
323 ASSERT_TRUE(
324 ::cppu::getTypeFavourUnsigned(static_cast< float * >(0)) ==
325 ::cppu::UnoType< float >::get());
326 ASSERT_TRUE(
327 ::cppu::getTypeFavourUnsigned(static_cast< float * >(0)) ==
328 ::getCppuType(static_cast< float * >(0)));
329 ASSERT_TRUE(
330 ::cppu::getTypeFavourUnsigned(static_cast< double * >(0)) ==
331 ::cppu::UnoType< double >::get());
332 ASSERT_TRUE(
333 ::cppu::getTypeFavourUnsigned(static_cast< double * >(0)) ==
334 ::getCppuType(static_cast< double * >(0)));
335 ASSERT_TRUE(
336 ::cppu::getTypeFavourUnsigned(
337 static_cast< ::cppu::UnoCharType * >(0)) ==
338 ::cppu::UnoType< ::cppu::UnoCharType >::get());
339 ASSERT_TRUE(
340 ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Unicode * >(0)) ==
341 ::cppu::UnoType< ::cppu::UnoUnsignedShortType >::get());
342 ASSERT_TRUE(
343 ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Unicode * >(0)) ==
344 ::getCppuType(static_cast< ::sal_Unicode * >(0)));
345 ASSERT_TRUE(
346 ::cppu::getTypeFavourUnsigned(static_cast< ::rtl::OUString * >(0)) ==
347 ::cppu::UnoType< ::rtl::OUString >::get());
348 ASSERT_TRUE(
349 ::cppu::getTypeFavourUnsigned(static_cast< ::rtl::OUString * >(0)) ==
350 ::getCppuType(static_cast< ::rtl::OUString * >(0)));
351 ASSERT_TRUE(
352 ::cppu::getTypeFavourUnsigned(static_cast< css::uno::Type * >(0)) ==
353 ::cppu::UnoType< css::uno::Type >::get());
354 ASSERT_TRUE(
355 ::cppu::getTypeFavourUnsigned(static_cast< css::uno::Type * >(0)) ==
356 ::getCppuType(static_cast< css::uno::Type * >(0)));
357 ASSERT_TRUE(
358 ::cppu::getTypeFavourUnsigned(static_cast< css::uno::Any * >(0)) ==
359 ::cppu::UnoType< css::uno::Any >::get());
360 ASSERT_TRUE(
361 ::cppu::getTypeFavourUnsigned(static_cast< css::uno::Any * >(0)) ==
362 ::getCppuType(static_cast< css::uno::Any * >(0)));
363 ASSERT_TRUE(
364 ::cppu::getTypeFavourUnsigned(
365 static_cast<
366 ::cppu::UnoSequenceType< ::cppu::UnoUnsignedShortType > * >(0)) ==
367 ::cppu::UnoType<
368 ::cppu::UnoSequenceType< ::cppu::UnoUnsignedShortType > >::get());
369 ASSERT_TRUE(
370 ::cppu::getTypeFavourUnsigned(
371 static_cast< css::uno::Sequence< ::sal_uInt16 > * >(0)) ==
372 ::cppu::UnoType<
373 ::cppu::UnoSequenceType< ::cppu::UnoUnsignedShortType > >::get());
374 ASSERT_TRUE(
375 ::cppu::getTypeFavourUnsigned(
376 static_cast< css::uno::Sequence< ::sal_uInt16 > * >(0)) ==
377 ::getCppuType(static_cast< css::uno::Sequence< ::sal_uInt16 > * >(0)));
378 ASSERT_TRUE(
379 ::cppu::getTypeFavourUnsigned(
380 static_cast< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
381 ::cppu::UnoUnsignedShortType > > * >(0)) ==
382 ::cppu::UnoType< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
383 ::cppu::UnoUnsignedShortType > > >::get());
384 ASSERT_TRUE(
385 ::cppu::getTypeFavourUnsigned(
386 static_cast< css::uno::Sequence< css::uno::Sequence<
387 ::sal_uInt16 > > * >(0)) ==
388 ::cppu::UnoType< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
389 ::cppu::UnoUnsignedShortType > > >::get());
390 ASSERT_TRUE(
391 ::cppu::getTypeFavourUnsigned(
392 static_cast< css::uno::Sequence< css::uno::Sequence<
393 ::sal_uInt16 > > * >(0)) ==
394 ::getCppuType(
395 static_cast< css::uno::Sequence< css::uno::Sequence<
396 ::sal_uInt16 > > * >(0)));
397 ASSERT_TRUE(
398 ::cppu::getTypeFavourUnsigned(
399 static_cast< css::uno::Sequence< ::sal_Unicode > * >(0)) ==
400 ::cppu::UnoType<
401 ::cppu::UnoSequenceType< ::cppu::UnoUnsignedShortType > >::get());
402 ASSERT_TRUE(
403 ::cppu::getTypeFavourUnsigned(
404 static_cast< css::uno::Sequence< ::sal_Unicode > * >(0)) ==
405 ::getCppuType(static_cast< css::uno::Sequence< ::sal_Unicode > * >(0)));
406 ASSERT_TRUE(
407 ::cppu::getTypeFavourUnsigned(
408 static_cast< css::uno::Sequence< css::uno::Sequence<
409 ::sal_Unicode > > * >(0)) ==
410 ::cppu::UnoType< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
411 ::cppu::UnoUnsignedShortType > > >::get());
412 ASSERT_TRUE(
413 ::cppu::getTypeFavourUnsigned(
414 static_cast< css::uno::Sequence< css::uno::Sequence<
415 ::sal_Unicode > > * >(0)) ==
416 ::getCppuType(
417 static_cast< css::uno::Sequence< css::uno::Sequence<
418 ::sal_Unicode > > * >(0)));
419 ASSERT_TRUE(
420 ::cppu::getTypeFavourUnsigned(
421 static_cast< css::uno::TypeClass * >(0)) ==
422 ::cppu::UnoType< css::uno::TypeClass >::get());
423 ASSERT_TRUE(
424 ::cppu::getTypeFavourUnsigned(
425 static_cast< css::uno::TypeClass * >(0)) ==
426 ::getCppuType(static_cast< css::uno::TypeClass * >(0)));
427 ASSERT_TRUE(
428 ::cppu::getTypeFavourUnsigned(
429 static_cast< css::lang::EventObject * >(0)) ==
430 ::cppu::UnoType< css::lang::EventObject >::get());
431 ASSERT_TRUE(
432 ::cppu::getTypeFavourUnsigned(
433 static_cast< css::lang::EventObject * >(0)) ==
434 ::getCppuType(static_cast< css::lang::EventObject * >(0)));
435 ASSERT_TRUE(
436 ::cppu::getTypeFavourUnsigned(static_cast< DerivedStruct1 * >(0)) ==
437 ::cppu::UnoType< css::lang::EventObject >::get());
438 ASSERT_TRUE(
439 ::cppu::getTypeFavourUnsigned(static_cast< DerivedStruct1 * >(0)) ==
440 ::getCppuType(static_cast< DerivedStruct1 * >(0)));
441 ASSERT_TRUE(
442 ::cppu::getTypeFavourUnsigned(
443 static_cast< css::beans::PropertyChangeEvent * >(0)) ==
444 ::cppu::UnoType< css::beans::PropertyChangeEvent >::get());
445 ASSERT_TRUE(
446 ::cppu::getTypeFavourUnsigned(
447 static_cast< css::beans::PropertyChangeEvent * >(0)) ==
448 ::getCppuType(static_cast< css::beans::PropertyChangeEvent * >(0)));
449 #if !(defined __SUNPRO_CC && __SUNPRO_CC <= 0x550) // erroneous ambiguity stated
450 ASSERT_TRUE(
451 ::cppu::getTypeFavourUnsigned(static_cast< DerivedStruct2 * >(0)) ==
452 ::cppu::UnoType< css::beans::PropertyChangeEvent >::get());
453 ASSERT_TRUE(
454 ::cppu::getTypeFavourUnsigned(static_cast< DerivedStruct2 * >(0)) ==
455 ::getCppuType(static_cast< DerivedStruct2 * >(0)));
456 #endif
457 ASSERT_TRUE(
458 ::cppu::getTypeFavourUnsigned(
459 static_cast< css::beans::Optional< ::sal_Int8 > * >(0)) ==
460 ::cppu::UnoType< css::beans::Optional< ::sal_Int8 > >::get());
461 ASSERT_TRUE(
462 ::cppu::getTypeFavourUnsigned(
463 static_cast< css::beans::Optional< ::sal_Int8 > * >(0)) ==
464 ::getCppuType(static_cast< css::beans::Optional< ::sal_Int8 > * >(0)));
465 ASSERT_TRUE(
466 ::cppu::getTypeFavourUnsigned(
467 static_cast< css::uno::Exception * >(0)) ==
468 ::cppu::UnoType< css::uno::Exception >::get());
469 ASSERT_TRUE(
470 ::cppu::getTypeFavourUnsigned(
471 static_cast< css::uno::Exception * >(0)) ==
472 ::getCppuType(static_cast< css::uno::Exception * >(0)));
473 ASSERT_TRUE(
474 ::cppu::getTypeFavourUnsigned(static_cast< DerivedException1 * >(0)) ==
475 ::cppu::UnoType< css::uno::Exception >::get());
476 ASSERT_TRUE(
477 ::cppu::getTypeFavourUnsigned(static_cast< DerivedException1 * >(0)) ==
478 ::getCppuType(static_cast< DerivedException1 * >(0)));
479 ASSERT_TRUE(
480 ::cppu::getTypeFavourUnsigned(
481 static_cast< css::uno::RuntimeException * >(0)) ==
482 ::cppu::UnoType< css::uno::RuntimeException >::get());
483 ASSERT_TRUE(
484 ::cppu::getTypeFavourUnsigned(
485 static_cast< css::uno::RuntimeException * >(0)) ==
486 ::getCppuType(static_cast< css::uno::RuntimeException * >(0)));
487 #if !(defined __SUNPRO_CC && __SUNPRO_CC <= 0x550) // erroneous ambiguity stated
488 ASSERT_TRUE(
489 ::cppu::getTypeFavourUnsigned(static_cast< DerivedException2 * >(0)) ==
490 ::cppu::UnoType< css::uno::RuntimeException >::get());
491 ASSERT_TRUE(
492 ::cppu::getTypeFavourUnsigned(static_cast< DerivedException2 * >(0)) ==
493 ::getCppuType(static_cast< DerivedException2 * >(0)));
494 #endif
495 ASSERT_TRUE(
496 ::cppu::getTypeFavourUnsigned(
497 static_cast< css::uno::XInterface * >(0)) ==
498 ::cppu::UnoType< css::uno::XInterface >::get());
499 ASSERT_TRUE(
500 ::cppu::getTypeFavourUnsigned(
501 static_cast< css::uno::Reference< css::uno::XInterface > * >(0)) ==
502 ::cppu::UnoType< css::uno::XInterface >::get());
503 ASSERT_TRUE(
504 ::cppu::getTypeFavourUnsigned(
505 static_cast< css::uno::Reference< css::uno::XInterface > * >(0)) ==
506 ::getCppuType(
507 static_cast< css::uno::Reference< css::uno::XInterface > * >(0)));
508 ASSERT_TRUE(
509 ::cppu::getTypeFavourUnsigned(static_cast< DerivedInterface1 * >(0)) ==
510 ::cppu::UnoType< css::uno::XInterface >::get());
511 ASSERT_TRUE(
512 ::cppu::getTypeFavourUnsigned(
513 static_cast< css::uno::Reference< DerivedInterface1 > * >(0)) ==
514 ::cppu::UnoType< css::uno::XInterface >::get());
515 ASSERT_TRUE(
516 ::cppu::getTypeFavourUnsigned(
517 static_cast< css::uno::XComponentContext * >(0)) ==
518 ::cppu::UnoType< css::uno::XComponentContext >::get());
519 ASSERT_TRUE(
520 ::cppu::getTypeFavourUnsigned(
521 static_cast<
522 css::uno::Reference< css::uno::XComponentContext > * >(0)) ==
523 ::cppu::UnoType< css::uno::XComponentContext >::get());
524 ASSERT_TRUE(
525 ::cppu::getTypeFavourUnsigned(
526 static_cast<
527 css::uno::Reference< css::uno::XComponentContext > * >(0)) ==
528 ::getCppuType(
529 static_cast<
530 css::uno::Reference< css::uno::XComponentContext > * >(0)));
531 #if !(defined __SUNPRO_CC && __SUNPRO_CC <= 0x550) // erroneous ambiguity stated
532 ASSERT_TRUE(
533 ::cppu::getTypeFavourUnsigned(static_cast< DerivedInterface2 * >(0)) ==
534 ::cppu::UnoType< css::uno::XComponentContext >::get());
535 ASSERT_TRUE(
536 ::cppu::getTypeFavourUnsigned(
537 static_cast< css::uno::Reference< DerivedInterface2 > * >(0)) ==
538 ::cppu::UnoType< css::uno::XComponentContext >::get());
539 #endif
540 }
541
TEST_F(Test,testGetTypeFavourChar)542 TEST_F(Test, testGetTypeFavourChar) {
543 ASSERT_TRUE(typeid(::sal_Unicode) == typeid(::sal_uInt16));
544 ASSERT_TRUE(
545 ::getCppuType< ::sal_Unicode >() == ::getCppuType< ::sal_uInt16 >());
546 ASSERT_TRUE(
547 ::cppu::getTypeFavourChar(static_cast< ::cppu::UnoVoidType * >(0)) ==
548 ::cppu::UnoType< ::cppu::UnoVoidType >::get());
549 ASSERT_TRUE(
550 ::cppu::getTypeFavourChar(static_cast< bool * >(0)) ==
551 ::cppu::UnoType< bool >::get());
552 ASSERT_TRUE(
553 ::cppu::getTypeFavourChar(static_cast< bool * >(0)) ==
554 ::getCppuType< bool >());
555 ASSERT_TRUE(
556 ::cppu::getTypeFavourChar(static_cast< ::sal_Bool * >(0)) ==
557 ::cppu::UnoType< bool >::get());
558 ASSERT_TRUE(
559 ::cppu::getTypeFavourChar(static_cast< ::sal_Bool * >(0)) ==
560 ::getCppuType< ::sal_Bool >());
561 ASSERT_TRUE(
562 ::cppu::getTypeFavourChar(static_cast< ::sal_Int8 * >(0)) ==
563 ::cppu::UnoType< ::sal_Int8 >::get());
564 ASSERT_TRUE(
565 ::cppu::getTypeFavourChar(static_cast< ::sal_Int8 * >(0)) ==
566 ::getCppuType< ::sal_Int8 >());
567 ASSERT_TRUE(
568 ::cppu::getTypeFavourChar(static_cast< ::sal_Int16 * >(0)) ==
569 ::cppu::UnoType< ::sal_Int16 >::get());
570 ASSERT_TRUE(
571 ::cppu::getTypeFavourChar(static_cast< ::sal_Int16 * >(0)) ==
572 ::getCppuType< ::sal_Int16 >());
573 ASSERT_TRUE(
574 ::cppu::getTypeFavourChar(
575 static_cast< ::cppu::UnoUnsignedShortType * >(0)) ==
576 ::cppu::UnoType< ::cppu::UnoUnsignedShortType >::get());
577 ASSERT_TRUE(
578 ::cppu::getTypeFavourChar(static_cast< ::sal_uInt16 * >(0)) ==
579 ::cppu::UnoType< ::cppu::UnoCharType >::get());
580 ASSERT_TRUE(
581 ::cppu::getTypeFavourChar(static_cast< ::sal_Int32 * >(0)) ==
582 ::cppu::UnoType< ::sal_Int32 >::get());
583 ASSERT_TRUE(
584 ::cppu::getTypeFavourChar(static_cast< ::sal_Int32 * >(0)) ==
585 ::getCppuType< ::sal_Int32 >());
586 ASSERT_TRUE(
587 ::cppu::getTypeFavourChar(static_cast< ::sal_uInt32 * >(0)) ==
588 ::cppu::UnoType< ::sal_uInt32 >::get());
589 ASSERT_TRUE(
590 ::cppu::getTypeFavourChar(static_cast< ::sal_uInt32 * >(0)) ==
591 ::getCppuType< ::sal_uInt32 >());
592 ASSERT_TRUE(
593 ::cppu::getTypeFavourChar(static_cast< ::sal_Int64 * >(0)) ==
594 ::cppu::UnoType< ::sal_Int64 >::get());
595 ASSERT_TRUE(
596 ::cppu::getTypeFavourChar(static_cast< ::sal_Int64 * >(0)) ==
597 ::getCppuType< ::sal_Int64 >());
598 ASSERT_TRUE(
599 ::cppu::getTypeFavourChar(static_cast< ::sal_uInt64 * >(0)) ==
600 ::cppu::UnoType< ::sal_uInt64 >::get());
601 ASSERT_TRUE(
602 ::cppu::getTypeFavourChar(static_cast< ::sal_uInt64 * >(0)) ==
603 ::getCppuType< ::sal_uInt64 >());
604 ASSERT_TRUE(
605 ::cppu::getTypeFavourChar(static_cast< float * >(0)) ==
606 ::cppu::UnoType< float >::get());
607 ASSERT_TRUE(
608 ::cppu::getTypeFavourChar(static_cast< float * >(0)) ==
609 ::getCppuType< float >());
610 ASSERT_TRUE(
611 ::cppu::getTypeFavourChar(static_cast< double * >(0)) ==
612 ::cppu::UnoType< double >::get());
613 ASSERT_TRUE(
614 ::cppu::getTypeFavourChar(static_cast< double * >(0)) ==
615 ::getCppuType< double >());
616 ASSERT_TRUE(
617 ::cppu::getTypeFavourChar(static_cast< ::cppu::UnoCharType * >(0)) ==
618 ::cppu::UnoType< ::cppu::UnoCharType >::get());
619 ASSERT_TRUE(
620 ::cppu::getTypeFavourChar(static_cast< ::sal_Unicode * >(0)) ==
621 ::cppu::UnoType< ::cppu::UnoCharType >::get());
622 ASSERT_TRUE(
623 ::cppu::getTypeFavourChar(static_cast< ::sal_Unicode * >(0)) ==
624 ::getCppuType< ::sal_Unicode >());
625 ASSERT_TRUE(
626 ::cppu::getTypeFavourChar(static_cast< ::rtl::OUString * >(0)) ==
627 ::cppu::UnoType< ::rtl::OUString >::get());
628 ASSERT_TRUE(
629 ::cppu::getTypeFavourChar(static_cast< ::rtl::OUString * >(0)) ==
630 ::getCppuType< ::rtl::OUString >());
631 ASSERT_TRUE(
632 ::cppu::getTypeFavourChar(static_cast< css::uno::Type * >(0)) ==
633 ::cppu::UnoType< css::uno::Type >::get());
634 ASSERT_TRUE(
635 ::cppu::getTypeFavourChar(static_cast< css::uno::Type * >(0)) ==
636 ::getCppuType< css::uno::Type >());
637 ASSERT_TRUE(
638 ::cppu::getTypeFavourChar(static_cast< css::uno::Any * >(0)) ==
639 ::cppu::UnoType< css::uno::Any >::get());
640 ASSERT_TRUE(
641 ::cppu::getTypeFavourChar(static_cast< css::uno::Any * >(0)) ==
642 ::getCppuType< css::uno::Any >());
643 ASSERT_TRUE(
644 ::cppu::getTypeFavourChar(
645 static_cast<
646 ::cppu::UnoSequenceType< ::cppu::UnoUnsignedShortType > * >(0)) ==
647 ::cppu::UnoType<
648 ::cppu::UnoSequenceType< ::cppu::UnoUnsignedShortType > >::get());
649 ASSERT_TRUE(
650 ::cppu::getTypeFavourChar(
651 static_cast< css::uno::Sequence< ::sal_uInt16 > * >(0)) ==
652 ::cppu::UnoType<
653 ::cppu::UnoSequenceType< ::cppu::UnoCharType > >::get());
654 ASSERT_TRUE(
655 ::cppu::getTypeFavourChar(
656 static_cast< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
657 ::cppu::UnoUnsignedShortType > > * >(0)) ==
658 ::cppu::UnoType< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
659 ::cppu::UnoUnsignedShortType > > >::get());
660 ASSERT_TRUE(
661 ::cppu::getTypeFavourChar(
662 static_cast< css::uno::Sequence< css::uno::Sequence<
663 ::sal_uInt16 > > * >(0)) ==
664 ::cppu::UnoType< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
665 ::cppu::UnoCharType > > >::get());
666 ASSERT_TRUE(
667 ::cppu::getTypeFavourChar(
668 static_cast< css::uno::Sequence< ::sal_Unicode > * >(0)) ==
669 ::cppu::UnoType<
670 ::cppu::UnoSequenceType< ::cppu::UnoCharType > >::get());
671 ASSERT_TRUE(
672 ::cppu::getTypeFavourChar(
673 static_cast< css::uno::Sequence< css::uno::Sequence<
674 ::sal_Unicode > > * >(0)) ==
675 ::cppu::UnoType< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
676 ::cppu::UnoCharType > > >::get());
677 ASSERT_TRUE(
678 ::cppu::getTypeFavourChar(static_cast< css::uno::TypeClass * >(0)) ==
679 ::cppu::UnoType< css::uno::TypeClass >::get());
680 ASSERT_TRUE(
681 ::cppu::getTypeFavourChar(static_cast< css::uno::TypeClass * >(0)) ==
682 ::getCppuType< css::uno::TypeClass >());
683 ASSERT_TRUE(
684 ::cppu::getTypeFavourChar(
685 static_cast< css::lang::EventObject * >(0)) ==
686 ::cppu::UnoType< css::lang::EventObject >::get());
687 ASSERT_TRUE(
688 ::cppu::getTypeFavourChar(
689 static_cast< css::lang::EventObject * >(0)) ==
690 ::getCppuType< css::lang::EventObject >());
691 ASSERT_TRUE(
692 ::cppu::getTypeFavourChar(static_cast< DerivedStruct1 * >(0)) ==
693 ::cppu::UnoType< css::lang::EventObject >::get());
694 ASSERT_TRUE(
695 ::cppu::getTypeFavourChar(static_cast< DerivedStruct1 * >(0)) ==
696 ::getCppuType< DerivedStruct1 >());
697 ASSERT_TRUE(
698 ::cppu::getTypeFavourChar(
699 static_cast< css::beans::PropertyChangeEvent * >(0)) ==
700 ::cppu::UnoType< css::beans::PropertyChangeEvent >::get());
701 ASSERT_TRUE(
702 ::cppu::getTypeFavourChar(
703 static_cast< css::beans::PropertyChangeEvent * >(0)) ==
704 ::getCppuType< css::beans::PropertyChangeEvent >());
705 #if !(defined __SUNPRO_CC && __SUNPRO_CC <= 0x550) // erroneous ambiguity stated
706 ASSERT_TRUE(
707 ::cppu::getTypeFavourChar(static_cast< DerivedStruct2 * >(0)) ==
708 ::cppu::UnoType< css::beans::PropertyChangeEvent >::get());
709 ASSERT_TRUE(
710 ::cppu::getTypeFavourChar(static_cast< DerivedStruct2 * >(0)) ==
711 ::getCppuType< DerivedStruct2 >());
712 #endif
713 ASSERT_TRUE(
714 ::cppu::getTypeFavourChar(
715 static_cast< css::beans::Optional< ::sal_Int8 > * >(0)) ==
716 ::cppu::UnoType< css::beans::Optional< ::sal_Int8 > >::get());
717 ASSERT_TRUE(
718 ::cppu::getTypeFavourChar(
719 static_cast< css::beans::Optional< ::sal_Int8 > * >(0)) ==
720 ::getCppuType< css::beans::Optional< ::sal_Int8 > >());
721 ASSERT_TRUE(
722 ::cppu::getTypeFavourChar(static_cast< css::uno::Exception * >(0)) ==
723 ::cppu::UnoType< css::uno::Exception >::get());
724 ASSERT_TRUE(
725 ::cppu::getTypeFavourChar(static_cast< css::uno::Exception * >(0)) ==
726 ::getCppuType< css::uno::Exception >());
727 ASSERT_TRUE(
728 ::cppu::getTypeFavourChar(static_cast< DerivedException1 * >(0)) ==
729 ::cppu::UnoType< css::uno::Exception >::get());
730 ASSERT_TRUE(
731 ::cppu::getTypeFavourChar(static_cast< DerivedException1 * >(0)) ==
732 ::getCppuType< DerivedException1 >());
733 ASSERT_TRUE(
734 ::cppu::getTypeFavourChar(
735 static_cast< css::uno::RuntimeException * >(0)) ==
736 ::cppu::UnoType< css::uno::RuntimeException >::get());
737 ASSERT_TRUE(
738 ::cppu::getTypeFavourChar(
739 static_cast< css::uno::RuntimeException * >(0)) ==
740 ::getCppuType< css::uno::RuntimeException >());
741 #if !(defined __SUNPRO_CC && __SUNPRO_CC <= 0x550) // erroneous ambiguity stated
742 ASSERT_TRUE(
743 ::cppu::getTypeFavourChar(static_cast< DerivedException2 * >(0)) ==
744 ::cppu::UnoType< css::uno::RuntimeException >::get());
745 ASSERT_TRUE(
746 ::cppu::getTypeFavourChar(static_cast< DerivedException2 * >(0)) ==
747 ::getCppuType< DerivedException2 >());
748 #endif
749 ASSERT_TRUE(
750 ::cppu::getTypeFavourChar(
751 static_cast< css::uno::XInterface * >(0)) ==
752 ::cppu::UnoType< css::uno::XInterface >::get());
753 ASSERT_TRUE(
754 ::cppu::getTypeFavourChar(
755 static_cast< css::uno::Reference< css::uno::XInterface > * >(0)) ==
756 ::cppu::UnoType< css::uno::XInterface >::get());
757 ASSERT_TRUE(
758 ::cppu::getTypeFavourChar(
759 static_cast< css::uno::Reference< css::uno::XInterface > * >(0)) ==
760 ::getCppuType< css::uno::Reference< css::uno::XInterface > >());
761 ASSERT_TRUE(
762 ::cppu::getTypeFavourChar(static_cast< DerivedInterface1 * >(0)) ==
763 ::cppu::UnoType< css::uno::XInterface >::get());
764 ASSERT_TRUE(
765 ::cppu::getTypeFavourChar(
766 static_cast< css::uno::Reference< DerivedInterface1 > * >(0)) ==
767 ::cppu::UnoType< css::uno::XInterface >::get());
768 ASSERT_TRUE(
769 ::cppu::getTypeFavourChar(
770 static_cast< css::uno::XComponentContext * >(0)) ==
771 ::cppu::UnoType< css::uno::XComponentContext >::get());
772 ASSERT_TRUE(
773 ::cppu::getTypeFavourChar(
774 static_cast<
775 css::uno::Reference< css::uno::XComponentContext > * >(0)) ==
776 ::cppu::UnoType< css::uno::XComponentContext >::get());
777 ASSERT_TRUE(
778 ::cppu::getTypeFavourChar(
779 static_cast<
780 css::uno::Reference< css::uno::XComponentContext > * >(0)) ==
781 ::getCppuType< css::uno::Reference< css::uno::XComponentContext > >());
782 #if !(defined __SUNPRO_CC && __SUNPRO_CC <= 0x550) // erroneous ambiguity stated
783 ASSERT_TRUE(
784 ::cppu::getTypeFavourChar(static_cast< DerivedInterface2 * >(0)) ==
785 ::cppu::UnoType< css::uno::XComponentContext >::get());
786 ASSERT_TRUE(
787 ::cppu::getTypeFavourChar(
788 static_cast< css::uno::Reference< DerivedInterface2 > * >(0)) ==
789 ::cppu::UnoType< css::uno::XComponentContext >::get());
790 #endif
791 }
792
793
794 }
795