1BHandler(const char* name)
2case 1:	name is non-NULL; BHandler::Name() should return that name
3case 2: name is NULL; BHandler::Name() should return NULL
4
5BHandler(BMessage* archive)
6case 1: if archive has field "_name", BHandler::Name() should return that name
7case 2: if archive has no field "_name", BHandler::Name() should return NULL
8case 3: archive is NULL
9
10Archive(BMessage *data, bool deep = true)
11case 1: data is NULL, deep is false
12case 2: data is NULL, deep is true
13case 3: data is valid, deep is false
14case 4: data is valid, deep is true
15
16Instantiate(BMessage *data)
17case 1: data is NULL
18case 2: data is valid, has field "_name"; BHandler::Name() should return that name
19case 3: data is valid, has no field "_name"; BHandler::Name() should return NULL
20
21SetName(const char *name)
22Name()
23case 1: name is NULL; BHandler::Name() should return NULL
24case 2: name is valid; BHandler::Name should return that name
25
26Perform(perform_code d, void *arg)
27case 1: feed meaningless data, should return B_ERROR
28
29IsWatched()
30case 1: No added watchers; should return false
31case 2: Add watcher, should return true; remove watcher, should return false
32
33Looper()
34case 1: Not added to a BLooper, should return NULL
35case 2: Added to a BLooper, should return that BLooper;
36		remove from BLooper, should return NULL
37
38SetNextHandler(BHandler *handler)
39NextHandler()
40This BHandler and handler must be part of the same chain (i.e., belong to the
41same BLooper) and the BLooper they belong to must be locked.
42case 1: Handler1 and Handler2 do not belong to a BLooper
43case 2: Handler1 belongs to a BLooper (which is unlocked), Handler2 does not
44case 3: Handler1 belongs to a BLooper (which is locked), Handler2 does not
45case 4: Handler1 does not belong to a BLooper, Handler2 does (which is unlocked)
46case 5: Handler1 does not belong to a BLooper, Handler2 does (which is locked)
47case 6: Handler1 and Handler2 belong to different BLoopers, which are unlocked
48case 7: Handler1 and Handler2 belong to different BLoopers, and Handler1's
49		BLooper is locked; Handler2's is not
50case 8: Handler1 and Handler2 belong to different BLoopers, and Handler1's
51		BLooper is unlocked; Handler2's is locked
52case 9: Handler1 and Handler2 belong to different BLoopers, which are both locked
53case 10: Handler1 and Handler2 belong to the same BLooper, which is unlocked
54case 11: Handler1 and Handler2 belong to the same BLooper, which is locked
55case 12: Default constructed handler
56case 13: Handler belongs to BLooper
57
58AddFilter(BMessageFilter *filter)
59case 1: filter is NULL
60case 2: filter is valid, handler has no looper
61case 3: filter is valid, handler has looper, looper isn't locked
62case 4: filter is valid, handler has looper, looper is locked
63
64RemoveFilter(BMessageFilter *filter)
65case 1: filter is NULL
66case 2: filter is valid, handler has no looper
67case 3: filter is valid, handler has looper, looper isn't locked
68case 4: filter is valid, handler has looper, looper is locked
69case 5: filter is valid, but not owned by handler, handler has no looper
70case 6: filter is valid, but not owned by handler, handler has looper, looper isn't locked
71case 7: filter is valid, but not owned by handler, handler has looper, looper is locked
72
73SetFilterList(BList *filters)
74case 1: filters is NULL
75case 2: filters is valid, handler has no looper
76case 3: filters is valid, handler has looper, looper isn't locked
77case 4: filters is valid, handler has looper, looper is locked
78case 5: filters and handler are valid; then NULL filters is passed
79
80FilterList()
81case 1: default constructed BHandler
82Other cases are handled in SetFilterList() tests
83
84LockLooper()
85case 1: handler has no looper
86case 2: handler has a looper which is initially unlocked
87case 3: handler has a looper which is initially locked
88case 4: handler has a looper which is locked in another thread
89
90LockLooperWithTimeout(bigtime_t timeout)
91case 1: handler has no looper
92case 2: handler has a looper which is initially unlocked
93case 3: handler has a looper which is initially locked
94case 4: handler has a looper which is locked in another thread
95
96UnlockLooper()
97case 1: handler has no looper
98case 2: handler has a looper which is initially unlocked
99case 3: handler has a looper which is initially locked
100case 4: handler has a looper which is locked in another thread
101
102MessageReceived(BMessage *message)
103ResolveSpecifier(BMessage *msg, int32 index, BMessage *specifier,
104				 int32 form, const char *property)
105GetSupportedSuites(BMessage *data)
106StartWatching(BMessenger, uint32 what)
107StartWatchingAll(BMessenger)
108StopWatching(BMessenger, uint32 what)
109StopWatchingAll(BMessenger)
110StartWatching(BHandler *, uint32 what)
111StartWatchingAll(BHandler *)
112StopWatching(BHandler *, uint32 what)
113StopWatchingAll(BHandler *)
114
115SendNotices(uint32 what, const BMessage * = 0)