1 /* 2 $Id: DeskbarGetItemTest.cpp,v 1.2 2002/09/13 03:51:09 jrand Exp $ 3 4 This file implements tests for the following use cases of BDeskbar: 5 - Count Items 6 - Has Item 1 7 - Has Item 2 8 - Get Item Info 1 9 - Get Item Info 2 10 11 */ 12 13 14 #include "DeskbarGetItemTest.h" 15 #include <Deskbar.h> 16 17 18 /* 19 * Method: DeskbarGetItemTest::DeskbarGetItemTest() 20 * Descr: This is the constructor for this class. 21 */ 22 23 24 DeskbarGetItemTest::DeskbarGetItemTest(std::string name) : 25 TestCase(name) 26 { 27 } 28 29 30 /* 31 * Method: DeskbarGetItemTest::~DeskbarGetItemTest() 32 * Descr: This is the destructor for this class. 33 */ 34 35 36 DeskbarGetItemTest::~DeskbarGetItemTest() 37 { 38 } 39 40 41 /* 42 * Method: DeskbarGetItemTest::PerformTest() 43 * Descr: This member function iterates over all of the items in the 44 * deskbar shelf and gets information about each item and confirms 45 * that all of the information is self-consistent. 46 */ 47 48 49 void DeskbarGetItemTest::PerformTest(void) 50 { 51 BDeskbar myDeskbar; 52 53 int32 itemCount = myDeskbar.CountItems(); 54 assert(itemCount >= 0); 55 56 57 int32 id=0; 58 int32 lastFoundId = -1; 59 char buffer[1024]; 60 const char *name = buffer; 61 62 assert(!myDeskbar.HasItem("NameThatDoesNotExistWeHope!!")); 63 assert(myDeskbar.GetItemInfo("NameThatDoesNotExistWeHope!!", &id) == B_NAME_NOT_FOUND); 64 65 for(id = 0; ((id < 10000) && (itemCount > 0)); id++) { 66 int32 tmpId; 67 68 if (myDeskbar.HasItem(id)) { 69 itemCount--; 70 71 name = NULL; 72 assert(myDeskbar.GetItemInfo(id, &name) == B_BAD_VALUE); 73 74 name = buffer; 75 assert(myDeskbar.GetItemInfo(id, &name) == B_OK); 76 77 assert(name != buffer); 78 assert(myDeskbar.HasItem(name)); 79 assert(myDeskbar.GetItemInfo(name, &tmpId) == B_OK); 80 delete[] name; 81 name = buffer; 82 assert(tmpId == id); 83 lastFoundId = id; 84 } else { 85 assert(myDeskbar.GetItemInfo(id, &name) == B_NAME_NOT_FOUND); 86 assert(name == buffer); 87 } 88 } 89 assert(itemCount == 0); 90 if (lastFoundId >= 0) { 91 for(id = lastFoundId + 1; id < lastFoundId + 200; id++) { 92 assert(!myDeskbar.HasItem(id)); 93 assert(myDeskbar.GetItemInfo(id, &name) == B_NAME_NOT_FOUND); 94 assert(name == buffer); 95 } 96 } 97 } 98 99 100 /* 101 * Method: PropertyConstructionTest::suite() 102 * Descr: This static member function returns a test caller for performing 103 * all combinations of "DeskbarGetItemTest". 104 */ 105 106 Test *DeskbarGetItemTest::suite(void) 107 { 108 typedef CppUnit::TestCaller<DeskbarGetItemTest> 109 DeskbarGetItemTestCaller; 110 111 return(new DeskbarGetItemTestCaller("BDeskbar::Get Item Test", &DeskbarGetItemTest::PerformTest)); 112 }