1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * This file is part of OpenOffice.org.
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org. If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
26 ************************************************************************/
28 // MARKER(update_precomp.py): autogen include statement, do not remove
29 #include "precompiled_registry.hxx"
35 #include "registry/registry.hxx"
36 #include "registry/reflread.hxx"
37 #include "registry/reflwrit.hxx"
38 #include "regdiagnose.h"
39 #include <rtl/alloc.h>
40 #include <rtl/ustring.hxx>
46 sal_Int32 lValue1
= 123456789;
47 sal_Int32 lValue2
= 54321;
48 sal_Int32 lValue3
= 111333111;
49 sal_Int32 lValue4
= 333111333;
50 sal_Char
* sValue
= (sal_Char
*)"string Value";
51 OUString wValue
= rtl::OUString::createFromAscii( "unicode Value" );
54 void test_generateMerge1()
56 Registry
*myRegistry
= new Registry();
58 RegistryKey rootKey
, key1
, key2
, key3
, key4
, key5
, key6
, key7
, key8
, key9
;
60 REG_ENSURE(!myRegistry
->create(OUString::createFromAscii("merge1.rdb")), "testGenerateMerge1 error 1");
61 REG_ENSURE(!myRegistry
->openRootKey(rootKey
), "testGenerateMerge1 error 2");
63 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("MergeKey1"), key1
), "testGenerateMerge1 error 3");
64 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey1/MK1SubKey1"), key2
), "testGenerateMerge1 error 4");
65 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey1/MK1SubKey1/KeyWithLongValue"), key3
), "testGenerateMerge1 error 5");
66 REG_ENSURE(!key3
.setValue(OUString(), RG_VALUETYPE_LONG
, &lValue1
, sizeof(sal_Int32
)), "testGenerateMerge1 error 5a");
67 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey1/MK1SubKey2"), key4
), "testGenerateMerge1 error 6");
68 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey1/MK1SubKey2/KeyWithStringValue"), key5
), "testGenerateMerge1 error 7");
69 REG_ENSURE(!key5
.setValue(OUString(), RG_VALUETYPE_STRING
, sValue
, strlen(sValue
)+1), "testGenerateMerge1 error 7a");
70 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey1/MK1SubKey3"), key6
), "testGenerateMerge1 error 8");
71 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey1/MK1SubKey3/KeyWithUnicodeValue"), key7
), "testGenerateMerge1 error 9");
72 REG_ENSURE(!key7
.setValue(OUString(), RG_VALUETYPE_UNICODE
, (void*)wValue
.getStr(), ((wValue
.getLength()+1)*sizeof(sal_Unicode
))), "testGenerateMerge1 error 9a");
73 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey1/MK1SubKey4"), key8
), "testGenerateMerge1 error 10");
74 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey1/MK1SubKey4/KeyWithBinaryValue"), key9
), "testGenerateMerge1 error 11");
75 REG_ENSURE(!key9
.setValue(OUString(), RG_VALUETYPE_BINARY
, (void*)"abcdefghijklmnopqrstuvwxyz", 27), "testGenerateMerge1 error 11a");
78 REG_ENSURE(!key1
.closeKey() &&
86 !key9
.closeKey(), "testGenerateMerge1 error 12");
88 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("MergeKey1u2"), key1
), "testGenerateMerge1 error 13");
89 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey1u2/MK1SubKey11"), key2
), "testGenerateMerge1 error 14");
90 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey1u2/MK1SubKey11/KeyWithLongValue"), key3
), "testGenerateMerge1 error 15");
91 REG_ENSURE(!key3
.setValue(OUString(), RG_VALUETYPE_LONG
, &lValue2
, sizeof(sal_Int32
)), "testGenerateMerge1 error 15a");
92 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey1u2/MK1SubKey12"), key4
), "testGenerateMerge1 error 16");
93 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey1u2/MK1SubKey12/KeyWithStringValue"), key5
), "testGenerateMerge1 error 17");
94 REG_ENSURE(!key5
.setValue(OUString(), RG_VALUETYPE_STRING
, sValue
, strlen(sValue
)+1), "testGenerateMerge1 error 17a");
95 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey1u2/MK1SubKey13"), key6
), "testGenerateMerge1 error 18");
96 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey1u2/MK1SubKey13/KeyWithUnicodeValue"), key7
), "testGenerateMerge1 error 19");
97 REG_ENSURE(!key7
.setValue(OUString(), RG_VALUETYPE_UNICODE
, (void*)wValue
.getStr(), ((wValue
.getLength()+1)*sizeof(sal_Unicode
))), "testGenerateMerge1 error 19a");
98 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey1u2/MK12SubKey1u2"), key8
), "testGenerateMerge1 error 20");
99 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey1u2/MK12SubKey1u2/KeyWithLongValue"), key9
), "testGenerateMerge1 error 21");
100 REG_ENSURE(!key9
.setValue(OUString(), RG_VALUETYPE_LONG
, &lValue3
, sizeof(sal_Int32
)), "testGenerateMerge1 error 21a");
102 REG_ENSURE(!rootKey
.closeKey() &&
111 !key9
.closeKey(), "testGenerateMerge1 error 22");
116 cout
<< "test_generateMerge1() Ok!\n";
120 void test_generateMerge2()
122 Registry
*myRegistry
= new Registry();
124 RegistryKey rootKey
, key1
, key2
, key3
, key4
, key5
, key6
, key7
, key8
, key9
;
126 REG_ENSURE(!myRegistry
->create(OUString::createFromAscii("merge2.rdb")), "testGenerateMerge2 error 1");
127 REG_ENSURE(!myRegistry
->openRootKey(rootKey
), "testGenerateMerge2 error 2");
129 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("MergeKey2"), key1
), "testGenerateMerge2 error 3");
130 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey2/MK2SubKey1"), key2
), "testGenerateMerge2 error 4");
131 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey2/MK2SubKey1/KeyWithBinaryValue"), key3
), "testGenerateMerge2 error 5");
132 REG_ENSURE(!key3
.setValue(OUString(), RG_VALUETYPE_BINARY
, (void*)"1234567890", 11), "testGenerateMerge1 error 5a");
133 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey2/MK2SubKey2"), key4
), "testGenerateMerge2 error 6");
134 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey2/MK2SubKey2/KeyWithUnicodeValue"), key5
), "testGenerateMerge2 error 7");
135 REG_ENSURE(!key5
.setValue(OUString(), RG_VALUETYPE_UNICODE
, (void*)wValue
.getStr(), ((wValue
.getLength()+1)*sizeof(sal_Unicode
))), "testGenerateMerge1 error 7a");
136 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey2/MK2SubKey3"), key6
), "testGenerateMerge2 error 8");
137 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey2/MK2SubKey3/KeyWithStringValue"), key7
), "testGenerateMerge2 error 9");
138 REG_ENSURE(!key7
.setValue(OUString(), RG_VALUETYPE_STRING
, sValue
, strlen(sValue
)+1), "testGenerateMerge1 error 9a");
139 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey2/MK2SubKey4"), key8
), "testGenerateMerge2 error 10");
140 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey2/MK2SubKey4/KeyWithLongValue"), key9
), "testGenerateMerge2 error 11");
141 REG_ENSURE(!key9
.setValue(OUString(), RG_VALUETYPE_LONG
, &lValue1
, sizeof(sal_Int32
)), "testGenerateMerge1 error 11a");
143 REG_ENSURE(!key1
.closeKey() &&
151 !key9
.closeKey(), "testGenerateMerge2 error 12");
153 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("MergeKey1u2"), key1
), "testGenerateMerge2 error 13");
154 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey1u2/MK2SubKey21"), key2
), "testGenerateMerge2 error 14");
155 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey1u2/MK2SubKey21/KeyWithBinaryValue"), key3
), "testGenerateMerge2 error 15");
156 REG_ENSURE(!key3
.setValue(OUString(), RG_VALUETYPE_BINARY
, (void*)"a1b2c3d4e5f6g7h8i9", 19), "testGenerateMerge1 error 15a");
157 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey1u2/MK2SubKey22"), key4
), "testGenerateMerge2 error 16");
158 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey1u2/MK2SubKey22/KeyWithLongValue"), key5
), "testGenerateMerge2 error 17");
159 REG_ENSURE(!key5
.setValue(OUString(), RG_VALUETYPE_LONG
, &lValue2
, sizeof(sal_Int32
)), "testGenerateMerge1 error 17a");
160 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey1u2/MK2SubKey23"), key6
), "testGenerateMerge2 error 18");
161 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey1u2/MK2SubKey23/KeyWithStringValue"), key7
), "testGenerateMerge2 error 19");
162 REG_ENSURE(!key7
.setValue(OUString(), RG_VALUETYPE_STRING
, sValue
, strlen(sValue
)+1), "testGenerateMerge1 error 19a");
163 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey1u2/MK12SubKey1u2"), key8
), "testGenerateMerge2 error 20");
164 REG_ENSURE(!rootKey
.createKey(OUString::createFromAscii("/MergeKey1u2/MK12SubKey1u2/KeyWithLongValue"), key9
), "testGenerateMerge2 error 21");
165 REG_ENSURE(!key9
.setValue(OUString(), RG_VALUETYPE_LONG
, &lValue4
, sizeof(sal_Int32
)), "testGenerateMerge1 error 21a");
167 REG_ENSURE(!rootKey
.closeKey() &&
176 !key9
.closeKey(), "testGenerateMerge2 error 22");
181 cout
<< "test_generateMerge2() Ok!\n";
187 Registry
*myRegistry
= new Registry();
189 RegistryKey rootKey
, key1
, mkey1
, key2
, mkey2
, key1u2
, mkey1u2
;
191 REG_ENSURE(!myRegistry
->create(OUString::createFromAscii("mergetest.rdb")), "testMerge error 1");
192 REG_ENSURE(myRegistry
->getName().equals(OUString::createFromAscii("mergetest.rdb")), "testMerge error 1.a)");
193 REG_ENSURE(!myRegistry
->openRootKey(rootKey
), "testMerge error 2");
194 REG_ENSURE(!myRegistry
->loadKey(rootKey
, OUString::createFromAscii("/stardiv/IchbineinMergeKey"),
195 OUString::createFromAscii("merge1.rdb")), "testMerge error 3");
196 REG_ENSURE(!myRegistry
->mergeKey(rootKey
, OUString::createFromAscii("/stardiv/IchbineinMergeKey"),
197 OUString::createFromAscii("merge2.rdb")), "testMerge error 4");
199 ///////////////////////////////////////////////////////////////////////////
201 REG_ENSURE(!rootKey
.openKey(OUString::createFromAscii("/stardiv/IchbineinMergeKey"), key1
), "testMerge error 5");
203 REG_ENSURE(!key1
.openKey(OUString::createFromAscii("MergeKey1"), mkey1
), "testMerge error 6");
204 REG_ENSURE(!mkey1
.closeKey(), "testMerge error 7");
206 REG_ENSURE(!key1
.openKey(OUString::createFromAscii("/MergeKey1/MK1SubKey1"), mkey1
), "testMerge error 8");
207 REG_ENSURE(!mkey1
.closeKey(), "testMerge error 9");
208 REG_ENSURE(!key1
.openKey(OUString::createFromAscii("/MergeKey1/MK1SubKey1/KeyWithLongValue"), mkey1
), "testMerge error 10");
209 REG_ENSURE(!mkey1
.closeKey(), "testMerge error 11");
211 REG_ENSURE(!key1
.openKey(OUString::createFromAscii("/MergeKey1/MK1SubKey2"), mkey1
), "testMerge error 12");
212 REG_ENSURE(!mkey1
.closeKey(), "testMerge error 13");
213 REG_ENSURE(!key1
.openKey(OUString::createFromAscii("/MergeKey1/MK1SubKey2/KeyWithStringValue"), mkey1
), "testMerge error 14");
214 REG_ENSURE(!mkey1
.closeKey(), "testMerge error 15");
216 REG_ENSURE(!key1
.openKey(OUString::createFromAscii("/MergeKey1/MK1SubKey3"), mkey1
), "testMerge error 16");
217 REG_ENSURE(!mkey1
.closeKey(), "testMerge error 17");
218 REG_ENSURE(!key1
.openKey(OUString::createFromAscii("/MergeKey1/MK1SubKey3/KeyWithUnicodeValue"), mkey1
), "testMerge error 18");
219 REG_ENSURE(!mkey1
.closeKey(), "testMerge error 19");
221 REG_ENSURE(!key1
.openKey(OUString::createFromAscii("/MergeKey1/MK1SubKey4"), mkey1
), "testMerge error 20");
222 REG_ENSURE(!mkey1
.closeKey(), "testMerge error 21");
223 REG_ENSURE(!key1
.openKey(OUString::createFromAscii("/MergeKey1/MK1SubKey4/KeyWithBinaryValue"), mkey1
), "testMerge error 22");
224 REG_ENSURE(!mkey1
.closeKey(), "testMerge error 23");
226 REG_ENSURE(!key1
.closeKey(), "testMerge error 24");
228 ///////////////////////////////////////////////////////////////////////////
230 REG_ENSURE(!rootKey
.openKey(OUString::createFromAscii("/stardiv/IchbineinMergeKey"), key2
), "testMerge error 25");
232 REG_ENSURE(!key2
.openKey(OUString::createFromAscii("MergeKey2"), mkey2
), "testMerge error 26");
233 REG_ENSURE(!mkey2
.closeKey(), "testMerge error 27");
235 REG_ENSURE(!key2
.openKey(OUString::createFromAscii("/MergeKey2/MK2SubKey1"), mkey2
), "testMerge error 28");
236 REG_ENSURE(!mkey2
.closeKey(), "testMerge error 29");
237 REG_ENSURE(!key2
.openKey(OUString::createFromAscii("/MergeKey2/MK2SubKey1/KeyWithBinaryValue"), mkey2
), "testMerge error 30");
238 REG_ENSURE(!mkey2
.closeKey(), "testMerge error 31");
240 REG_ENSURE(!key2
.openKey(OUString::createFromAscii("/MergeKey2/MK2SubKey2"), mkey2
), "testMerge error 31");
241 REG_ENSURE(!mkey2
.closeKey(), "testMerge error 33");
242 REG_ENSURE(!key2
.openKey(OUString::createFromAscii("/MergeKey2/MK2SubKey2/KeyWithUnicodeValue"), mkey2
), "testMerge error 34");
243 REG_ENSURE(!mkey2
.closeKey(), "testMerge error 35");
245 REG_ENSURE(!key2
.openKey(OUString::createFromAscii("/MergeKey2/MK2SubKey3"), mkey2
), "testMerge error 36");
246 REG_ENSURE(!mkey2
.closeKey(), "testMerge error 37");
247 REG_ENSURE(!key2
.openKey(OUString::createFromAscii("/MergeKey2/MK2SubKey3/KeyWithStringValue"), mkey2
), "testMerge error 38");
248 REG_ENSURE(!mkey2
.closeKey(), "testMerge error 39");
250 REG_ENSURE(!key2
.openKey(OUString::createFromAscii("/MergeKey2/MK2SubKey4"), mkey2
), "testMerge error 40");
251 REG_ENSURE(!mkey2
.closeKey(), "testMerge error 41");
252 REG_ENSURE(!key2
.openKey(OUString::createFromAscii("/MergeKey2/MK2SubKey4/KeyWithLongValue"), mkey2
), "testMerge error 42");
253 REG_ENSURE(!mkey2
.closeKey(), "testMerge error 43");
255 REG_ENSURE(!key2
.closeKey(), "testMerge error 44");
257 ///////////////////////////////////////////////////////////////////////////
259 REG_ENSURE(!rootKey
.openKey(OUString::createFromAscii("/stardiv/IchbineinMergeKey"), key1u2
), "testMerge error 40");
261 REG_ENSURE(!key1u2
.openKey(OUString::createFromAscii("MergeKey1u2"), mkey1u2
), "testMerge error 41");
262 REG_ENSURE(!mkey1u2
.closeKey(), "testMerge error 42");
264 REG_ENSURE(!key1u2
.openKey(OUString::createFromAscii("/MergeKey1u2/MK1SubKey11"), mkey1u2
), "testMerge error 43");
265 REG_ENSURE(!mkey1u2
.closeKey(), "testMerge error 44");
266 REG_ENSURE(!key1u2
.openKey(OUString::createFromAscii("/MergeKey1u2/MK1SubKey11/KeyWithLongValue"), mkey1u2
), "testMerge error 45");
267 REG_ENSURE(!mkey1u2
.closeKey(), "testMerge error 46");
269 REG_ENSURE(!key1u2
.openKey(OUString::createFromAscii("/MergeKey1u2/MK1SubKey12"), mkey1u2
), "testMerge error 47");
270 REG_ENSURE(!mkey1u2
.closeKey(), "testMerge error 48");
271 REG_ENSURE(!key1u2
.openKey(OUString::createFromAscii("/MergeKey1u2/MK1SubKey12/KeyWithStringValue"), mkey1u2
), "testMerge error 49");
272 REG_ENSURE(!mkey1u2
.closeKey(), "testMerge error 50");
274 REG_ENSURE(!key1u2
.openKey(OUString::createFromAscii("/MergeKey1u2/MK1SubKey13"), mkey1u2
), "testMerge error 51");
275 REG_ENSURE(!mkey1u2
.closeKey(), "testMerge error 52");
276 REG_ENSURE(!key1u2
.openKey(OUString::createFromAscii("/MergeKey1u2/MK1SubKey13/KeyWithUnicodeValue"), mkey1u2
), "testMerge error 53");
277 REG_ENSURE(!mkey1u2
.closeKey(), "testMerge error 54");
279 REG_ENSURE(!key1u2
.openKey(OUString::createFromAscii("/MergeKey1u2/MK2SubKey21"), mkey1u2
), "testMerge error 55");
280 REG_ENSURE(!mkey1u2
.closeKey(), "testMerge error 56");
281 REG_ENSURE(!key1u2
.openKey(OUString::createFromAscii("/MergeKey1u2/MK2SubKey21/KeyWithBinaryValue"), mkey1u2
), "testMerge error 57");
282 REG_ENSURE(!mkey1u2
.closeKey(), "testMerge error 58");
284 REG_ENSURE(!key1u2
.openKey(OUString::createFromAscii("/MergeKey1u2/MK2SubKey22"), mkey1u2
), "testMerge error 59");
285 REG_ENSURE(!mkey1u2
.closeKey(), "testMerge error 60");
286 REG_ENSURE(!key1u2
.openKey(OUString::createFromAscii("/MergeKey1u2/MK2SubKey22/KeyWithLongValue"), mkey1u2
), "testMerge error 61");
287 REG_ENSURE(!mkey1u2
.closeKey(), "testMerge error 62");
289 REG_ENSURE(!key1u2
.openKey(OUString::createFromAscii("/MergeKey1u2/MK2SubKey23"), mkey1u2
), "testMerge error 63");
290 REG_ENSURE(!mkey1u2
.closeKey(), "testMerge error 64");
291 REG_ENSURE(!key1u2
.openKey(OUString::createFromAscii("/MergeKey1u2/MK2SubKey23/KeyWithStringValue"), mkey1u2
), "testMerge error 65");
292 REG_ENSURE(!mkey1u2
.closeKey(), "testMerge error 66");
294 REG_ENSURE(!key1u2
.openKey(OUString::createFromAscii("/MergeKey1u2/MK12SubKey1u2"), mkey1u2
), "testMerge error 67");
295 REG_ENSURE(!mkey1u2
.closeKey(), "testMerge error 68");
296 REG_ENSURE(!key1u2
.openKey(OUString::createFromAscii("/MergeKey1u2/MK12SubKey1u2/KeyWithLongValue"), mkey1u2
), "testMerge error 69");
297 REG_ENSURE(!mkey1u2
.closeKey(), "testMerge error 70");
299 REG_ENSURE(!key1u2
.closeKey(), "testMerge error 71");
301 ///////////////////////////////////////////////////////////////////////////
303 RegValueType valueType
;
304 sal_uInt32 valueSize
;
305 sal_Int32 int32Value
;
308 REG_ENSURE(!rootKey
.openKey(OUString::createFromAscii("/stardiv/IchbineinMergeKey"), key1
), "testMerge error 72");
310 REG_ENSURE(!key1
.getValueInfo(OUString::createFromAscii("/MergeKey1/MK1SubKey1/KeyWithLongValue"), &valueType
, &valueSize
), "testMerge error 73");
311 REG_ENSURE(valueType
== RG_VALUETYPE_LONG
&& valueSize
== sizeof(sal_Int32
), "testMerge error 74");
312 REG_ENSURE(!key1
.getValue(OUString::createFromAscii("/MergeKey1/MK1SubKey1/KeyWithLongValue"), (RegValue
)&int32Value
), "testMerge error 74.a)");
313 REG_ENSURE(int32Value
== lValue1
, "testMerge error 74.b)");
315 REG_ENSURE(!key1
.getValueInfo(OUString::createFromAscii("/MergeKey1/MK1SubKey2/KeyWithStringValue"), &valueType
, &valueSize
), "testMerge error 75");
316 REG_ENSURE(valueType
== RG_VALUETYPE_STRING
&& valueSize
== strlen(sValue
)+1, "testMerge error 76");
317 Value
= new sal_uInt8
[valueSize
];
318 REG_ENSURE(!key1
.getValue(OUString::createFromAscii("/MergeKey1/MK1SubKey2/KeyWithStringValue"), (RegValue
)Value
), "testMerge error 76.a)");
319 REG_ENSURE(strcmp((const sal_Char
*)Value
, sValue
) == 0, "testMerge error 76.b)");
322 REG_ENSURE(!key1
.getValueInfo(OUString::createFromAscii("/MergeKey1/MK1SubKey3/KeyWithUnicodeValue"), &valueType
, &valueSize
), "testMerge error 77");
323 REG_ENSURE(valueType
== RG_VALUETYPE_UNICODE
&& valueSize
== (wValue
.getLength()+1)*sizeof(sal_Unicode
), "testMerge error 78");
324 Value
= new sal_uInt8
[valueSize
];
325 REG_ENSURE(!key1
.getValue(OUString::createFromAscii("/MergeKey1/MK1SubKey3/KeyWithUnicodeValue"), (RegValue
)Value
), "testMerge error 78.a)");
326 REG_ENSURE(wValue
.equals( (const sal_Unicode
*)Value
), "testMerge error 78.b)");
329 REG_ENSURE(!key1
.getValueInfo(OUString::createFromAscii("/MergeKey1/MK1SubKey4/KeyWithBinaryValue"), &valueType
, &valueSize
), "testMerge error 79");
330 REG_ENSURE(valueType
== RG_VALUETYPE_BINARY
&& valueSize
== 27, "testMerge error 80");
331 Value
= new sal_uInt8
[valueSize
];
332 REG_ENSURE(!key1
.getValue(OUString::createFromAscii("/MergeKey1/MK1SubKey4/KeyWithBinaryValue"), (RegValue
)Value
), "testMerge error 80.a)");
333 REG_ENSURE(strcmp((const sal_Char
*)Value
, "abcdefghijklmnopqrstuvwxyz") == 0, "testMerge error 80.b)");
336 REG_ENSURE(!key1
.getValueInfo(OUString::createFromAscii("/MergeKey2/MK2SubKey1/KeyWithBinaryValue"), &valueType
, &valueSize
), "testMerge error 81");
337 REG_ENSURE(valueType
== RG_VALUETYPE_BINARY
&& valueSize
== 11, "testMerge error 82");
338 Value
= new sal_uInt8
[valueSize
];
339 REG_ENSURE(!key1
.getValue(OUString::createFromAscii("/MergeKey2/MK2SubKey1/KeyWithBinaryValue"), (RegValue
)Value
), "testMerge error 82.a)");
340 REG_ENSURE(strcmp((const sal_Char
*)Value
, "1234567890") == 0, "testMerge error 82.b)");
343 REG_ENSURE(!key1
.getValueInfo(OUString::createFromAscii("/MergeKey2/MK2SubKey2/KeyWithUnicodeValue"), &valueType
, &valueSize
), "testMerge error 83");
344 REG_ENSURE(valueType
== RG_VALUETYPE_UNICODE
&& valueSize
== (wValue
.getLength()+1)*sizeof(sal_Unicode
), "testMerge error 84");
345 Value
= new sal_uInt8
[valueSize
];
346 REG_ENSURE(!key1
.getValue(OUString::createFromAscii("/MergeKey2/MK2SubKey2/KeyWithUnicodeValue"), (RegValue
)Value
), "testMerge error 84.a)");
347 REG_ENSURE(wValue
.equals( (const sal_Unicode
*)Value
), "testMerge error 84.b)");
350 REG_ENSURE(!key1
.getValueInfo(OUString::createFromAscii("/MergeKey2/MK2SubKey3/KeyWithStringValue"), &valueType
, &valueSize
), "testMerge error 85");
351 REG_ENSURE(valueType
== RG_VALUETYPE_STRING
&& valueSize
== strlen(sValue
)+1, "testMerge error 86");
352 Value
= new sal_uInt8
[valueSize
];
353 REG_ENSURE(!key1
.getValue(OUString::createFromAscii("/MergeKey2/MK2SubKey3/KeyWithStringValue"), (RegValue
)Value
), "testMerge error 86.a)");
354 REG_ENSURE(strcmp((const sal_Char
*)Value
, sValue
) == 0, "testMerge error 86.b)");
357 REG_ENSURE(!key1
.getValueInfo(OUString::createFromAscii("/MergeKey2/MK2SubKey4/KeyWithLongValue"), &valueType
, &valueSize
), "testMerge error 87");
358 REG_ENSURE(valueType
== RG_VALUETYPE_LONG
&& valueSize
== sizeof(sal_Int32
), "testMerge error 88");
359 REG_ENSURE(!key1
.getValue(OUString::createFromAscii("/MergeKey2/MK2SubKey4/KeyWithLongValue"), (RegValue
)&int32Value
), "testMerge error 88.a)");
360 REG_ENSURE(int32Value
== lValue1
, "testMerge error 88.b)");
362 REG_ENSURE(!key1
.getValueInfo(OUString::createFromAscii("/MergeKey1u2/MK1SubKey11/KeyWithLongValue"), &valueType
, &valueSize
), "testMerge error 89");
363 REG_ENSURE(valueType
== RG_VALUETYPE_LONG
&& valueSize
== sizeof(sal_Int32
), "testMerge error 90");
364 REG_ENSURE(!key1
.getValue(OUString::createFromAscii("/MergeKey1u2/MK1SubKey11/KeyWithLongValue"), (RegValue
)&int32Value
), "testMerge error 90.a)");
365 REG_ENSURE(int32Value
== lValue2
, "testMerge error 90.b)");
367 REG_ENSURE(!key1
.getValueInfo(OUString::createFromAscii("/MergeKey1u2/MK1SubKey12/KeyWithStringValue"), &valueType
, &valueSize
), "testMerge error 91");
368 REG_ENSURE(valueType
== RG_VALUETYPE_STRING
&& valueSize
== strlen(sValue
)+1, "testMerge error 92");
369 Value
= new sal_uInt8
[valueSize
];
370 REG_ENSURE(!key1
.getValue(OUString::createFromAscii("/MergeKey1u2/MK1SubKey12/KeyWithStringValue"), (RegValue
)Value
), "testMerge error 92.a)");
371 REG_ENSURE(strcmp((const sal_Char
*)Value
, sValue
) == 0, "testMerge error 92.b)");
374 REG_ENSURE(!key1
.getValueInfo(OUString::createFromAscii("/MergeKey1u2/MK1SubKey13/KeyWithUnicodeValue"), &valueType
, &valueSize
), "testMerge error 93");
375 REG_ENSURE(valueType
== RG_VALUETYPE_UNICODE
&& valueSize
== (wValue
.getLength()+1)*sizeof(sal_Unicode
), "testMerge error 94");
376 Value
= new sal_uInt8
[valueSize
];
377 REG_ENSURE(!key1
.getValue(OUString::createFromAscii("/MergeKey1u2/MK1SubKey13/KeyWithUnicodeValue"), (RegValue
)Value
), "testMerge error 94.a)");
378 REG_ENSURE(wValue
.equals( (const sal_Unicode
*)Value
), "testMerge error 94.b)");
381 REG_ENSURE(!key1
.getValueInfo(OUString::createFromAscii("/MergeKey1u2/MK2SubKey21/KeyWithBinaryValue"), &valueType
, &valueSize
), "testMerge error 95");
382 REG_ENSURE(valueType
== RG_VALUETYPE_BINARY
&& valueSize
== 19, "testMerge error 96");
383 Value
= new sal_uInt8
[valueSize
];
384 REG_ENSURE(!key1
.getValue(OUString::createFromAscii("/MergeKey1u2/MK2SubKey21/KeyWithBinaryValue"), (RegValue
)Value
), "testMerge error 96.a)");
385 REG_ENSURE(strcmp((const sal_Char
*)Value
, "a1b2c3d4e5f6g7h8i9") == 0, "testMerge error 96.b)");
388 REG_ENSURE(!key1
.getValueInfo(OUString::createFromAscii("/MergeKey1u2/MK2SubKey22/KeyWithLongValue"), &valueType
, &valueSize
), "testMerge error 97");
389 REG_ENSURE(valueType
== RG_VALUETYPE_LONG
&& valueSize
== sizeof(sal_Int32
), "testMerge error 98");
390 REG_ENSURE(!key1
.getValue(OUString::createFromAscii("/MergeKey1u2/MK2SubKey22/KeyWithLongValue"), (RegValue
)&int32Value
), "testMerge error 98.a)");
391 REG_ENSURE(int32Value
== lValue2
, "testMerge error 98.b)");
393 REG_ENSURE(!key1
.getValueInfo(OUString::createFromAscii("/MergeKey1u2/MK2SubKey23/KeyWithStringValue"), &valueType
, &valueSize
), "testMerge error 99");
394 REG_ENSURE(valueType
== RG_VALUETYPE_STRING
&& valueSize
== strlen(sValue
)+1, "testMerge error 100");
395 Value
= new sal_uInt8
[valueSize
];
396 REG_ENSURE(!key1
.getValue(OUString::createFromAscii("/MergeKey1u2/MK2SubKey23/KeyWithStringValue"), (RegValue
)Value
), "testMerge error 100.a)");
397 REG_ENSURE(strcmp((const sal_Char
*)Value
, sValue
) == 0, "testMerge error 100.b)");
400 REG_ENSURE(!key1
.getValueInfo(OUString::createFromAscii("/MergeKey1u2/MK12SubKey1u2/KeyWithLongValue"), &valueType
, &valueSize
), "testMerge error 101");
401 REG_ENSURE(valueType
== RG_VALUETYPE_LONG
&& valueSize
== sizeof(sal_Int32
), "testMerge error 102");
402 REG_ENSURE(!key1
.getValue(OUString::createFromAscii("/MergeKey1u2/MK12SubKey1u2/KeyWithLongValue"), (RegValue
)&int32Value
), "testMerge error 102.a)");
403 REG_ENSURE(int32Value
== lValue4
, "testMerge error 102.b)");
406 REG_ENSURE(!key1
.closeKey(), "testMerge error 24");
408 ///////////////////////////////////////////////////////////////////////////
410 REG_ENSURE(!rootKey
.closeKey(), "testMerge error 10");
412 REG_ENSURE(!myRegistry
->destroy( OUString::createFromAscii("merge1.rdb") ), "test_registry_CppApi error 11");
413 REG_ENSURE(!myRegistry
->destroy( OUString::createFromAscii("merge2.rdb") ), "test_registry_CppApi error 12");
414 REG_ENSURE(!myRegistry
->destroy( OUString() ), "test_registry_CppApi error 13");
418 cout
<< "test_merge() Ok!\n";