void SuitePSList::check_ps_list(void) { /* get the list */ AnListCtrl *pslist; pslist = dynamic_cast<AnListCtrl*> //(mainFrame->FindWindow(ID_PSLIST)); (wxWindow::FindWindowById(ID_PSLIST)); CPPUNIT_ASSERT_MESSAGE("Can't find process list", pslist != NULL); /* check the content */ long item_id = -1; fprintf(stderr, "process list:\n"); while ((item_id = pslist->GetNextItem(item_id)) != -1) { fprintf(stderr, "process: "); for (int i=0; i<7; i++) { fprintf(stderr, "%ls ", getListValue(pslist, item_id, i).c_str()); } fprintf(stderr, "\n"); } /* test process 1 */ long proc1 = getProcessRow(pslist, wxT("2000_1.sh")); CPPUNIT_ASSERT_MESSAGE("process 1 does not exist", proc1 != -1); CPPUNIT_ASSERT_MESSAGE("process 1 invalid user", getListValue(pslist, proc1, 1).Cmp(wxT("u2000")) == 0); CPPUNIT_ASSERT_MESSAGE("process 1 has pg id", getListValue(pslist, proc1, 5).Cmp(wxT("")) == 0); pslist->SetItemState(proc1, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); assertTextValue(ID_LABEL_PS_COMMAND, "/bin/sh /tmp/2000_1.sh"); assertTextValue(ID_LABEL_PS_UID, "u2000"); assertTextValue(ID_LABEL_PS_GID, "users"); assertTextValue(ID_LABEL_PS_PGID, "no"); assertTextValue(ID_LABEL_PS_PROCESSPATH, "/tmp/2000_1.sh"); assertTextValue(ID_LABEL_PS_USERPATH, "/tmp/2000_1.sh"); assertTextValue(ID_LABEL_PS_ADMINPATH, "/tmp/2000_1.sh"); assertRuleValue(ID_TEXT_PS_ALF_USER, "2: "); assertRuleValue(ID_TEXT_PS_ALF_ADMIN, "2: "); assertRuleValue(ID_TEXT_PS_SB_USER, "6: "); assertRuleValue(ID_TEXT_PS_SB_ADMIN, "8: "); assertRuleValue(ID_TEXT_PS_CTX_USER, "13: "); assertRuleValue(ID_TEXT_PS_CTX_ADMIN, "11: "); pslist->SetItemState(proc1, 0, wxLIST_STATE_SELECTED); /* test process 2 */ long proc2 = getProcessRow(pslist, wxT("2000_2.sh")); CPPUNIT_ASSERT_MESSAGE("process 2 does not exist", proc2 != -1); CPPUNIT_ASSERT_MESSAGE("process 2 invalid user", getListValue(pslist, proc2, 1).Cmp(wxT("u2000")) == 0); CPPUNIT_ASSERT_MESSAGE("process 2 no playground id", getListValue(pslist, proc2, 5).Cmp(wxT("")) != 0); pslist->SetItemState(proc2, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); assertTextValue(ID_LABEL_PS_COMMAND, "/bin/sh /tmp/2000_2.sh"); assertTextValue(ID_LABEL_PS_UID, "u2000"); assertTextValue(ID_LABEL_PS_GID, "users"); assertTextValue(ID_LABEL_PS_PGID, "yes (ID: 1)"); assertTextValue(ID_LABEL_PS_PROCESSPATH, "/tmp/2000_2.sh"); assertTextValue(ID_LABEL_PS_USERPATH, "/tmp/2000_2.sh"); assertTextValue(ID_LABEL_PS_ADMINPATH, "/tmp/2000_2.sh"); assertRuleValue(ID_TEXT_PS_ALF_USER, "4: "); assertRuleValue(ID_TEXT_PS_ALF_ADMIN, "3: "); assertRuleValue(ID_TEXT_PS_SB_USER, "10: "); assertRuleValue(ID_TEXT_PS_SB_ADMIN, "16: "); assertRuleValue(ID_TEXT_PS_CTX_USER, "12: "); assertRuleValue(ID_TEXT_PS_CTX_ADMIN, "14: "); pslist->SetItemState(proc2, 0, wxLIST_STATE_SELECTED); }
// TODO: UniqueKeywordValue() is not currently supported. // If it never will be, this test code should be removed. void PluralRulesTest::testGetUniqueKeywordValue() { assertRuleValue("n is 1", 1); assertRuleValue("n in 2..2", 2); assertRuleValue("n within 2..2", 2); assertRuleValue("n in 3..4", UPLRULES_NO_UNIQUE_VALUE); assertRuleValue("n within 3..4", UPLRULES_NO_UNIQUE_VALUE); assertRuleValue("n is 2 or n is 2", 2); assertRuleValue("n is 2 and n is 2", 2); assertRuleValue("n is 2 or n is 3", UPLRULES_NO_UNIQUE_VALUE); assertRuleValue("n is 2 and n is 3", UPLRULES_NO_UNIQUE_VALUE); assertRuleValue("n is 2 or n in 2..3", UPLRULES_NO_UNIQUE_VALUE); assertRuleValue("n is 2 and n in 2..3", 2); assertRuleKeyValue("a: n is 1", "not_defined", UPLRULES_NO_UNIQUE_VALUE); // key not defined assertRuleKeyValue("a: n is 1", "other", UPLRULES_NO_UNIQUE_VALUE); // key matches default rule }