1BRoster() 2none 3 4bool IsRunning(const char *signature) const 5case 1: signature is NULL => 6 Should return false. 7case 2: signature is not NULL, but no app with this signature is running => 8 Should return false. 9case 3: signature is not NULL and an (two) app(s) with this signature is (are) 10 running; quit one; quit the second one => 11 Should return true; true; false. 12 13bool IsRunning(entry_ref *ref) const 14case 1: ref is NULL => 15 Should return false. 16case 2: ref is not NULL, but no app with this ref is running => 17 Should return false. 18case 3: ref is not NULL and an (two) app(s) with this ref is (are) 19 running; quit one; quit the second one => 20 Should return true; true; false. 21 22team_id TeamFor(const char *signature) const 23case 1: signature is NULL => 24 Should return B_BAD_VALUE. 25case 2: signature is not NULL, but no app with this signature is running => 26 Should return B_ERROR. 27case 3: signature is not NULL and an (two) app(s) with this signature is (are) 28 running; quit one; quit the second one => 29 Should return the ID of one of the teams; the ID of the second team; 30 B_ERROR. 31 32team_id TeamFor(entry_ref *ref) const 33case 1: ref is NULL => 34 Should return B_BAD_VALUE. 35case 2: ref is not NULL, but no app with this ref is running => 36 Should return B_ERROR. 37case 3: ref is not NULL and an (two) app(s) with this ref is (are) 38 running; quit one; quit the second one => 39 Should return the ID of one of the teams; the ID of the second team; 40 B_ERROR. 41 42status_t GetAppInfo(const char *signature, app_info *info) const 43case 1: signature is NULL or info is NULL => 44 Should return B_BAD_VALUE. 45case 2: signature/info are not NULL, but no app with this signature is 46 running => 47 Should return B_ERROR. 48case 3: signature/info are not NULL and an (two) app(s) with this signature 49 is (are) running; quit one; quit the second one => 50 Should 51 - fill the app info with the data of one of the apps and return B_OK; 52 - fill the app info with the data of the second apps and return B_OK; 53 - return B_ERROR. 54 55status_t GetAppInfo(entry_ref *ref, app_info *info) const 56case 1: ref is NULL or info is NULL => 57 Should return B_BAD_VALUE. 58case 2: ref/info are not NULL, but no app with this ref is running => 59 Should return B_ERROR. 60case 3: ref/info are not NULL and an (two) app(s) with this ref 61 is (are) running; quit one; quit the second one => 62 Should 63 - fill the app info with the data of one of the apps and return B_OK; 64 - fill the app info with the data of the second apps and return B_OK; 65 - return B_ERROR. 66 67status_t GetRunningAppInfo(team_id team, app_info *info) const 68case 1: info is NULL => 69 Should return B_BAD_VALUE. 70case 2: info is not NULL, but no app with the team ID is running => 71 Should return B_BAD_TEAM_ID, if team >= 0, B_ERROR otherwise. 72case 3: info is not NULL, and an app with the team ID is running => 73 Should fill the app info and return B_OK. 74 75void GetAppList(BList *teamIDList) const 76case 1: teamIDList is NULL => 77 Should do nothing. 78case 2: teamIDList is not NULL and not empty => 79 Should append the team IDs of all running apps to teamIDList. 80 81void GetAppList(const char *signature, BList *teamIDList) const 82case 1: signature or teamIDList are NULL => 83 Should do nothing/should not modify teamIDList. 84case 2: teamIDList is not NULL and not empty, signature is not NULL, but no 85 app with this signature is running => 86 Should not modify teamIDList. 87case 3: teamIDList is not NULL and not empty, signature is not NULL and 88 app(s) with this signature is (are) running => 89 Should append the team IDs of all running apps with the supplied 90 signature to teamIDList. 91 92status_t FindApp() const: common cases 93case 1: uninstalled type mimeType => 94 Should return B_LAUNCH_FAILED_APP_NOT_FOUND. 95case 2: installed type mimeType, no preferred app => 96 Should return B_LAUNCH_FAILED_NO_PREFERRED_APP. 97case 3: installed type mimeType, preferred app, app type not installed, 98 app has no signature => 99 Should return B_LAUNCH_FAILED_APP_NOT_FOUND. 100case 4: installed type mimeType, preferred app, app type not installed, 101 app has signature => 102 Should return B_OK and set the ref to refer to the application's 103 executable. Should install the app type and set the app hint on it. 104case 5: installed type mimeType, preferred app, app type installed, 105 app has signature => 106 Should return B_OK and set the ref to refer to the application's 107 executable. Should set the app hint on the app type. 108case 6: installed type mimeType, preferred app, app type installed, 109 app has signature, app has no execute permission => 110 Should return B_OK and set the ref to refer to the application's 111 executable. Should set the app hint on the app type. 112case 7: installed type mimeType, preferred app, app type installed, 113 two apps have the signature => 114 Should return B_OK and set the ref to refer to the application 115 executable with the most recent modification time. Should set the app 116 hint on the app type. 117case 8: installed type mimeType, preferred app, app type installed, 118 two apps have the signature, one has a version info, the other one is 119 newer => 120 Should return B_OK and set the ref to refer to the application 121 executable with version info. Should set the app hint on the app type. 122case 9: installed type mimeType, preferred app, app type installed, 123 two apps have the signature, both apps have a version info => 124 Should return B_OK and set the ref to refer to the application 125 executable with the greater version. Should set the app 126 hint on the app type. 127case 10:installed type mimeType, preferred app, app type installed, 128 preferred app type has an app hint that points to an app with a 129 different signature => 130 Should return B_OK and set the ref to refer to the application's 131 executable. Should remove the incorrect app hint on the app type. 132 (OBOS: Should set the correct app hint. 133 Don't even return the wrong app?) 134case 11:installed type mimeType, preferred app, app type installed, 135 preferred app type has an app hint pointing to void, 136 a differently named app with this signature exists => 137 Should return B_OK and set the ref to refer to the application's 138 executable. (not R5: Should update the app hint on the app type?) 139case 12:mimeType is app signature, not installed => 140 Should return B_OK and set the ref to refer to the application 141 executable. Should set the app hint on the app type. 142case 13:mimeType is installed, but has no preferred application, 143 super type has preferred application => 144 Should return B_OK and set the ref to refer to the application 145 executable associated with the preferred app of the supertype. 146 Should set the app hint on the app type. 147case 14:installed type mimeType, preferred app, app type not installed, 148 app has signature, app is trash => 149 Should return B_LAUNCH_FAILED_APP_IN_TRASH. 150case 15:installed type mimeType, preferred app, app type installed, 151 preferred app type has an app hint pointing to void, 152 no app with this signature exists => 153 Should return B_LAUNCH_FAILED_APP_NOT_FOUND and unset the app type's 154 app hint. 155case 16:installed type mimeType, preferred app, app type installed, 156 preferred app type has an app hint pointing to a cyclic link, 157 no app with this signature exists => 158 R5: Should return B_OK and set the ref to refer to the link. 159 OBOS: Should return B_LAUNCH_FAILED_APP_NOT_FOUND and unset the app 160 type's app hint. 161 162status_t FindApp(const char *mimeType, entry_ref *app) const 163case 1: mimeType or app are NULL => 164 Should return B_BAD_VALUE. 165case 2: mimeType is invalid => 166 Should return B_BAD_VALUE. 167case 3: common tests (all) 168 169status_t FindApp(entry_ref *ref, entry_ref *app) const 170case 1: ref or app are NULL => 171 Should return B_BAD_VALUE. 172case 2: ref doesn't refer to an existing entry => 173 Should return B_ENTRY_NOT_FOUND. 174case 3: ref is valid, file has type and preferred app, preferred app is in 175 trash => 176 Should return B_LAUNCH_FAILED_APP_IN_TRASH. 177case 4: ref is valid, file has type and preferred app, app type is not 178 installed, app exists and has signature => 179 Should return B_OK and set the ref to refer to the file's (not the 180 file type's) preferred application's executable. Should install the 181 app type and set the app hint on it. 182case 5: ref is valid, file has no type, but preferred app, app type is not 183 installed, app exists and has signature => 184 Should return B_OK and set the ref to refer to the application's 185 executable. Should install the app type and set the app hint on it. 186case 6: ref is valid, file has type and app hint, the type's preferred app 187 type is not installed, app exists and has signature => 188 Should return B_OK and set the ref to refer to the file type's 189 preferred application's executable. Should install the app type and 190 set the app hint on it. 191case 7: ref is valid, file has type, the type's preferred app 192 type is not installed, app exists and has signature, file is 193 executable => 194 Should return B_OK and set the ref to refer to the file. 195 Should not set the app hint on the app or file type (Why?). 196case 8: ref is valid and refers to a link to a file, file has type, 197 the type's preferred app type is not installed, 198 app exists and has signature => 199 Should return B_OK and set the ref to refer to the file type's 200 preferred application's executable. Should install the app type and 201 set the app hint on it. 202case 9: ref is valid, file has type, 203 common cases 1-14 204case 10:ref is valid, file has no type, sniffing results in a type, 205 type is set on file, 206 common cases 2-14 207case 11:ref is valid and refers to a cyclic link => 208 Should return B_LAUNCH_FAILED_NO_RESOLVE_LINK. 209case 12:ref is valid and refers to a link to void => 210 Should return B_LAUNCH_FAILED_NO_RESOLVE_LINK. 211 212status_t Launch() const: common cases 213case 1: uninstalled type mimeType => 214 Should return B_LAUNCH_FAILED_APP_NOT_FOUND. 215case 2: installed type mimeType, no preferred app => 216 Should return B_LAUNCH_FAILED_NO_PREFERRED_APP. 217case 3: installed type mimeType, preferred app, app type not installed, 218 app has no signature => 219 Should return B_LAUNCH_FAILED_APP_NOT_FOUND. 220case 4: installed type mimeType, preferred app, app type not installed, 221 app has signature => 222 Should return B_OK and set team to the ID of the team running the 223 application's executable. Should install the app type and set the 224 app hint on it. 225case 5: installed type mimeType, preferred app, app type installed, 226 app has signature => 227 Should return B_OK and set team to the ID of the team running the 228 application's executable. Should set the app hint on the app type. 229case 6: installed type mimeType, preferred app, app type installed, 230 app has signature, app has no execute permission => 231 Should return B_OK and set team to the ID of the team running the 232 application's executable. Should set the app hint on the app type. 233case 7: installed type mimeType, preferred app, app type installed, 234 two apps have the signature => 235 Should return B_OK and set team to the ID of the team running the 236 application executable with the most recent modification time. 237 Should set the app hint on the app type. 238case 8: installed type mimeType, preferred app, app type installed, 239 two apps have the signature, one has a version info, the other one is 240 newer => 241 Should return B_OK and set team to the ID of the team running the 242 application executable with version info. Should set the app hint 243 on the app type. 244case 9: installed type mimeType, preferred app, app type installed, 245 two apps have the signature, both apps have a version info => 246 Should return B_OK and set team to the ID of the team running the 247 application executable with the greater version. Should set the app 248 hint on the app type. 249case 10:installed type mimeType, preferred app, app type installed, 250 preferred app type has an app hint that points to an app with a 251 different signature => 252 Should return B_OK and set team to the ID of the team running the 253 application's executable. Should remove the incorrect app hint on 254 the app type. 255 (OBOS: Should set the correct app hint. 256 Don't even run the wrong app?) 257case 11:installed type mimeType, preferred app, app type installed, 258 preferred app type has an app hint pointing to void, 259 a differently named app with this signature exists => 260 Should return B_OK and set team to the ID of the team running the 261 application's executable. 262 (not R5: Should update the app hint on the app type?) 263case 12:mimeType is app signature, not installed => 264 Should return B_OK and set team to the ID of the team running the 265 application executable. Should set the app hint on the app type. 266case 13:mimeType is installed, but has no preferred application, 267 super type has preferred application => 268 Should return B_OK and set team to the ID of the team running the 269 application executable associated with the preferred app of the 270 supertype. Should set the app hint on the app type. 271case 14:installed type mimeType, preferred app, app type not installed, 272 app has signature, app is trash => 273 Should return B_LAUNCH_FAILED_APP_IN_TRASH. 274case 15:installed type mimeType, preferred app, app type not installed, 275 app has signature, team is NULL => 276 Should return B_OK and set team to the ID of the team running the 277 application's executable. Should install the app type and set the 278 app hint on it. 279case 16:launch the app two times: B_MULTIPLE_LAUNCH | B_ARGV_ONLY => 280 first app: ArgvReceived(), ReadyToRun(), QuitRequested() 281 second app: ArgvReceived(), ReadyToRun(), QuitRequested() 282case 17:launch the app two times: B_MULTIPLE_LAUNCH => 283 first app: {Message,Argv,Refs}Received()*, ReadyToRun(), 284 QuitRequested() 285 second app: {Message,Argv,Refs}Received()*, ReadyToRun(), 286 QuitRequested() 287case 18:launch the app two times: B_SINGLE_LAUNCH | B_ARGV_ONLY => 288 first app: ArgvReceived(), ReadyToRun(), QuitRequested() 289 (No second ArgvReceived()!) 290 second app: Launch() fails with B_ALREADY_RUNNING 291case 19:launch the app two times: B_SINGLE_LAUNCH => 292 first app: {Message,Argv,Refs}Received()*, ReadyToRun(), 293 {Message,Argv,Refs}Received()*, QuitRequested() 294 second app: Launch() fails with B_ALREADY_RUNNING 295case 20:launch two apps with the same signature: 296 B_SINGLE_LAUNCH | B_ARGV_ONLY => 297 first app: ArgvReceived(), ReadyToRun(), QuitRequested() 298 second app: ArgvReceived(), ReadyToRun(), QuitRequested() 299case 21:launch two apps with the same signature: B_SINGLE_LAUNCH => 300 first app: {Message,Argv,Refs}Received()*, ReadyToRun(), 301 QuitRequested() 302 second app: {Message,Argv,Refs}Received()*, ReadyToRun(), 303 QuitRequested() 304case 22:launch the app two times: B_EXCLUSIVE_LAUNCH | B_ARGV_ONLY => 305 first app: ArgvReceived(), ReadyToRun(), QuitRequested() 306 (No second ArgvReceived()!) 307 second app: Launch() fails with B_ALREADY_RUNNING 308case 23:launch the app two times: B_EXCLUSIVE_LAUNCH => 309 first app: {Message,Argv,Refs}Received()*, ReadyToRun(), 310 {Message,Argv,Refs}Received()*, QuitRequested() 311 second app: Launch() fails with B_ALREADY_RUNNING 312case 24:launch two apps with the same signature: 313 B_EXCLUSIVE_LAUNCH | B_ARGV_ONLY => 314 first app: ArgvReceived(), ReadyToRun(), QuitRequested() 315 (No second ArgvReceived()!) 316 second app: Launch() fails with B_ALREADY_RUNNING 317case 25:launch two apps with the same signature: B_EXCLUSIVE_LAUNCH => 318 first app: {Message,Argv,Refs}Received()*, ReadyToRun(), 319 {Message,Argv,Refs}Received()*, QuitRequested() 320 second app: Launch() fails with B_ALREADY_RUNNING 321case 26:launch two apps with the same signature: 322 first: B_EXCLUSIVE_LAUNCH, 323 second: B_EXCLUSIVE_LAUNCH | B_ARGV_ONLY => 324 first app: {Message,Argv,Refs}Received()*, ReadyToRun(), 325 QuitRequested() 326 second app: Launch() fails with B_ALREADY_RUNNING 327case 27:launch two apps with the same signature: 328 first: B_EXCLUSIVE_LAUNCH | B_ARGV_ONLY, 329 second: B_EXCLUSIVE_LAUNCH => 330 first app: ArgvReceived(), ReadyToRun(), QuitRequested() 331 (No second ArgvReceived()!) 332 second app: Launch() fails with B_ALREADY_RUNNING 333case 28:installed type mimeType, preferred app, app type installed, 334 preferred app type has an app hint pointing to void, 335 no app with this signature exists => 336 Should return B_LAUNCH_FAILED_APP_NOT_FOUND and unset the app type's 337 app hint. 338case 29:installed type mimeType, preferred app, app type installed, 339 preferred app type has an app hint pointing to a cyclic link, 340 no app with this signature exists => 341 Should return 342 OBOS: B_LAUNCH_FAILED_APP_NOT_FOUND and unset the app type's app hint. 343 R5: B_ENTRY_NOT_FOUND or B_LAUNCH_FAILED_NO_RESOLVE_LINK. 344case 30:installed type mimeType, preferred app, app type installed, 345 preferred app type has an app hint that points to an app without a 346 signature, app will pass a different signature to the 347 BApplication constructor => 348 Should return B_OK and set team to the ID of the team running the 349 application's executable. Should remove the incorrect app hint on 350 the app type. BRoster::GetRunningAppInfo() should return an app_info 351 with the signature passed to the BApplication constructor. 352 353status_t Launch(const char *mimeType, BMessage *initialMsg, 354 team_id *appTeam) const 355case 1: mimeType is NULL => 356 Should return B_BAD_VALUE. 357case 2: mimeType is invalid => 358 Should return B_BAD_VALUE. 359case 3: common cases (all) 360case 4: installed type mimeType, preferred app, app type not installed, 361 app has signature, NULL initialMsg => 362 Should return B_OK and set team to the ID of the team running the 363 application's executable. Should install the app type and set the 364 app hint on it. 365 366 367status_t Launch(const char *mimeType, BList *messageList, 368 team_id *appTeam) const 369case 1: mimeType is NULL => 370 Should return B_BAD_VALUE. 371case 2: mimeType is invalid => 372 Should return B_BAD_VALUE. 373case 3: common cases (all) 374case 4: installed type mimeType, preferred app, app type not installed, 375 app has signature, NULL messageList => 376 Should return B_OK and set team to the ID of the team running the 377 application's executable. Should install the app type and set the 378 app hint on it. 379case 5: installed type mimeType, preferred app, app type not installed, 380 app has signature, empty messageList => 381 Should return B_OK and set team to the ID of the team running the 382 application's executable. Should install the app type and set the 383 app hint on it. 384 385status_t Launch(const char *mimeType, int argc, char **args, 386 team_id *appTeam) const 387case 1: mimeType is NULL or argc > 0 and args is NULL => 388 Should return B_BAD_VALUE. 389case 2: mimeType is invalid => 390 Should return B_BAD_VALUE. 391case 3: common cases (all) 392case 4: installed type mimeType, preferred app, app type not installed, 393 app has signature, NULL args, argc is 0 => 394 Should return B_OK and set team to the ID of the team running 395 the application's executable. Should install the app type and set the 396 app hint on it. 397 398status_t Launch(const entry_ref *ref, const BMessage *initialMessage, 399 team_id *app_team) const 400case 1: ref is NULL => 401 Should return B_BAD_VALUE. 402case 2: ref doesn't refer to an existing entry => 403 Should return B_ENTRY_NOT_FOUND. 404case 3: ref is valid, file has type and preferred app, app type is not 405 installed, app exists and has signature => 406 Should return B_OK and set team to the ID of the team running the 407 file's (not the file type's) preferred application's executable. 408 Should install the app type and set the app hint on it. 409case 4: ref is valid, file has no type, but preferred app, app type is not 410 installed, app exists and has signature => 411 Should return B_OK and set team to the ID of the team running the 412 application's executable. Should install the app type and set the app 413 hint on it. 414case 5: ref is valid, file has type and app hint, the type's preferred app 415 type is not installed, app exists and has signature => 416 Should return B_OK and set team to the ID of the team running the file 417 type's preferred application's executable. Should install the app 418 type and set the app hint on it. 419case 6: ref is valid, file has type, the type's preferred app 420 type is not installed, app exists and has signature, file has 421 executable permission, but is not executable => 422 Should return B_LAUNCH_FAILED_EXECUTABLE. 423 Should not set the app hint on the app or file type. 424case 7: ref is valid and refers to a link to a file, file has type, 425 the type's preferred app type is not installed, 426 app exists and has signature => 427 Should return B_OK and set team to the ID of the team running the file 428 type's preferred application's executable. Should install the app 429 type and set the app hint on it. 430case 8: ref is valid, file has type, 431 common cases 1-14 432case 9: ref is valid, file has no type, sniffing results in a type, 433 type is set on file, 434 common cases 2-14 435case 10:ref is valid, file has no type, but preferred app, app type is not 436 installed, app exists and has signature, NULL initialMessage => 437 Should return B_OK and set team to the ID of the team running the 438 application's executable. Should install the app type and set the app 439 hint on it. 440case 11:ref is valid and refers to a cyclic link => 441 Should return B_LAUNCH_FAILED_NO_RESOLVE_LINK. 442case 12:ref is valid and refers to a link to void => 443 Should return B_LAUNCH_FAILED_NO_RESOLVE_LINK. 444case 13:ref is valid and refers to an executable without signature => 445 Should return B_OK and set team to the ID of the team running the 446 application's executable. 447 448 449status_t Launch(const entry_ref *ref, const BList *messageList, 450 team_id *appTeam) const 451case 1: ref is NULL => 452 Should return B_BAD_VALUE. 453case 2: ref doesn't refer to an existing entry => 454 Should return B_ENTRY_NOT_FOUND. 455case 3: ref is valid, file has type and preferred app, app type is not 456 installed, app exists and has signature => 457 Should return B_OK and set team to the ID of the team running the 458 file's (not the file type's) preferred application's executable. 459 Should install the app type and set the app hint on it. 460case 4: ref is valid, file has no type, but preferred app, app type is not 461 installed, app exists and has signature => 462 Should return B_OK and set team to the ID of the team running the 463 application's executable. Should install the app type and set the app 464 hint on it. 465case 5: ref is valid, file has type and app hint, the type's preferred app 466 type is not installed, app exists and has signature => 467 Should return B_OK and set team to the ID of the team running the file 468 type's preferred application's executable. Should install the app 469 type and set the app hint on it. 470case 6: ref is valid, file has type, the type's preferred app 471 type is not installed, app exists and has signature, file has 472 executable permission, but is not executable => 473 Should return B_LAUNCH_FAILED_EXECUTABLE. 474 Should not set the app hint on the app or file type. 475case 7: ref is valid and refers to a link to a file, file has type, 476 the type's preferred app type is not installed, 477 app exists and has signature => 478 Should return B_OK and set team to the ID of the team running the file 479 type's preferred application's executable. Should install the app 480 type and set the app hint on it. 481case 8: ref is valid, file has type, 482 common cases 1-14 483case 9: ref is valid, file has no type, sniffing results in a type, 484 type is set on file, 485 common cases 2-14 486case 10:ref is valid, file has no type, but preferred app, app type is not 487 installed, app exists and has signature, NULL messageList => 488 Should return B_OK and set team to the ID of the team running the 489 application's executable. Should install the app type and set the app 490 hint on it. 491case 11:ref is valid, file has no type, but preferred app, app type is not 492 installed, app exists and has signature, empty messageList => 493 Should return B_OK and set team to the ID of the team running the 494 application's executable. Should install the app type and set the app 495 hint on it. 496case 12:ref is valid and refers to a cyclic link => 497 Should return B_LAUNCH_FAILED_NO_RESOLVE_LINK. 498case 13:ref is valid and refers to a link to void => 499 Should return B_LAUNCH_FAILED_NO_RESOLVE_LINK. 500case 14:ref is valid and refers to an executable without signature => 501 Should return B_OK and set team to the ID of the team running the 502 application's executable. 503 504status_t Launch(const entry_ref *ref, int argc, const char * const *args, 505 team_id *appTeam) const 506case 1: ref is NULL => 507 Should return B_BAD_VALUE. 508case 2: ref doesn't refer to an existing entry => 509 Should return B_ENTRY_NOT_FOUND. 510case 3: ref is valid, file has type and preferred app, app type is not 511 installed, app exists and has signature => 512 Should return B_OK and set team to the ID of the team running the 513 file's (not the file type's) preferred application's executable. 514 Should install the app type and set the app hint on it. 515 ref is converted to path and added as additional argv. 516case 4: ref is valid, file has no type, but preferred app, app type is not 517 installed, app exists and has signature => 518 Should return B_OK and set team to the ID of the team running the 519 application's executable. Should install the app type and set the app 520 hint on it. 521 ref is converted to path and added as additional argv. 522case 5: ref is valid, file has type and app hint, the type's preferred app 523 type is not installed, app exists and has signature => 524 Should return B_OK and set team to the ID of the team running the file 525 type's preferred application's executable. Should install the app 526 type and set the app hint on it. 527 ref is converted to path and added as additional argv. 528case 6: ref is valid, file has type, the type's preferred app 529 type is not installed, app exists and has signature, file has 530 executable permission, but is not executable => 531 Should return B_LAUNCH_FAILED_EXECUTABLE. 532 Should not set the app hint on the app or file type. 533case 7: ref is valid and refers to a link to a file, file has type, 534 the type's preferred app type is not installed, 535 app exists and has signature => 536 Should return B_OK and set team to the ID of the team running the file 537 type's preferred application's executable. Should install the app 538 type and set the app hint on it. 539 ref is converted to path and added as additional argv. 540case 8: ref is valid, file has type, 541 common cases 1-14 542 (ref is converted to path and added as additional argv.) 543case 9: ref is valid, file has no type, sniffing results in a type, 544 type is set on file, 545 common cases 2-14 546 (ref is converted to path and added as additional argv.) 547case 10:ref is valid, file has no type, but preferred app, app type is not 548 installed, app exists and has signature, NULL args, argc is 0 => 549 Should return B_OK and set team to the ID of the team running the 550 application's executable. Should install the app type and set the app 551 hint on it. argv are ignored. 552case 11:ref is valid, file has no type, but preferred app, app type is not 553 installed, app exists and has signature, NULL args, argc > 0 => 554 Should return B_OK and set team to the ID of the team running the 555 application's executable. Should install the app type and set the app 556 hint on it. argv are ignored. 557case 12:ref is valid and refers to a cyclic link => 558 Should return B_LAUNCH_FAILED_NO_RESOLVE_LINK. 559case 13:ref is valid and refers to a link to void => 560 Should return B_LAUNCH_FAILED_NO_RESOLVE_LINK. 561case 14:ref is valid and refers to an executable without signature => 562 Should return B_OK and set team to the ID of the team running the 563 application's executable. 564 565