diff --git a/src/tests/kits/app/broster/BRosterCases b/src/tests/kits/app/broster/BRosterCases index b978a79ef3..75c0b53cc4 100644 --- a/src/tests/kits/app/broster/BRosterCases +++ b/src/tests/kits/app/broster/BRosterCases @@ -88,3 +88,77 @@ case 3: teamIDList is not NULL and not empty, signature is not NULL and app(s) with this signature is (are) running => Should append the team IDs of all running apps with the supplied signature to teamIDList. + +status_t FindApp(const char *mimeType, entry_ref *app) const +case 1: mimeType or app are NULL => + Should return B_BAD_VALUE. +case 2: mimeType is invalid => + Should return B_BAD_VALUE. +case 3: uninstalled type mimeType => + Should return B_LAUNCH_FAILED_APP_NOT_FOUND. +case 4: installed type mimeType, no preferred app => + Should return B_LAUNCH_FAILED_NO_PREFERRED_APP. +case 5: installed type mimeType, preferred app, app type not installed, + app has no signature => + Should return B_LAUNCH_FAILED_APP_NOT_FOUND. +case 6: installed type mimeType, preferred app, app type not installed, + app has signature => + Should return B_OK and set the ref to refer to the application's + executable. Should install the app type and set the app hint on it. +case 7: installed type mimeType, preferred app, app type installed, + app has signature => + Should return B_OK and set the ref to refer to the application's + executable. Should set the app hint on the app type. +case 8: installed type mimeType, preferred app, app type installed, + app has signature, app has no execute permission => + Should return B_OK and set the ref to refer to the application's + executable. Should set the app hint on the app type. +case 9: installed type mimeType, preferred app, app type installed, + two apps have the signature => + Should return B_OK and set the ref to refer to the application + executable with the most recent modification time. Should set the app + hint on the app type. +case 10:installed type mimeType, preferred app, app type installed, + two apps have the signature, one has a version info, the other one is + newer => + Should return B_OK and set the ref to refer to the application + executable with version info. Should set the app hint on the app type. +case 11:installed type mimeType, preferred app, app type installed, + two apps have the signature, both apps have a version info => + Should return B_OK and set the ref to refer to the application + executable with the greater version. Should set the app + hint on the app type. +case 12:installed type mimeType, preferred app, app type installed, + preferred app type has an app hint that points to an app with a + different signature => + Should return B_OK and set the ref to refer to the application's + executable. Should remove the incorrect app hint on the app type. + (OBOS: Should set the correct app hint. + Don't even return the wrong app?) +case 13:installed type mimeType, preferred app, app type installed, + preferred app type has an app hint pointing to void, + a differently named app with this signature exists => + Should return B_OK and set the ref to refer to the application's + executable. (not R5: Should update the app hint on the app type?) +case 14:mimeType is app signature, not installed => + Should return B_OK and set the ref to refer to the application + executable. Should set the app hint on the app type. +case 15:mimeType is installed, but has no preferred application, + super type has preferred application => + Should return B_OK and set the ref to refer to the application + executable associated with the preferred app of the supertype. + Should set the app hint on the app type. + +status_t FindApp(entry_ref *ref, entry_ref *app) const +case 1: ref or app are NULL => + Should return B_BAD_VALUE. +case 2: ref doesn't refer to an existing entry => + Should return B_ENTRY_NOT_FOUND. +cases: ref is valid, file has no type, sniffing results in a type, + type is set on file, + FindApp(const char*, entry_ref*) cases 2-15 +cases: ref is valid, file has type, + FindApp(const char*, entry_ref*) cases 2-15 +INVESTIGATE: NodeInfo::GetAppHint()/GetPreferredApp()/ + BMimeType::GetPreferredApp() + diff --git a/src/tests/kits/app/broster/RosterTest.cpp b/src/tests/kits/app/broster/RosterTest.cpp index 2491ee1a16..8753164a9e 100644 --- a/src/tests/kits/app/broster/RosterTest.cpp +++ b/src/tests/kits/app/broster/RosterTest.cpp @@ -1,4 +1,5 @@ #include "../common.h" +#include "FindAppTester.h" #include "GetAppInfoTester.h" #include "GetAppListTester.h" #include "IsRunningTester.h" @@ -8,6 +9,7 @@ CppUnit::Test* RosterTestSuite() { CppUnit::TestSuite *testSuite = new CppUnit::TestSuite(); + testSuite->addTest(FindAppTester::Suite()); testSuite->addTest(GetAppInfoTester::Suite()); testSuite->addTest(GetAppListTester::Suite()); testSuite->addTest(IsRunningTester::Suite());