~ubuntu-branches/debian/experimental/openchange/experimental

« back to all changes in this revision

Viewing changes to utils/mapitest/modules/module_oxcfold.c

  • Committer: Bazaar Package Importer
  • Author(s): Jelmer Vernooij, Mathieu Parent, Jelmer Vernooij
  • Date: 2010-06-19 00:14:54 UTC
  • mfrom: (1.2.1 upstream) (4.1.1 sid)
  • Revision ID: james.westby@ubuntu.com-20100619001454-c9qbwzlbv3rgqrir
Tags: 1:0.9+svn1970-1
[ Mathieu Parent ]
* Add Vcs-Browser
* libmapi-dev depends on libndr-standard-dev.
  Fix "Missing dependency on samba4-dev" (Closes: #549012)

[ Jelmer Vernooij ]
* Use source format version 3.
* Bump standards version to 3.8.4.
* New upstream snapshot.
* Add build dependency on zlib1g-dev. Closes: #577330
* Migrate packaging to Bazaar.

Show diffs side-by-side

added added

removed removed

Lines of Context:
145
145
        mapitest_indent();
146
146
        for (i = 0; inbox_folders[i].name; i++) {
147
147
                mapi_object_init(&obj_folder);
148
 
                GetDefaultFolder(&obj_store, &id_folder, inbox_folders[i].id);
 
148
                retval = GetDefaultFolder(&obj_store, &id_folder, inbox_folders[i].id);
 
149
                mapitest_print_retval_fmt(mt, "GetDefaultFolder", "(%s)", inbox_folders[i].name);
 
150
                if (retval != MAPI_E_SUCCESS) {
 
151
                        return false;
 
152
                }
149
153
                retval = OpenFolder(&obj_store, id_folder, &obj_folder);
150
154
                mapitest_print_retval_fmt(mt, "OpenFolder", "(%s)", inbox_folders[i].name);
151
155
                if (retval != MAPI_E_SUCCESS) {
161
165
        return true;
162
166
}
163
167
 
 
168
/**
 
169
   \details Test the CreateFolder (0x1c) and DeleteFolder (0x??) operations
 
170
 
 
171
   This is a simpler version of the CreateFolder test below.
 
172
 
 
173
   This function:
 
174
        -# Log on the user private mailbox
 
175
        -# Open the top information folder
 
176
        -# Create a test directory
 
177
        -# Delete the folder
 
178
 
 
179
   \param mt the top-level mapitest structure
 
180
 
 
181
   \return true on success, otherwise false
 
182
 */
 
183
_PUBLIC_ bool mapitest_oxcfold_CreateDeleteFolder(struct mapitest *mt)
 
184
{
 
185
        enum MAPISTATUS         retval;
 
186
        mapi_object_t           obj_store;
 
187
        mapi_object_t           obj_folder;
 
188
        mapi_object_t           obj_top;
 
189
        mapi_id_t               id_folder;
 
190
 
 
191
        /* Step 1. Logon */
 
192
        mapi_object_init(&obj_store);
 
193
        retval = OpenMsgStore(mt->session, &obj_store);
 
194
        mapitest_print_retval(mt, "OpenMsgStore");
 
195
        if (GetLastError() != MAPI_E_SUCCESS) {
 
196
                return false;
 
197
        }
 
198
 
 
199
        /* Step 2. Open Top Information Store folder */
 
200
        mapi_object_init(&obj_folder);
 
201
        retval = GetDefaultFolder(&obj_store, &id_folder, olFolderTopInformationStore);
 
202
        retval = OpenFolder(&obj_store, id_folder, &obj_folder);
 
203
        if (GetLastError() != MAPI_E_SUCCESS) {
 
204
                return false;
 
205
        }
 
206
 
 
207
        /* Step 3. Create the top test folder */
 
208
        mapitest_print(mt, "* Create GENERIC \"%s\" folder\n", MT_DIRNAME_TOP);
 
209
        mapi_object_init(&obj_top);
 
210
        retval = CreateFolder(&obj_folder, FOLDER_GENERIC, MT_DIRNAME_TOP, NULL,
 
211
                              OPEN_IF_EXISTS, &obj_top);
 
212
        mapitest_print_retval(mt, "CreateFolder");
 
213
        if (GetLastError() != MAPI_E_SUCCESS) {
 
214
                return false;
 
215
        }
 
216
 
 
217
 
 
218
        /* Step 4. DeleteFolder */
 
219
        retval = DeleteFolder(&obj_folder, mapi_object_get_id(&obj_top),
 
220
                              DEL_MESSAGES|DEL_FOLDERS|DELETE_HARD_DELETE, NULL);
 
221
        mapitest_print_retval(mt, "DeleteFolder");
 
222
 
 
223
        /* Release */
 
224
        mapi_object_release(&obj_top);
 
225
        mapi_object_release(&obj_folder);
 
226
        mapi_object_release(&obj_store);
 
227
 
 
228
        return true;
 
229
}
 
230
 
164
231
 
165
232
/**
166
233
   \details Test the CreateFolder (0x1c) operation
187
254
        mapi_object_t           obj_child;
188
255
        mapi_id_t               id_folder;
189
256
        int                     i;
 
257
        bool                    ret = true;
190
258
 
191
259
        /* Step 1. Logon */
192
260
        mapi_object_init(&obj_store);
 
261
        mapi_object_init(&obj_folder);
 
262
        mapi_object_init(&obj_top);
193
263
        retval = OpenMsgStore(mt->session, &obj_store);
194
264
        mapitest_print_retval(mt, "OpenMsgStore");
195
 
        if (GetLastError() != MAPI_E_SUCCESS) {
196
 
                return false;
 
265
        if (retval != MAPI_E_SUCCESS) {
 
266
                ret = false;
 
267
                goto cleanup;
197
268
        }
198
269
 
199
270
        /* Step 2. Open Top Information Store folder */
200
 
        mapi_object_init(&obj_folder);
201
271
        retval = GetDefaultFolder(&obj_store, &id_folder, olFolderTopInformationStore);
 
272
        if (retval != MAPI_E_SUCCESS) {
 
273
                ret = false;
 
274
                goto cleanup;
 
275
        }
202
276
        retval = OpenFolder(&obj_store, id_folder, &obj_folder);
203
 
        if (GetLastError() != MAPI_E_SUCCESS) {
204
 
                return false;
 
277
        if (retval != MAPI_E_SUCCESS) {
 
278
                ret = false;
 
279
                goto cleanup;
205
280
        }
206
281
 
207
282
        /* Step 3. Create the top test folder */
208
283
        mapitest_print(mt, "* Create GENERIC \"%s\" folder\n", MT_DIRNAME_TOP);
209
 
        mapi_object_init(&obj_top);
210
284
        retval = CreateFolder(&obj_folder, FOLDER_GENERIC, MT_DIRNAME_TOP, NULL,
211
285
                              OPEN_IF_EXISTS, &obj_top);
212
286
        mapitest_print_retval(mt, "CreateFolder");
213
 
        if (GetLastError() != MAPI_E_SUCCESS) {
214
 
                return false;
 
287
        if (retval != MAPI_E_SUCCESS) {
 
288
                ret = false;
 
289
                goto cleanup;
215
290
        }
216
291
 
217
292
        /* Step 4. Create sub directories */
223
298
                retval = CreateFolder(&obj_top, FOLDER_GENERIC, subfolders[i].name, NULL,
224
299
                                      OPEN_IF_EXISTS, &obj_child);
225
300
                mapitest_print_retval_fmt(mt, "CreateFolder", "(%s)", subfolders[i].name);
226
 
 
 
301
                if (retval != MAPI_E_SUCCESS) {
 
302
                        mapitest_deindent();
 
303
                        mapi_object_release(&obj_child);
 
304
                        ret = false;
 
305
                        goto cleanup;
 
306
                }
227
307
                /* Step 4.2. Set its container class */
228
308
                set_SPropValue_proptag(&lpProp[0], PR_CONTAINER_CLASS, (const void *) subfolders[i].class);
229
309
                retval = SetProps(&obj_child, lpProp, 1);
230
310
                mapitest_print_retval_fmt(mt, "SetProps", "(%s)", subfolders[i].name);          
231
 
 
 
311
                if (retval != MAPI_E_SUCCESS) {
 
312
                        mapitest_deindent();
 
313
                        mapi_object_release(&obj_child);
 
314
                        ret = false;
 
315
                        goto cleanup;
 
316
                }
232
317
                mapi_object_release(&obj_child);
233
318
        }
234
319
        mapitest_deindent();
236
321
        /* Step 5. Empty Folder */
237
322
        retval = EmptyFolder(&obj_top);
238
323
        mapitest_print_retval(mt, "EmptyFolder");
 
324
        if (retval != MAPI_E_SUCCESS) {
 
325
              ret = false;
 
326
              goto cleanup;
 
327
        }
239
328
 
240
329
        /* Step 6. DeleteFolder */
241
330
        retval = DeleteFolder(&obj_folder, mapi_object_get_id(&obj_top),
242
331
                              DEL_MESSAGES|DEL_FOLDERS|DELETE_HARD_DELETE, NULL);
243
332
        mapitest_print_retval(mt, "DeleteFolder");
244
 
        
 
333
        if (retval != MAPI_E_SUCCESS) {
 
334
              ret = false;
 
335
              goto cleanup;
 
336
        }
 
337
 
 
338
cleanup:
245
339
        /* Release */
246
340
        mapi_object_release(&obj_top);
247
341
        mapi_object_release(&obj_folder);
613
707
_PUBLIC_ bool mapitest_oxcfold_MoveCopyMessages(struct mapitest *mt)
614
708
{
615
709
        enum MAPISTATUS         retval;
 
710
        bool                    common_result;
616
711
        bool                    ret = true;
617
712
        mapi_object_t           obj_store;
618
713
        mapi_object_t           obj_folder_src;
632
727
        mapi_object_init(&obj_store);
633
728
        retval = OpenMsgStore(mt->session, &obj_store);
634
729
        mapitest_print_retval(mt, "OpenMsgStore");
635
 
        if (GetLastError() != MAPI_E_SUCCESS) {
 
730
        if (retval != MAPI_E_SUCCESS) {
636
731
                return false;
637
732
        }
638
733
 
643
738
 
644
739
        retval = OpenFolder(&obj_store, id_folder, &obj_folder_src);
645
740
        mapitest_print_retval(mt, "OpenFolder");
646
 
        if (GetLastError() != MAPI_E_SUCCESS) {
 
741
        if (retval != MAPI_E_SUCCESS) {
647
742
                return false;
648
743
        }
649
744
                
654
749
 
655
750
        retval = OpenFolder(&obj_store, id_folder, &obj_folder_dst);
656
751
        mapitest_print_retval(mt, "OpenFolder");
657
 
        if (GetLastError() != MAPI_E_SUCCESS) {
 
752
        if (retval != MAPI_E_SUCCESS) {
658
753
                return false;
659
754
        }
660
755
        mapi_object_init(&(dst_contents));
661
756
        retval = GetContentsTable(&(obj_folder_dst), &(dst_contents), 0, &dst_count);
662
757
        mapitest_print_retval(mt, "GetContentsTable");
663
 
        if (GetLastError() != MAPI_E_SUCCESS) {
 
758
        if (retval != MAPI_E_SUCCESS) {
664
759
                ret = false;
 
760
                goto release;
665
761
        }
666
762
 
667
763
        /* Step 4. Create sample messages */
668
764
        mapi_id_array_init(&msg_id_array);
669
765
        for (i = 0; i < 3; i++) {
670
766
                mapi_object_init(&obj_message);
671
 
                retval = mapitest_common_message_create(mt, &obj_folder_src, &obj_message, MT_MAIL_SUBJECT);
672
 
                mapitest_print_retval(mt, "mapitest_common_message_create");
673
 
                if (GetLastError() != MAPI_E_SUCCESS) {
 
767
                common_result = mapitest_common_message_create(mt, &obj_folder_src, &obj_message, MT_MAIL_SUBJECT);
 
768
                if (!common_result) {
 
769
                        mapitest_print(mt, "* mapitest_common_message_create() failed");
674
770
                        ret = false;
 
771
                        goto release;
675
772
                }
676
773
                
677
774
                retval = SaveChangesMessage(&obj_folder_src, &obj_message, KeepOpenReadOnly);
678
775
                mapitest_print_retval(mt, "SaveChangesMessage");
679
776
                if (retval != MAPI_E_SUCCESS) {
680
777
                        ret = false;
 
778
                        goto release;
681
779
                }
682
780
                mapi_id_array_add_obj(&msg_id_array, &obj_message);
683
781
                mapi_object_release(&obj_message);
688
786
        mapitest_print_retval(mt, "MoveCopyMessages");
689
787
        if (retval != MAPI_E_SUCCESS) {
690
788
                ret = false;
 
789
                goto release;
691
790
        }
692
791
        mapi_id_array_release(&msg_id_array);
693
792
 
700
799
 
701
800
        retval = Restrict(&(dst_contents), &res, NULL);
702
801
        mapitest_print_retval(mt, "Restrict");
703
 
        if (GetLastError() != MAPI_E_SUCCESS) {
 
802
        if (retval != MAPI_E_SUCCESS) {
704
803
                ret = false;
 
804
                goto release;
705
805
        }
706
806
 
707
807
        /* Step 7. Get the filtered row */
708
808
        SPropTagArray = set_SPropTagArray(mt->mem_ctx, 0x1, PR_MID);
709
 
        SetColumns(&(dst_contents), SPropTagArray);
 
809
        retval = SetColumns(&(dst_contents), SPropTagArray);
710
810
        mapitest_print_retval(mt, "SetColumns");
711
811
        MAPIFreeBuffer(SPropTagArray);
 
812
        if (retval != MAPI_E_SUCCESS) {
 
813
                ret = false;
 
814
                goto release;
 
815
        }
712
816
 
713
 
        QueryRows(&(dst_contents), 20, TBL_NOADVANCE, &SRowSet);
 
817
        retval = QueryRows(&(dst_contents), 20, TBL_NOADVANCE, &SRowSet);
714
818
        mapitest_print_retval(mt, "QueryRows");
715
819
        if ( (retval == MAPI_E_SUCCESS) && (SRowSet.cRows > 0) ) {
716
820
                for (i = 0; i < SRowSet.cRows; ++i) {
722
826
        retval = DeleteMessage(&obj_folder_dst, msgid, i); 
723
827
        mapitest_print_retval(mt, "DeleteMessage");
724
828
 
 
829
release:
725
830
        /* Release */
 
831
        mapi_object_release(&dst_contents);
726
832
        mapi_object_release(&obj_folder_src);
727
833
        mapi_object_release(&obj_folder_dst);
728
834
        mapi_object_release(&obj_store);
981
1087
        /* Step 1. Logon */
982
1088
        mapi_object_init(&obj_store);
983
1089
        mapi_object_init(&obj_folder);
 
1090
        mapi_object_init(&contents);
984
1091
 
985
1092
        retval = OpenMsgStore(mt->session, &obj_store);
986
1093
        mapitest_print_retval(mt, "OpenMsgStore");
1004
1111
                goto cleanup;
1005
1112
        }
1006
1113
 
1007
 
        mapi_object_init(&(contents));
1008
 
        GetContentsTable(&(obj_folder), &(contents), 0, &count);
 
1114
        retval = GetContentsTable(&(obj_folder), &(contents), 0, &count);
1009
1115
        mapitest_print_retval(mt, "GetContentsTable");
1010
1116
        if (retval != MAPI_E_SUCCESS) {
1011
1117
                ret = false;
1056
1162
 
1057
1163
        retval = QueryRows(&(contents), 50, TBL_NOADVANCE, &SRowSet);
1058
1164
        mapitest_print_retval(mt, "QueryRows");
1059
 
        if ( (retval == MAPI_E_SUCCESS) && (SRowSet.cRows >= 0) ) {
 
1165
        if (retval == MAPI_E_SUCCESS) {
1060
1166
                for (i = 0; i < SRowSet.cRows; ++i) {
1061
1167
                        msgid[i] = SRowSet.aRow[i].lpProps[0].value.d;
1062
1168
                }
1088
1194
 
1089
1195
cleanup:
1090
1196
        /* Release */
 
1197
        mapi_object_release(&contents);
1091
1198
        mapi_object_release(&obj_folder);
1092
1199
        mapi_object_release(&obj_store);
1093
1200