2 Stand-alone MAPI testsuite
4 OpenChange Project - STORE OBJECT PROTOCOL operations
6 Copyright (C) Julien Kerihuel 2008
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 3 of the License, or
11 (at your option) any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program. If not, see <http://www.gnu.org/licenses/>.
22 #include "utils/mapitest/mapitest.h"
23 #include "utils/mapitest/proto.h"
24 #include "libmapi/libmapi_private.h"
27 \file module_oxcstor.c
29 \brief Store Object Protocol test suite
34 \details Test the Logon (0xFE) operation
37 -# Log on the user private mailbox
38 -# Log on the public folder store
40 \param mt pointer on the top-level mapitest structure
42 \return true on success, otherwise false
44 _PUBLIC_ bool mapitest_oxcstor_Logon(struct mapitest *mt)
46 enum MAPISTATUS retval;
47 mapi_object_t obj_store;
49 /* Step 1. Logon Private Mailbox */
50 mapi_object_init(&obj_store);
51 retval = OpenMsgStore(mt->session, &obj_store);
52 mapitest_print_retval(mt, "OpenMsgStore");
53 if (GetLastError() != MAPI_E_SUCCESS) {
56 mapi_object_release(&obj_store);
58 /* Step 2. Logon Public Folder store */
59 mapi_object_init(&obj_store);
60 retval = OpenPublicFolder(mt->session, &obj_store);
61 mapitest_print_retval(mt, "OpenPublicFolder");
62 if (GetLastError() != MAPI_E_SUCCESS) {
65 mapi_object_release(&obj_store);
72 \details Test the GetReceiveFolder (0x27) operation
75 -# Log on the user private mailbox
76 -# Call the GetReceiveFolder operation
77 -# Call the GetReceiveFolder with different explicit message class values
79 \param mt the top-level mapitest structure
81 \return true on success, otherwise false
83 _PUBLIC_ bool mapitest_oxcstor_GetReceiveFolder(struct mapitest *mt)
85 enum MAPISTATUS retval;
86 mapi_object_t obj_store;
87 mapi_id_t receivefolder = 0;
91 mapi_object_init(&obj_store);
92 retval = OpenMsgStore(mt->session, &obj_store);
93 mapitest_print_retval_clean(mt, "OpenMsgStore", retval);
94 if (retval != MAPI_E_SUCCESS) {
99 /* Step 2. Call the GetReceiveFolder operation */
100 retval = GetReceiveFolder(&obj_store, &receivefolder, NULL);
101 mapitest_print_retval_clean(mt, "GetReceiveFolder for All target", retval);
102 mapitest_print(mt, "FID: 0x%016"PRIx64"\n", receivefolder);
103 if (retval != MAPI_E_SUCCESS) {
108 /* Step 3. Call GetReceiveFolder again, with an explicit message class */
109 retval = GetReceiveFolder(&obj_store, &receivefolder, "IPC");
110 mapitest_print_retval_clean(mt, "GetReceiveFolder for IPC", retval);
111 mapitest_print(mt, "FID: 0x%016"PRIx64"\n", receivefolder);
112 if (retval != MAPI_E_SUCCESS) {
117 /* Step 4. Call GetReceiveFolder again, with an explicit message class */
118 retval = GetReceiveFolder(&obj_store, &receivefolder, "IPM.FooBarBaz");
119 mapitest_print_retval_clean(mt, "GetReceiveFolder for IPM.FooBarBaz", retval);
120 mapitest_print(mt, "FID: 0x%016"PRIx64"\n", receivefolder);
121 if (retval != MAPI_E_SUCCESS) {
126 /* Step 5. Call GetReceiveFolder again, with an explicit message class */
127 retval = GetReceiveFolder(&obj_store, &receivefolder, "MT.Mapitest.tc");
128 mapitest_print_retval_clean(mt, "GetReceiveFolder for MT.Mapitest.tc", retval);
129 mapitest_print(mt, "FID: 0x%016"PRIx64"\n", receivefolder);
130 if (retval != MAPI_E_SUCCESS) {
136 mapi_object_release(&obj_store);
143 \details Test the SetReceiveFolder (0x26) operation
146 -# Log on the user private mailbox
147 -# Call the SetReceiveFolder operations
150 \param mt the top-level mapitest structure
152 \return true on success, otherwise false
154 _PUBLIC_ bool mapitest_oxcstor_SetReceiveFolder(struct mapitest *mt)
156 enum MAPISTATUS retval;
157 mapi_object_t obj_store;
160 mapi_object_t obj_tis;
161 mapi_object_t obj_inbox;
162 mapi_object_t obj_folder;
166 mapi_object_init(&obj_store);
167 mapi_object_init(&obj_inbox);
168 mapi_object_init(&obj_tis);
169 mapi_object_init(&obj_folder);
173 retval = OpenMsgStore(mt->session, &obj_store);
174 mapitest_print_retval_step(mt, "1.", "Logon", retval);
175 if (retval != MAPI_E_SUCCESS) {
180 /* Step 2. Get the original ReceiveFolder */
181 retval = GetReceiveFolder(&obj_store, &id_inbox, NULL);
182 mapitest_print_retval_step(mt, "2.", "GetReceiveFolder", retval);
183 if (retval != MAPI_E_SUCCESS) {
188 /* Step 3. Open the ReceiveFolder */
189 retval = OpenFolder(&obj_store, id_inbox, &obj_inbox);
190 mapitest_print_retval_step(mt, "3.", "OpenFolder", retval);
191 if (retval != MAPI_E_SUCCESS) {
196 /* Step 4. Open the Top Information Store folder */
197 retval = GetDefaultFolder(&obj_store, &id_tis, olFolderTopInformationStore);
198 mapitest_print_retval_step(mt, "4.", "GetDefaultFolder", retval);
199 if (retval != MAPI_E_SUCCESS) {
204 retval = OpenFolder(&obj_store, id_tis, &obj_tis);
205 mapitest_print_retval_step(mt, "4.1.", "OpenFolder", retval);
206 if (retval != MAPI_E_SUCCESS) {
211 /* Create the New Inbox folder under Top Information Store */
212 retval = CreateFolder(&obj_tis, FOLDER_GENERIC, "New Inbox", NULL,
213 OPEN_IF_EXISTS, &obj_folder);
214 mapitest_print_retval_step(mt, "5.", "CreateFolder", retval);
215 if (retval != MAPI_E_SUCCESS) {
220 /* Set IPM.Note receive folder to New Inbox */
221 retval = SetReceiveFolder(&obj_store, &obj_folder, "IPM.Note");
222 mapitest_print_retval_step_fmt(mt, "6.", "SetReceiveFolder", "%s", "(New Inbox)", retval);
223 if (retval != MAPI_E_SUCCESS) {
228 /* Reset receive folder to Inbox */
229 retval = SetReceiveFolder(&obj_store, &obj_inbox, "IPM.Note");
230 mapitest_print_retval_step_fmt(mt, "6.1.", "SetReceiveFolder", "%s", "(original folder)", retval);
231 if (retval != MAPI_E_SUCCESS) {
236 /* Set a test message class */
237 retval = SetReceiveFolder(&obj_store, &obj_folder, "MT.Mapitest.ta");
238 mapitest_print_retval_step_fmt(mt, "7.", "SetReceiveFolder", "%s", "(MT.Mapitest.ta)", retval);
239 if (retval != MAPI_E_SUCCESS) {
244 /* Delete New Inbox folder */
245 retval = EmptyFolder(&obj_folder);
246 mapitest_print_retval_step(mt, "8.", "EmptyFolder", retval);
247 if (retval != MAPI_E_SUCCESS) {
252 retval = DeleteFolder(&obj_tis, mapi_object_get_id(&obj_folder),
253 DEL_FOLDERS | DEL_MESSAGES | DELETE_HARD_DELETE, NULL);
254 mapitest_print_retval_step(mt, "9.", "DeleteFolder", retval);
255 if (retval != MAPI_E_SUCCESS) {
262 mapi_object_release(&obj_folder);
263 mapi_object_release(&obj_tis);
264 mapi_object_release(&obj_inbox);
265 mapi_object_release(&obj_store);
272 \details Test the GetOwningServers (0x42) operation
275 -# Log on the public folders store
276 -# Open a public folder
277 -# Call the GetOwningServers operation
279 \param mt the top-level mapitest structure
281 \return true on success, otherwise false
283 _PUBLIC_ bool mapitest_oxcstor_GetOwningServers(struct mapitest *mt)
285 enum MAPISTATUS retval;
287 mapi_object_t obj_store;
288 mapi_object_t obj_folder;
290 uint16_t OwningServersCount;
291 uint16_t CheapServersCount;
295 mapi_object_init(&obj_store);
296 retval = OpenPublicFolder(mt->session, &obj_store);
297 mapitest_print_retval(mt, "OpenPublicFolder");
298 if (GetLastError() != MAPI_E_SUCCESS) {
302 /* Step 2. Open IPM Subtree folder */
303 retval = GetDefaultPublicFolder(&obj_store, &folderId, olFolderPublicIPMSubtree);
304 mapitest_print_retval(mt, "GetDefaultPublicFolder");
305 if (GetLastError() != MAPI_E_SUCCESS) {
310 mapi_object_init(&obj_folder);
311 retval = OpenFolder(&obj_store, folderId, &obj_folder);
312 mapitest_print_retval(mt, "OpenFolder");
313 if (GetLastError() != MAPI_E_SUCCESS) {
318 /* Step 3. Call GetOwningServers */
319 retval = GetOwningServers(&obj_store, &obj_folder, &OwningServersCount, &CheapServersCount, &OwningServers);
320 mapitest_print_retval(mt, "GetOwningServers");
321 if (GetLastError() != MAPI_E_SUCCESS && GetLastError() != ecNoReplicaAvailable) {
323 } else if (GetLastError() == ecNoReplicaAvailable) {
324 mapitest_print(mt, "* %-35s: No active replica for the folder\n", "GetOwningServers");
326 mapitest_print(mt, "* %-35s: OwningServersCount: %d\n", "PublicFolderIsGhosted", OwningServersCount);
327 if (OwningServersCount) {
330 for (i = 0; i < OwningServersCount; i++) {
331 mapitest_print(mt, "* %-35s: OwningServers: %s\n", "GetOwningServers", &OwningServers[i]);
333 talloc_free(&OwningServers);
337 /* cleanup objects */
338 mapi_object_release(&obj_folder);
341 mapi_object_release(&obj_store);
347 \details Test the PublicFolderIsGhosted (0x45) operation
350 -# Log on the public folders store
351 -# Open a public folder
352 -# Call the PublicFolderIsGhosted operation
354 \param mt the top-level mapitest structure
356 \return true on success, otherwise false
358 _PUBLIC_ bool mapitest_oxcstor_PublicFolderIsGhosted(struct mapitest *mt)
360 enum MAPISTATUS retval;
362 mapi_object_t obj_store;
363 mapi_object_t obj_folder;
368 mapi_object_init(&obj_store);
369 mapi_object_init(&obj_folder);
371 retval = OpenPublicFolder(mt->session, &obj_store);
372 mapitest_print_retval(mt, "OpenPublicFolder");
373 if (GetLastError() != MAPI_E_SUCCESS) {
377 /* Step 2. Open IPM Subtree folder */
378 retval = GetDefaultPublicFolder(&obj_store, &folderId, olFolderPublicIPMSubtree);
379 mapitest_print_retval(mt, "GetDefaultPublicFolder");
380 if (GetLastError() != MAPI_E_SUCCESS) {
385 retval = OpenFolder(&obj_store, folderId, &obj_folder);
386 mapitest_print_retval(mt, "OpenFolder");
387 if (GetLastError() != MAPI_E_SUCCESS) {
392 /* Step 3. Call PublicFolderIsGhosted */
393 retval = PublicFolderIsGhosted(&obj_store, &obj_folder, &IsGhosted);
394 mapitest_print_retval(mt, "PublicFolderIsGhosted");
395 if (GetLastError() != MAPI_E_SUCCESS) {
399 mapitest_print(mt, "* %-35s: IsGhosted is set to %s\n", "PublicFolderIsGhosted", ((IsGhosted) ? "true" : "false"));
402 mapi_object_release(&obj_folder);
403 mapi_object_release(&obj_store);
410 \details Test the GetReceiveFolderTable (0x68) operation
413 -# Log on the user private mailbox
414 -# Call the GetReceiveFolderTable operation
416 \param mt the top-level mapitest structure
418 \return true on success, otherwise false
420 _PUBLIC_ bool mapitest_oxcstor_GetReceiveFolderTable(struct mapitest *mt)
422 enum MAPISTATUS retval;
423 mapi_object_t obj_store;
424 struct SRowSet SRowSet;
427 mapi_object_init(&obj_store);
428 retval = OpenMsgStore(mt->session, &obj_store);
429 mapitest_print_retval(mt, "OpenMsgStore");
430 if (GetLastError() != MAPI_E_SUCCESS) {
434 /* Step 2. Call the GetReceiveFolderTable operation */
435 retval = GetReceiveFolderTable(&obj_store, &SRowSet);
436 mapitest_print_retval(mt, "GetReceiveFolderTable");
437 if (GetLastError() != MAPI_E_SUCCESS) {
441 mapitest_print_SRowSet(mt, &SRowSet, "\t\t[*]");
442 MAPIFreeBuffer(SRowSet.aRow);
445 mapi_object_release(&obj_store);
451 \details Test the LongTermIdFromId (0x43) and IdFromLongTermId (0x44)
455 -# Logs into the user private mailbox
456 -# Open the Receive Folder
457 -# Looks up the long term id for the receive folder FID
458 -# Looks up the short term id for the long term id
459 -# Checks the id matches the original FID
461 \param mt pointer on the top-level mapitest structure
463 \return true on success, otherwise false
465 _PUBLIC_ bool mapitest_oxcstor_LongTermId(struct mapitest *mt)
467 mapi_object_t obj_store;
469 struct LongTermId long_term_id;
473 /* Step 1. Logon Private Mailbox */
474 mapi_object_init(&obj_store);
475 OpenMsgStore(mt->session, &obj_store);
476 mapitest_print_retval(mt, "OpenMsgStore");
477 if (GetLastError() != MAPI_E_SUCCESS) {
482 /* Step 2. Call the GetReceiveFolder operation */
483 GetReceiveFolder(&obj_store, &id_inbox, "IPF.Post");
484 mapitest_print_retval(mt, "GetReceiveFolder");
485 if (GetLastError() != MAPI_E_SUCCESS) {
490 /* Step 3. Call GetLongTermIdFromId on Folder ID */
491 GetLongTermIdFromId(&obj_store, id_inbox, &long_term_id);
492 mapitest_print_retval(mt, "GetLongTermIdFromId");
493 if (GetLastError() != MAPI_E_SUCCESS) {
498 /* Step 4. Call GetIdFromLongTermId on LongTermId from previous step*/
499 GetIdFromLongTermId(&obj_store, long_term_id, &id_check);
500 mapitest_print_retval(mt, "GetIdFromLongTermId");
501 if (GetLastError() != MAPI_E_SUCCESS) {
506 /* Step 5. Check whether ids are the same */
507 if ( id_check == id_inbox ) {
508 mapitest_print(mt, "* Check: IDs match - [SUCCESS]\n" );
510 mapitest_print(mt, "* Check: IDs do not match - [SUCCESS] (0x%x, expected 0x%x)\n",
518 mapi_object_release(&obj_store);
525 \details Test the GetStoreState (0x7b) operation
528 -# Logs into the user private mailbox
529 -# Retrieve the store state
531 \param mt pointer on the top-level mapitest structure
533 \return true on success, otherwise false
535 _PUBLIC_ bool mapitest_oxcstor_GetStoreState(struct mapitest *mt)
537 mapi_object_t obj_store;
538 uint32_t StoreState = 0;
541 /* Step 1. Logon Private Mailbox */
542 mapi_object_init(&obj_store);
543 OpenMsgStore(mt->session, &obj_store);
544 mapitest_print_retval(mt, "OpenMsgStore");
545 if (GetLastError() != MAPI_E_SUCCESS) {
549 /* Step 2. Get the store state */
550 GetStoreState(&obj_store, &StoreState);
551 mapitest_print_retval(mt, "GetStoreState");
552 if (GetLastError() != MAPI_E_SUCCESS) {
556 mapi_object_release(&obj_store);
561 \details Test the IsMailboxFolder convenience function
564 -# Logs into the user private mailbox
566 \param mt pointer on the top-level mapitest structure
568 \return true on success, otherwise false
570 _PUBLIC_ bool mapitest_oxcstor_IsMailboxFolder(struct mapitest *mt)
572 mapi_object_t obj_store;
573 mapi_object_t obj_pf_store;
575 mapi_object_store_t * store;
576 mapi_object_store_t * pf_store;
577 uint32_t olFolderNumber;
579 enum MAPISTATUS retval;
581 mapi_object_init(&obj_store);
582 mapi_object_init(&obj_pf_store);
584 /* Step 1. Logon Private Mailbox */
585 retval = OpenMsgStore(mt->session, &obj_store);
586 mapitest_print_retval(mt, "OpenMsgStore");
587 if (retval != MAPI_E_SUCCESS) {
592 store = (mapi_object_store_t *) obj_store.private_data;
594 mapitest_print(mt, "* FAILED to get store private_data\n" );
599 callResult = IsMailboxFolder(&obj_store, store->fid_top_information_store, &olFolderNumber);
601 mapitest_print(mt, "* FAILED to get folder number for top_information_store\n");
605 if (olFolderNumber != olFolderTopInformationStore) {
606 mapitest_print(mt, "* FAILED - wrong folder number for top_information_store\n");
611 callResult = IsMailboxFolder(&obj_store, store->fid_deleted_items, &olFolderNumber);
613 mapitest_print(mt, "* FAILED to get folder number for deleted_items\n");
617 if (olFolderNumber != olFolderDeletedItems) {
618 mapitest_print(mt, "* FAILED - wrong folder number for deleted_items\n");
623 callResult = IsMailboxFolder(&obj_store, store->fid_outbox, &olFolderNumber);
625 mapitest_print(mt, "* FAILED to get folder number for outbox\n");
629 if (olFolderNumber != olFolderOutbox) {
630 mapitest_print(mt, "* FAILED - wrong folder number for outbox\n");
635 callResult = IsMailboxFolder(&obj_store, store->fid_sent_items, &olFolderNumber);
637 mapitest_print(mt, "* FAILED to get folder number for sent items\n");
641 if (olFolderNumber != olFolderSentMail) {
642 mapitest_print(mt, "* FAILED - wrong folder number for sent items\n");
647 callResult = IsMailboxFolder(&obj_store, store->fid_inbox, &olFolderNumber);
649 mapitest_print(mt, "* FAILED to get folder number for inbox\n");
653 if (olFolderNumber != olFolderInbox) {
654 mapitest_print(mt, "* FAILED - wrong folder number for inbox\n");
659 callResult = IsMailboxFolder(&obj_store, store->fid_common_views, &olFolderNumber);
661 mapitest_print(mt, "* FAILED to get folder number for views\n");
665 if (olFolderNumber != olFolderCommonView) {
666 mapitest_print(mt, "* FAILED - wrong folder number for views\n");
671 callResult = IsMailboxFolder(&obj_store, store->fid_calendar, &olFolderNumber);
673 mapitest_print(mt, "* FAILED to get folder number for calendar\n");
677 if (olFolderNumber != olFolderCalendar) {
678 mapitest_print(mt, "* FAILED - wrong folder number for calendar\n");
683 callResult = IsMailboxFolder(&obj_store, store->fid_contact, &olFolderNumber);
685 mapitest_print(mt, "* FAILED to get folder number for contacts\n");
689 if (olFolderNumber != olFolderContacts) {
690 mapitest_print(mt, "* FAILED - wrong folder number for contacts\n");
695 callResult = IsMailboxFolder(&obj_store, store->fid_journal, &olFolderNumber);
697 mapitest_print(mt, "* FAILED to get folder number for journal\n");
701 if (olFolderNumber != olFolderJournal) {
702 mapitest_print(mt, "* FAILED - wrong folder number for journal\n");
707 callResult = IsMailboxFolder(&obj_store, store->fid_note, &olFolderNumber);
709 mapitest_print(mt, "* FAILED to get folder number for notes\n");
713 if (olFolderNumber != olFolderNotes) {
714 mapitest_print(mt, "* FAILED - wrong folder number for note\n");
719 callResult = IsMailboxFolder(&obj_store, store->fid_task, &olFolderNumber);
721 mapitest_print(mt, "* FAILED to get folder number for tasks\n");
725 if (olFolderNumber != olFolderTasks) {
726 mapitest_print(mt, "* FAILED - wrong folder number for tasks\n");
731 callResult = IsMailboxFolder(&obj_store, store->fid_drafts, &olFolderNumber);
733 mapitest_print(mt, "* FAILED to get folder number for drafts\n");
737 if (olFolderNumber != olFolderDrafts) {
738 mapitest_print(mt, "* FAILED - wrong folder number for drafts\n");
743 callResult = IsMailboxFolder(&obj_store, store->fid_search, &olFolderNumber);
745 mapitest_print(mt, "* FAILED to get folder number for search\n");
749 if (olFolderNumber != olFolderFinder) {
750 mapitest_print(mt, "* FAILED - wrong folder number for search\n");
755 retval = OpenPublicFolder(mt->session, &obj_pf_store);
756 mapitest_print_retval(mt, "OpenPublicFolder");
757 if (retval != MAPI_E_SUCCESS) {
762 pf_store = (mapi_object_store_t *) obj_pf_store.private_data;
764 callResult = IsMailboxFolder(&obj_pf_store, pf_store->fid_pf_OfflineAB, &olFolderNumber);
766 mapitest_print(mt, "* FAILED to get folder number for offline address book\n");
770 if (olFolderNumber != olFolderPublicOfflineAB) {
771 mapitest_print(mt, "* FAILED - wrong folder number for offline address book\n");
776 callResult = IsMailboxFolder(&obj_pf_store, pf_store->fid_pf_FreeBusyRoot, &olFolderNumber);
778 mapitest_print(mt, "* FAILED to get folder number for free-busy root\n");
782 if (olFolderNumber != olFolderPublicFreeBusyRoot) {
783 mapitest_print(mt, "* FAILED - wrong folder number for free-busy root\n");
788 callResult = IsMailboxFolder(&obj_pf_store, pf_store->fid_pf_EFormsRegistryRoot, &olFolderNumber);
790 mapitest_print(mt, "* FAILED to get folder number for EForms root\n");
794 if (olFolderNumber != olFolderPublicEFormsRoot) {
795 mapitest_print(mt, "* FAILED - wrong folder number for EForms root\n");
800 /* this one is a bit sensitive. sometimes the EFormsRegistry is null */
801 callResult = IsMailboxFolder(&obj_pf_store, pf_store->fid_pf_EFormsRegistry, &olFolderNumber);
802 if (pf_store->fid_pf_EFormsRegistry != 0) {
804 mapitest_print(mt, "* FAILED to get folder number for EForms registry\n");
808 if (olFolderNumber != olFolderPublicEFormsRegistry) {
809 mapitest_print(mt, "* FAILED - wrong folder number for EForms registry\n");
815 callResult = IsMailboxFolder(&obj_pf_store, pf_store->fid_pf_public_root, &olFolderNumber);
817 mapitest_print(mt, "* FAILED to get folder number for Public root\n");
821 if (olFolderNumber != olFolderPublicRoot) {
822 mapitest_print(mt, "* FAILED - wrong folder number for Public root\n");
827 callResult = IsMailboxFolder(&obj_pf_store, pf_store->fid_pf_ipm_subtree, &olFolderNumber);
829 mapitest_print(mt, "* FAILED to get folder number for IPM subtree\n");
833 if (olFolderNumber != olFolderPublicIPMSubtree) {
834 mapitest_print(mt, "* FAILED - wrong folder number for IPM subtree\n");
839 callResult = IsMailboxFolder(&obj_pf_store, pf_store->fid_pf_non_ipm_subtree, &olFolderNumber);
841 mapitest_print(mt, "* FAILED to get folder number for non-IPM subtree\n");
845 if (olFolderNumber != olFolderPublicNonIPMSubtree) {
846 mapitest_print(mt, "* FAILED - wrong folder number for non-IPM subtree\n");
851 callResult = IsMailboxFolder(&obj_pf_store, pf_store->fid_pf_LocalSiteFreeBusy, &olFolderNumber);
853 mapitest_print(mt, "* FAILED to get folder number for local free busy folder\n");
857 if (olFolderNumber != olFolderPublicLocalFreeBusy) {
858 mapitest_print(mt, "* FAILED - wrong folder number for local free busy folder\n");
863 callResult = IsMailboxFolder(&obj_pf_store, pf_store->fid_pf_LocalSiteOfflineAB, &olFolderNumber);
865 mapitest_print(mt, "* FAILED to get folder number for local offline address book\n");
869 if (olFolderNumber != olFolderPublicLocalOfflineAB) {
870 mapitest_print(mt, "* FAILED - wrong folder number for local offline address folder\n");
875 /* this one is a bit sensitive. sometimes the NNTP Articles Folder ID is null */
876 callResult = IsMailboxFolder(&obj_pf_store, pf_store->fid_pf_NNTPArticle, &olFolderNumber);
877 if (pf_store->fid_pf_NNTPArticle != 0) {
879 mapitest_print(mt, "* FAILED to get folder number for NNTP Articles\n");
883 if (olFolderNumber != olFolderPublicNNTPArticle) {
884 mapitest_print(mt, "* FAILED - wrong folder number for NNTP Articles\n");
890 /* this is meant to break */
891 callResult = IsMailboxFolder(&obj_store, 0xFFEEDDCC, &olFolderNumber);
893 mapitest_print(mt, "* FAILED - expected no folder number\n");
897 if (olFolderNumber != 0xFFFFFFFF) {
898 mapitest_print(mt, "* FAILED - wrong folder number for bad folder id\n");
903 mapitest_print(mt, "* All PASSED\n");
906 mapi_object_release(&obj_store);
907 mapi_object_release(&obj_pf_store);