fleshed out the test a bit more, tried to make it more readable

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1709 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Matthew Wilber
2002-10-26 23:10:37 +00:00
parent 1a654a3182
commit 43b21ffe30
2 changed files with 157 additions and 95 deletions
@@ -85,40 +85,44 @@ TranslatorRosterTest::Suite() {
*/ */
void TranslatorRosterTest::InitializeTest() { void TranslatorRosterTest::InitializeTest() {
//aquire default roster //aquire default roster
roster = BTranslatorRoster::Default(); NextSubTest();
CPPUNIT_ASSERT(roster != NULL); BTranslatorRoster *proster = BTranslatorRoster::Default();
CPPUNIT_ASSERT(proster != NULL);
//print version information //print version information
int32 outCurVersion; int32 outCurVersion;
int32 outMinVersion; int32 outMinVersion;
long inAppVersion; long inAppVersion;
const char* info = roster->Version(&outCurVersion, &outMinVersion, inAppVersion); const char* info = proster->Version(&outCurVersion, &outMinVersion, inAppVersion);
printf("Default TranslatorRoster aquired. Version: %s\n", info); printf("Default TranslatorRoster aquired. Version: %s\n", info);
} }
/** /**
* Construct roster using different kinds of constructors * Construct proster using different kinds of constructors
*/ */
void TranslatorRosterTest::ConstructorTest() { void TranslatorRosterTest::ConstructorTest() {
//shared instance of TranslatorRoster //shared instance of TranslatorRoster
BTranslatorRoster* translator_roster; BTranslatorRoster* proster;
//Create TranslatorRoster using noargs constructor //Create TranslatorRoster using noargs constructor
translator_roster = new BTranslatorRoster(); NextSubTest();
proster = new BTranslatorRoster();
CPPUNIT_ASSERT(proster != NULL);
CPPUNIT_ASSERT(translator_roster != NULL); delete proster;
proster = NULL;
delete translator_roster;
//Create TranslatorRoster using BMessage constructor //Create TranslatorRoster using BMessage constructor
NextSubTest(); NextSubTest();
BMessage translator_message; BMessage translator_message;
translator_message.AddString("be:translator_path", "/boot/home/config/add-ons/Translators"); translator_message.AddString("be:translator_path", "/boot/home/config/add-ons/Translators");
translator_roster = new BTranslatorRoster(&translator_message); proster = new BTranslatorRoster(&translator_message);
CPPUNIT_ASSERT(translator_roster != NULL); CPPUNIT_ASSERT(proster != NULL);
// TODO: count the number of translators in the path above and compare
delete translator_roster; // TODO: that number to the translator count
delete proster;
proster = NULL;
} }
/** /**
@@ -127,9 +131,9 @@ void TranslatorRosterTest::ConstructorTest() {
*/ */
void TranslatorRosterTest::DefaultTest() { void TranslatorRosterTest::DefaultTest() {
//already done in Initialize - added for completeness sake //already done in Initialize - added for completeness sake
BTranslatorRoster* translator_roster = BTranslatorRoster::Default(); NextSubTest();
BTranslatorRoster* proster = BTranslatorRoster::Default();
CPPUNIT_ASSERT(translator_roster != NULL); CPPUNIT_ASSERT(proster != NULL);
} }
/** /**
@@ -140,28 +144,16 @@ void TranslatorRosterTest::DefaultTest() {
*/ */
void TranslatorRosterTest::InstantiateTest() { void TranslatorRosterTest::InstantiateTest() {
//shared instance of TranslatorRoster //shared instance of TranslatorRoster
BTranslatorRoster* translator_roster = NULL; BTranslatorRoster* proster = NULL;
//Create our BMessage //Create our BMessage
BMessage translator_message; BMessage translator_message;
//create BTranslator using empty message (must return NULL) //create BTranslator using empty message (must return NULL)
translator_roster = (BTranslatorRoster*) BTranslatorRoster::Instantiate(&translator_message); proster = (BTranslatorRoster*) BTranslatorRoster::Instantiate(&translator_message);
CPPUNIT_ASSERT(translator_roster == NULL); CPPUNIT_ASSERT(proster == NULL);
delete proster;
if(translator_roster != NULL){ proster = NULL;
delete translator_roster;
}
//create roster from message
/*
translator_message.AddString("be:translator_path", "/boot/home/config/add-ons/Translators/");
translator_roster = (BTranslatorRoster*) BTranslatorRoster::Instantiate(&translator_message);
CPPUNIT_ASSERT(translator_roster != NULL);
delete translator_roster;
*/
} }
/** /**
@@ -171,12 +163,15 @@ void TranslatorRosterTest::InstantiateTest() {
* @return B_OK if everything went ok, B_ERROR if not * @return B_OK if everything went ok, B_ERROR if not
*/ */
void TranslatorRosterTest::VersionTest() { void TranslatorRosterTest::VersionTest() {
int32 outCurVersion; int32 outCurVersion = 0;
int32 outMinVersion; int32 outMinVersion = 0;
long inAppVersion; const char* info = NULL;
const char* info = roster->Version(&outCurVersion, &outMinVersion, inAppVersion);
NextSubTest();
info = BTranslatorRoster::Version(&outCurVersion, &outMinVersion);
CPPUNIT_ASSERT(info != NULL); CPPUNIT_ASSERT(info != NULL);
CPPUNIT_ASSERT(outCurVersion > 0);
CPPUNIT_ASSERT(outMinVersion > 0);
} }
/** /**
@@ -187,7 +182,8 @@ void TranslatorRosterTest::VersionTest() {
*/ */
void TranslatorRosterTest::AddTranslatorsTest() { void TranslatorRosterTest::AddTranslatorsTest() {
//create basic translatorroster //create basic translatorroster
BTranslatorRoster* translator_roster = new BTranslatorRoster(); NextSubTest();
BTranslatorRoster* proster = new BTranslatorRoster();
//load wrong path (generate parse error) //load wrong path (generate parse error)
/* /*
@@ -195,28 +191,38 @@ void TranslatorRosterTest::AddTranslatorsTest() {
*/ */
//load correct path //load correct path
CPPUNIT_ASSERT(translator_roster->AddTranslators("/boot/home/config/add-ons/Translators/:/system/add-ons/Translators/") == B_OK); CPPUNIT_ASSERT(
proster->AddTranslators("/boot/home/config/add-ons/Translators/:/system/add-ons/Translators/") == B_OK);
NextSubTest(); NextSubTest();
int32 num_translators; int32 num_translators = 0;
translator_id* translators; translator_id* translators = NULL;
translator_roster->GetAllTranslators(&translators, &num_translators); proster->GetAllTranslators(&translators, &num_translators);
// TODO: count the number of files in all of the directories specified above
// TODO: and make certain that it matches num_translators
CPPUNIT_ASSERT(num_translators > 0); CPPUNIT_ASSERT(num_translators > 0);
delete[] translators;
delete [] translators; translators = NULL;
//delete and create new, this time don't specify path //delete and create new, this time don't specify path
NextSubTest(); NextSubTest();
delete translator_roster; delete proster;
translator_roster = new BTranslatorRoster(); proster = new BTranslatorRoster();
translator_roster->AddTranslators(); CPPUNIT_ASSERT(proster->AddTranslators() == B_OK);
translator_roster->GetAllTranslators(&translators, &num_translators);
NextSubTest();
CPPUNIT_ASSERT(proster->GetAllTranslators(&translators, &num_translators) == B_OK);
CPPUNIT_ASSERT(num_translators > 0); CPPUNIT_ASSERT(num_translators > 0);
delete [] translators; // TODO: compare the translators and number of translators from proster
delete translator_roster; // TODO: to the default translators from BTranslatorRoster::Default()
delete[] translators;
translators = NULL;
delete proster;
proster = NULL;
} }
/** /**
@@ -228,12 +234,47 @@ void TranslatorRosterTest::AddTranslatorsTest() {
void TranslatorRosterTest::ArchiveTest() { void TranslatorRosterTest::ArchiveTest() {
//archive default, and count entries (must be more than 1!) //archive default, and count entries (must be more than 1!)
BMessage translator_message; BMessage translator_message;
roster = BTranslatorRoster::Default(); BTranslatorRoster *pDefRoster = BTranslatorRoster::Default();
roster->Archive(&translator_message);
uint32 type; NextSubTest();
int32 count; CPPUNIT_ASSERT(pDefRoster != NULL);
NextSubTest();
CPPUNIT_ASSERT(pDefRoster->Archive(&translator_message) == B_OK);
CPPUNIT_ASSERT(translator_message.GetInfo("be:translator_path", &type, &count) == B_OK); // make sure instantiate makes an "exact" copy of the default translator
NextSubTest();
BTranslatorRoster *proster = NULL;
proster = (BTranslatorRoster*) BTranslatorRoster::Instantiate(&translator_message);
CPPUNIT_ASSERT(proster != NULL);
NextSubTest();
translator_id *pDefids = NULL, *pInstids = NULL;
int32 defcount = 0, instcount = 42;
CPPUNIT_ASSERT(pDefRoster->GetAllTranslators(&pDefids, &defcount) == B_OK);
NextSubTest();
CPPUNIT_ASSERT(proster->GetAllTranslators(&pInstids, &instcount) == B_OK);
NextSubTest();
CPPUNIT_ASSERT(defcount == instcount);
// make sure that every translator in the pDefRoster is in
// proster, and make certain that it is in there ONLY ONCE
NextSubTest();
for (int32 i = 0; i < defcount; i++) {
int32 matches;
matches = 0;
for (int32 k = 0; k < instcount; k++) {
if (pDefids[i] == pInstids[k])
matches++;
}
CPPUNIT_ASSERT(matches == 1);
}
delete[] pDefids;
pDefids = NULL;
delete[] pInstids;
pInstids = NULL;
} }
/** /**
@@ -243,12 +284,36 @@ void TranslatorRosterTest::ArchiveTest() {
* @return B_OK if everything went ok, B_ERROR if not * @return B_OK if everything went ok, B_ERROR if not
*/ */
void TranslatorRosterTest::GetAllTranslatorsTest() { void TranslatorRosterTest::GetAllTranslatorsTest() {
int32 num_translators;
translator_id* translators; int32 num_translators = 42;
roster = BTranslatorRoster::Default(); translator_id* translators = NULL;
roster->GetAllTranslators(&translators, &num_translators);
// no translators
NextSubTest();
BTranslatorRoster roster;
CPPUNINT_ASSERT(
roster.GetAllTranslators(&translators, &num_translators) == B_NO_ERROR);
NextSubTest();
CPPUNIT_ASSERT(translators == NULL);
NextSubTest();
CPPUNIT_ASSERT(num_translators == 0);
// default translators
NextSubTest();
num_translators = 42;
translators = NULL;
BTranslatorRoster *proster = BTranslatorRoster::Default();
CPPUNIT_ASSERT(
proster->GetAllTranslators(&translators, &num_translators) == B_NO_ERROR);
NextSubTest();
CPPUNIT_ASSERT(num_translators > 0); CPPUNIT_ASSERT(num_translators > 0);
NextSubTest();
for (int32 i = 0; i < num_translators; i++)
CPPUNIT_ASSERT(translators[i] > 0);
delete [] translators; delete [] translators;
} }
@@ -261,27 +326,27 @@ void TranslatorRosterTest::GetAllTranslatorsTest() {
*/ */
void TranslatorRosterTest::GetConfigurationMessageTest() { void TranslatorRosterTest::GetConfigurationMessageTest() {
BMessage translator_message; BMessage translator_message;
roster = BTranslatorRoster::Default(); BTranslatorRoster *proster = BTranslatorRoster::Default();
//get id for a translator (just use the first one) //get id for a translator (just use the first one)
unsigned long translatorid; unsigned long translatorid;
int32 num_translators; int32 num_translators;
translator_id* translators; translator_id* translators;
roster->GetAllTranslators(&translators, &num_translators); proster->GetAllTranslators(&translators, &num_translators);
translatorid = translators[0]; translatorid = translators[0];
delete [] translators; delete [] translators;
//get conf for invalid translator //get conf for invalid translator
CPPUNIT_ASSERT(roster->GetConfigurationMessage(-1, &translator_message) == B_NO_TRANSLATOR); CPPUNIT_ASSERT(proster->GetConfigurationMessage(-1, &translator_message) == B_NO_TRANSLATOR);
//get conf for invalid ioExtension (BMessage) //get conf for invalid ioExtension (BMessage)
NextSubTest(); NextSubTest();
CPPUNIT_ASSERT(roster->GetConfigurationMessage(translatorid, NULL) == B_BAD_VALUE); CPPUNIT_ASSERT(proster->GetConfigurationMessage(translatorid, NULL) == B_BAD_VALUE);
//get config for actual translator //get config for actual translator
NextSubTest(); NextSubTest();
CPPUNIT_ASSERT(roster->GetConfigurationMessage(translatorid, &translator_message) == B_OK); CPPUNIT_ASSERT(proster->GetConfigurationMessage(translatorid, &translator_message) == B_OK);
} }
/** /**
@@ -293,15 +358,15 @@ void TranslatorRosterTest::GetConfigurationMessageTest() {
void TranslatorRosterTest::GetInputFormatsTest() { void TranslatorRosterTest::GetInputFormatsTest() {
translator_id* translators; translator_id* translators;
int32 num_translators; int32 num_translators;
roster = BTranslatorRoster::Default(); BTranslatorRoster *proster = BTranslatorRoster::Default();
roster->GetAllTranslators(&translators, &num_translators); proster->GetAllTranslators(&translators, &num_translators);
CPPUNIT_ASSERT(num_translators > 0); CPPUNIT_ASSERT(num_translators > 0);
NextSubTest(); NextSubTest();
for (int32 i=0;i<num_translators;i++) { for (int32 i=0;i<num_translators;i++) {
const translation_format *fmts; const translation_format *fmts;
int32 num_fmts; int32 num_fmts;
roster->GetInputFormats(translators[i], &fmts, &num_fmts); proster->GetInputFormats(translators[i], &fmts, &num_fmts);
CPPUNIT_ASSERT(num_fmts >= 0); CPPUNIT_ASSERT(num_fmts >= 0);
} }
delete [] translators; delete [] translators;
@@ -316,15 +381,15 @@ void TranslatorRosterTest::GetInputFormatsTest() {
void TranslatorRosterTest::GetOutputFormatsTest() { void TranslatorRosterTest::GetOutputFormatsTest() {
translator_id* translators; translator_id* translators;
int32 num_translators; int32 num_translators;
roster = BTranslatorRoster::Default(); BTranslatorRoster *proster = BTranslatorRoster::Default();
roster->GetAllTranslators(&translators, &num_translators); proster->GetAllTranslators(&translators, &num_translators);
CPPUNIT_ASSERT(num_translators > 0); CPPUNIT_ASSERT(num_translators > 0);
NextSubTest(); NextSubTest();
for (int32 i=0;i<num_translators;i++) { for (int32 i=0;i<num_translators;i++) {
const translation_format *fmts; const translation_format *fmts;
int32 num_fmts; int32 num_fmts;
roster->GetOutputFormats(translators[i], &fmts, &num_fmts); proster->GetOutputFormats(translators[i], &fmts, &num_fmts);
CPPUNIT_ASSERT(num_fmts >= 0); CPPUNIT_ASSERT(num_fmts >= 0);
} }
delete [] translators; delete [] translators;
@@ -339,17 +404,17 @@ void TranslatorRosterTest::GetOutputFormatsTest() {
void TranslatorRosterTest::GetTranslatorInfoTest() { void TranslatorRosterTest::GetTranslatorInfoTest() {
translator_id* translators; translator_id* translators;
int32 num_translators; int32 num_translators;
roster = BTranslatorRoster::Default(); BTranslatorRoster *proster = BTranslatorRoster::Default();
roster->GetAllTranslators(&translators, &num_translators); proster->GetAllTranslators(&translators, &num_translators);
for (int32 i=0;i<num_translators;i++) { for (int32 i=0;i<num_translators;i++) {
const char* outName; const char* outName;
const char* outInfo; const char* outInfo;
int32 outVersion; int32 outVersion;
CPPUNIT_ASSERT(roster->GetTranslatorInfo(-1, &outName, &outInfo, &outVersion) == B_NO_TRANSLATOR); CPPUNIT_ASSERT(proster->GetTranslatorInfo(-1, &outName, &outInfo, &outVersion) == B_NO_TRANSLATOR);
NextSubTest(); NextSubTest();
CPPUNIT_ASSERT(roster->GetTranslatorInfo(translators[i], &outName, &outInfo, &outVersion) == B_OK); CPPUNIT_ASSERT(proster->GetTranslatorInfo(translators[i], &outName, &outInfo, &outVersion) == B_OK);
} }
delete [] translators; delete [] translators;
} }
@@ -372,23 +437,23 @@ void TranslatorRosterTest::GetTranslatorsTest() {
translator_info* info; translator_info* info;
int32 outCount; int32 outCount;
roster = BTranslatorRoster::Default(); BTranslatorRoster *proster = BTranslatorRoster::Default();
//get translator, specifying wrong args //get translator, specifying wrong args
NextSubTest(); NextSubTest();
CPPUNIT_ASSERT(roster->GetTranslators(&garbled, NULL, NULL, &outCount) == B_BAD_VALUE); CPPUNIT_ASSERT(proster->GetTranslators(&garbled, NULL, NULL, &outCount) == B_BAD_VALUE);
//get translator, specifying wrong args //get translator, specifying wrong args
NextSubTest(); NextSubTest();
CPPUNIT_ASSERT(roster->GetTranslators(&garbled, NULL, &info, NULL) == B_BAD_VALUE); CPPUNIT_ASSERT(proster->GetTranslators(&garbled, NULL, &info, NULL) == B_BAD_VALUE);
//get translator for garbled data //get translator for garbled data
NextSubTest(); NextSubTest();
CPPUNIT_ASSERT(roster->GetTranslators(&garbled, NULL, &info, &outCount) == B_NO_TRANSLATOR); CPPUNIT_ASSERT(proster->GetTranslators(&garbled, NULL, &info, &outCount) == B_NO_TRANSLATOR);
//get translator for image //get translator for image
NextSubTest(); NextSubTest();
CPPUNIT_ASSERT(roster->GetTranslators(&image, NULL, &info, &outCount) == B_OK); CPPUNIT_ASSERT(proster->GetTranslators(&image, NULL, &info, &outCount) == B_OK);
NextSubTest(); NextSubTest();
@@ -414,21 +479,21 @@ void TranslatorRosterTest::IdentifyTest() {
CPPUNIT_ASSERT(garbled.InitCheck() == B_OK); CPPUNIT_ASSERT(garbled.InitCheck() == B_OK);
translator_info* info = new translator_info; translator_info* info = new translator_info;
roster = BTranslatorRoster::Default(); BTranslatorRoster *proster = BTranslatorRoster::Default();
//get translator, specifying wrong args //get translator, specifying wrong args
NextSubTest(); NextSubTest();
CPPUNIT_ASSERT(roster->Identify(&garbled, NULL, NULL) == B_BAD_VALUE); CPPUNIT_ASSERT(proster->Identify(&garbled, NULL, NULL) == B_BAD_VALUE);
//get translator for garbled data //get translator for garbled data
NextSubTest(); NextSubTest();
CPPUNIT_ASSERT(roster->Identify(&garbled, NULL, info) == B_NO_TRANSLATOR); CPPUNIT_ASSERT(proster->Identify(&garbled, NULL, info) == B_NO_TRANSLATOR);
//get translator for image //get translator for image
NextSubTest(); NextSubTest();
delete info; delete info;
info = new translator_info; info = new translator_info;
CPPUNIT_ASSERT(roster->Identify(&image, NULL, info) == B_OK); CPPUNIT_ASSERT(proster->Identify(&image, NULL, info) == B_OK);
delete info; delete info;
} }
@@ -449,9 +514,9 @@ void TranslatorRosterTest::MakeConfigurationViewTest() {
BView* view; BView* view;
translator_id* translators; translator_id* translators;
int32 num_translators; int32 num_translators;
roster = BTranslatorRoster::Default(); BTranslatorRoster *proster = BTranslatorRoster::Default();
roster->GetAllTranslators(&translators, &num_translators); proster->GetAllTranslators(&translators, &num_translators);
roster->MakeConfigurationView(translators[0], NULL, &view, &extent); proster->MakeConfigurationView(translators[0], NULL, &view, &extent);
//check validity //check validity
CPPUNIT_ASSERT(extent.IsValid() == true); CPPUNIT_ASSERT(extent.IsValid() == true);
@@ -488,16 +553,16 @@ void TranslatorRosterTest::TranslateTest() {
//get default translators //get default translators
NextSubTest(); NextSubTest();
roster = BTranslatorRoster::Default(); BTranslatorRoster *proster = BTranslatorRoster::Default();
CPPUNIT_ASSERT(roster != NULL); CPPUNIT_ASSERT(proster != NULL);
//translate to generic //translate to generic
NextSubTest(); NextSubTest();
CPPUNIT_ASSERT(roster->Translate(&input, NULL, NULL, &temp, B_TRANSLATOR_BITMAP) == B_OK); CPPUNIT_ASSERT(proster->Translate(&input, NULL, NULL, &temp, B_TRANSLATOR_BITMAP) == B_OK);
//translate to specific //translate to specific
NextSubTest(); NextSubTest();
CPPUNIT_ASSERT(roster->Translate(&temp, NULL, NULL, &output, B_PNG_FORMAT) == B_OK); CPPUNIT_ASSERT(proster->Translate(&temp, NULL, NULL, &output, B_PNG_FORMAT) == B_OK);
} }
int main() { int main() {
@@ -62,8 +62,5 @@ public:
void IdentifyTest(); void IdentifyTest();
void MakeConfigurationViewTest(); void MakeConfigurationViewTest();
void TranslateTest(); void TranslateTest();
private:
/** default roster used when performing tests */
BTranslatorRoster* roster;
}; };
#endif #endif