/** * Test maPimItemRemoveValue syscall. */ void AppMoblet::testMaPimItemRemoveValue() { printf("\n=========Test maPimItemRemoveValue syscall======="); MAHandle list = maPimListOpen(MA_PIM_CONTACTS); printResultCode(list); MAHandle item = maPimItemCreate(list); printResultCode(item); PIMContact* contact = new PIMContact(item); printf("\nTest syscalls with invalid item handle"); printResultCode(maPimItemRemoveValue(555, 0, 0)); printf("\nTest syscalls with invalid field id"); printResultCode(maPimItemRemoveValue(item, 19191, 0)); printf("\nTest syscall with unsupported field id"); printResultCode(maPimItemRemoveValue(item, MA_PIM_FIELD_CONTACT_CLASS, 0)); printf("\nTest syscall with invalid value index - empty field"); printResultCode(maPimItemRemoveValue(item, MA_PIM_FIELD_CONTACT_ADDR, 0)); waitForClick(); printf("\nTest syscall with invalid value index - field not empty"); contact->addAddress(); printResultCode(maPimItemRemoveValue(item, MA_PIM_FIELD_CONTACT_ADDR, 100)); waitForClick(); printf("\nTest syscall with valid parameters"); printResultCode(maPimItemRemoveValue(item, MA_PIM_FIELD_CONTACT_ADDR, 1)); delete contact; maPimItemRemove(list, item); maPimListClose(list); waitForClick(); }
/** * Modify an existing contact. */ void AppMoblet::modifyContact() { MAHandle list = maPimListOpen(MA_PIM_CONTACTS); MAHandle item = maPimListNext(list); PIMContact* contact = new PIMContact(item); contact->modifyAddressField(); maPimItemClose(item); maPimListClose(list); }
/** * Test maPimItemGetValue syscall. */ void AppMoblet::testMaPimItemGetValue() { printf("\n=========Test maPimItemGetValue syscall======="); MAHandle list = maPimListOpen(MA_PIM_CONTACTS); printResultCode(list); MAHandle item = maPimItemCreate(list); printResultCode(item); PIMContact* contact = new PIMContact(item); MA_PIM_ARGS args; char buf[1024]; args.buf = buf; args.bufSize = 1024; printf("\nTest syscalls with invalid item handle"); args.item = 1234; printResultCode(maPimItemGetValue(&args, 0)); printf("\nTest syscalls with invalid field id"); args.item = item; args.field = 696; printResultCode(maPimItemGetValue(&args, 0)); printf("\nTest syscall with unsupported field id"); args.field = MA_PIM_FIELD_CONTACT_CLASS; printResultCode(maPimItemGetValue(&args, 0)); printf("\nTest syscall with invalid value index - empty field"); args.field = MA_PIM_FIELD_CONTACT_ADDR; printResultCode(maPimItemGetValue(&args, 0)); waitForClick(); printf("\nTest syscall with invalid value index - field not empty"); contact->addAddress(); printResultCode(maPimItemGetValue(&args, 15)); waitForClick(); printf("\nTest syscall for a write only field"); args.field = MA_PIM_FIELD_CONTACT_PHOTO_URL; printResultCode(maPimItemGetValue(&args, 0)); waitForClick(); printf("\nTest syscall with invalid buf size."); args.field = MA_PIM_FIELD_CONTACT_ADDR; args.bufSize = 20; printResultCode(maPimItemGetValue(&args, 0)); printf("\nTest syscall with valid parameters."); args.bufSize = 1024; printResultCode(maPimItemGetValue(&args, 0)); delete contact; maPimItemRemove(list, item); maPimListClose(list); waitForClick(); }
/** * Test maPimItemSetLabel syscall. */ void AppMoblet::testMaPimItemSetLabel() { printf("\n===========Test maPimItemSetLabel syscall==========="); MAHandle list = maPimListOpen(MA_PIM_CONTACTS); printResultCode(list); MAHandle item = maPimItemCreate(list); printResultCode(item); MA_PIM_ARGS args; char buf[1024]; args.buf = buf; args.bufSize = 1024; printf("\nTest with invalid item handle"); args.item = 323; printResultCode(maPimItemSetLabel(&args, 1)); printf("\nTest with invalid field"); args.item = item; args.field = 12333; printResultCode(maPimItemSetLabel(&args, 1)); printf("\nTest with unsupported field"); args.field = MA_PIM_FIELD_CONTACT_CLASS; printResultCode(maPimItemSetLabel(&args, 1)); printf("\nTest with invalid value index and empty field"); args.field = MA_PIM_FIELD_CONTACT_ADDR; printResultCode(maPimItemSetLabel(&args, 1)); waitForClick(); printf("\nTest with invalid value index and field is not empty"); PIMContact* contact = new PIMContact(item); contact->addAddress(); printResultCode(maPimItemSetLabel(&args, 5)); waitForClick(); printf("\nTest with a valid field, but value's attribute is not custom"); printResultCode(maPimItemSetLabel(&args, 0)); printf("\nTest with a valid field and value's attribute is custom"); // Write value to buffer. args.bufSize = writeWCharArraysToBuf(args.buf, sAddressHome, COUNT_ADDRESS_INDICES); int index = maPimItemAddValue(&args, MA_PIM_ATTR_ADDR_CUSTOM); args.bufSize = copyWCharArray(args.buf, L"My label"); printResultCode(maPimItemSetLabel(&args, index)); maPimItemRemove(list, item); maPimListClose(list); waitForClick(); }
/** * Test maPimItemAddValue syscall. */ void AppMoblet::testMaPimItemAddValue() { printf("\n=========Test maPimItemAddValue syscall======="); MAHandle list = maPimListOpen(MA_PIM_CONTACTS); printResultCode(list); MAHandle item = maPimItemCreate(list); printResultCode(item); MA_PIM_ARGS args; char buf[1024]; args.buf = buf; args.bufSize = 1024; printf("\nTest syscall with invalid item handle"); args.item = 1234; printResultCode(maPimItemAddValue(&args, 0)); printf("\nTest syscall with invalid field id"); args.item = item; args.field = 696; printResultCode(maPimItemAddValue(&args, 0)); printf("\nTest syscall with unsupported field id"); args.field = MA_PIM_FIELD_CONTACT_CLASS; printResultCode(maPimItemAddValue(&args, 0)); printf("\nTest syscall for a read only field"); args.field = MA_PIM_FIELD_CONTACT_REVISION; printResultCode(maPimItemAddValue(&args, MA_PIM_ATTR_ADDR_WORK)); printf("\nTest syscall with invalid attribute"); args.field = MA_PIM_FIELD_CONTACT_ADDR; writeWCharArraysToBuf(args.buf, sAddressHome, 8); printResultCode(maPimItemAddValue(&args, 9099)); printf("\nTest syscall with attribute from another field"); printResultCode(maPimItemAddValue(&args, MA_PIM_ATTR_RELATION_BROTHER)); printf("\nTest syscall with invalid buffer size"); writeWCharArraysToBuf(args.buf, sAddressHome, 8); args.bufSize = 10; printResultCode(maPimItemAddValue(&args, MA_PIM_ATTR_ADDR_HOME)); printf("\nTest syscall with valid parameters."); args.bufSize = writeWCharArraysToBuf(args.buf, sAddressHome, 8); printResultCode(maPimItemAddValue(&args, MA_PIM_ATTR_ADDR_WORK)); maPimItemRemove(list, item); maPimListClose(list); waitForClick(); }
/** * Test maPimItemClose syscall. */ void AppMoblet::testMaPimItemClose() { printf("\n===========Test maPimItemClose syscall==========="); printf("\nTest with invalid item handle"); printResultCode(maPimItemClose(500)); printf("\nTest with valid item handle, but list is closed"); MAHandle list = maPimListOpen(MA_PIM_CONTACTS); printResultCode(list); MAHandle newItem = maPimItemCreate(list); maPimListClose(list); printResultCode(maPimItemClose(newItem)); printf("\nTest with valid item handle and list is opened"); list = maPimListOpen(MA_PIM_CONTACTS); printResultCode(list); newItem = maPimItemCreate(list); printResultCode(newItem); printResultCode(maPimItemClose(newItem)); maPimListClose(list); waitForClick(); }
/** * Test maPimItemRemove syscall. */ void AppMoblet::deleteAllContactsFromAddressBook() { MAHandle list = maPimListOpen(MA_PIM_CONTACTS); while(true) { MAHandle item = maPimListNext(list); if (item != 0) { maPimItemRemove(list, item); } else { break; } } maPimListClose(list); }
/** * Test maPimItemCreate syscall. */ void AppMoblet::testMaPimItemCreate() { printf("\n===========Test maPimItemCreate syscall==========="); printf("\nTest with invalid list handle"); printResultCode(maPimItemCreate(5)); printf("\nTest with valid list handle, but list is not open"); printResultCode(maPimItemCreate(1)); printf("\nTest with valid list handle and list is opened"); MAHandle list = maPimListOpen(MA_PIM_CONTACTS); printResultCode(list); MAHandle item = maPimItemCreate(list); printResultCode(item); maPimItemRemove(list, item); maPimListClose(list); }
/** * Start the testing process. */ void AppMoblet::startTesting() { printf("\n===========Open contacts list==========="); MAHandle list = maPimListOpen(MA_PIM_CONTACTS); printResultCode(list); printf("\n===========Create new contact item==========="); MAHandle newContactHandle = maPimItemCreate(list); printf("newContactHandle = %d", newContactHandle); printResultCode(newContactHandle); printf("\n===========Add data to contact==========="); PIMContact* contact = new PIMContact(newContactHandle); contact->addDataToContact(); printf("\n===========Close new contact==========="); printResultCode(maPimItemClose(newContactHandle)); printf("\n===========Close contacts list==========="); printResultCode(maPimListClose(list)); delete contact; }
/** * Test maPimItemRemove syscall. */ void AppMoblet::testMaPimItemRemove() { printf("\n===========Test maPimItemRemove syscall==========="); printf("\nTest with invalid list handle"); printResultCode(maPimItemRemove(5, 1)); printf("\nTest with valid list handle and invalid item handle"); MAHandle list = maPimListOpen(MA_PIM_CONTACTS); printResultCode(list); printResultCode(maPimItemRemove(list, 7)); printf("\nTest with valid list handle and valid item handle"); MAHandle newItem = maPimItemCreate(list); printResultCode(maPimItemRemove(list, newItem)); printf("\nTest with a removed item"); printResultCode(maPimItemRemove(list, newItem)); maPimItemRemove(list, newItem); maPimListClose(list); waitForClick(); }
ContactScreen::ContactScreen(MainScreen *previous) { this->previous = previous; lprintfln("ContactScreen::Memory Heap %d, Free Heap %d", heapTotalMemory(), heapFreeMemory()); moved = 0; index = -1; isBusy = false; layout = Util::createMainLayout("Search", "Back", "", false); listBox = (KineticListBox*) layout->getChildren()[0]->getChildren()[2]; notice = (Label*) layout->getChildren()[0]->getChildren()[1]; label = new Label(0,0, scrWidth-PADDING*2, 24, NULL, "Enter contact name", 0, Util::getDefaultFont()); listBox->add(label); label = Util::createEditLabel(""); editBoxSearch = new NativeEditBox(0, 0, label->getWidth()-PADDING*2, 48-PADDING*2, 64, MA_TB_TYPE_ANY, label, "",L"Search term:"); #if defined(MA_PROF_SUPPORT_STYLUS) #else editBoxSearch->setInputMode(NativeEditBox::IM_NUMBERS); #endif editBoxSearch->setDrawBackground(false); label->addWidgetListener(this); listBox->add(label); contactListBox = new KineticListBox(0, 0, scrWidth, listBox->getHeight() - editBoxSearch->getParent()->getHeight() - 24, listBox, KineticListBox::LBO_VERTICAL, KineticListBox::LBA_LINEAR, false); this->setMain(layout); listBox->setSelectedIndex(1); editBoxSearch->setSelected(true); //load all the contacts into a list Contact *temp; char *name, *number; String strName, strNumber; MAHandle mContactsListHandle = maPimListOpen(MA_PIM_CONTACTS); MAHandle pimItemHandle = maPimListNext(mContactsListHandle); MA_PIM_ARGS args; args.item = pimItemHandle; args.bufSize = 512; char *mBuffer; mBuffer = new char[512]; args.buf = mBuffer; while (pimItemHandle > 0) { strName = ""; strNumber = ""; args.item = pimItemHandle; int countFields = maPimItemCount(pimItemHandle); if (countFields >= 0) { args.field = MA_PIM_FIELD_CONTACT_NAME; // Get value from name field at position 0. maPimItemGetValue(&args, 0); // there can be up to 8 parts of a name for (int i = 0; i < 8; i++) { const wchar* contactNameValue = Util::getWCharArrayFromBuf(args.buf, i); if (contactNameValue && *contactNameValue != 0) { name = new char[wcslen(contactNameValue)]; memset(name, '\0', wcslen(contactNameValue)); sprintf(name, "%S", contactNameValue); if (strName.length() > 0) { strName.append(", ", 2); } strName.append(name, strlen(name)); delete name; } } //printf("name: %s", strName.c_str()); args.field = MA_PIM_FIELD_CONTACT_TEL; // Get the number of values. int countValues = maPimItemFieldCount(pimItemHandle, MA_PIM_FIELD_CONTACT_TEL); for (int i = 0; i < countValues; i++) { int result = maPimItemGetValue(&args, i); if (result >= 0) { number = new char[wcslen((wchar*) args.buf)]; memset(number, '\0', wcslen((wchar*) args.buf)); sprintf(number, "%S", (wchar*) args.buf); } strNumber = number; temp = new Contact(strName, strNumber); allContacts.add(temp); delete number; //printf("number: %s", strNumber.c_str()); } } maPimItemClose(pimItemHandle); pimItemHandle = maPimListNext(mContactsListHandle); } maPimListClose(mContactsListHandle); }