#include "DeskbarGetItemTest.h"
#include <Deskbar.h>
#include <assert.h>
DeskbarGetItemTest::DeskbarGetItemTest(std::string name) :
TestCase(name)
{
}
DeskbarGetItemTest::~DeskbarGetItemTest()
{
}
void DeskbarGetItemTest::PerformTest(void)
{
BDeskbar myDeskbar;
int32 itemCount = myDeskbar.CountItems();
assert(itemCount >= 0);
int32 id=0;
int32 lastFoundId = -1;
char buffer[1024];
const char *name = buffer;
assert(!myDeskbar.HasItem("NameThatDoesNotExistWeHope!!"));
assert(myDeskbar.GetItemInfo("NameThatDoesNotExistWeHope!!", &id) == B_NAME_NOT_FOUND);
for(id = 0; ((id < 10000) && (itemCount > 0)); id++) {
int32 tmpId;
if (myDeskbar.HasItem(id)) {
itemCount--;
name = buffer;
assert(myDeskbar.GetItemInfo(id, &name) == B_OK);
assert(name != buffer);
assert(myDeskbar.HasItem(name));
assert(myDeskbar.GetItemInfo(name, &tmpId) == B_OK);
delete[] name;
name = buffer;
assert(tmpId == id);
lastFoundId = id;
} else {
assert(myDeskbar.GetItemInfo(id, &name) == B_NAME_NOT_FOUND);
assert(name == buffer);
}
}
assert(itemCount == 0);
if (lastFoundId >= 0) {
for(id = lastFoundId + 1; id < lastFoundId + 200; id++) {
assert(!myDeskbar.HasItem(id));
assert(myDeskbar.GetItemInfo(id, &name) == B_NAME_NOT_FOUND);
assert(name == buffer);
}
}
}
Test *DeskbarGetItemTest::suite(void)
{
typedef CppUnit::TestCaller<DeskbarGetItemTest>
DeskbarGetItemTestCaller;
return(new DeskbarGetItemTestCaller("BDeskbar::Get Item Test", &DeskbarGetItemTest::PerformTest));
}