xref: /haiku/src/tests/kits/app/blooper/AddHandlerTest.cpp (revision ec9673bf488423a5fd66aea059111a384ee40a81)
1 //------------------------------------------------------------------------------
2 //	AddHandlerTest.cpp
3 //
4 //------------------------------------------------------------------------------
5 /**
6 	@note	Most of AddHandler()'s functionality is indirectly exercised
7 			by the tests for RemoveHandler(), CountHandler(), HandlerAt() and
8 			IndexOf().  If AddHandler() isn't working correctly, it will show up
9 			there.  I do wonder if I should replicate those tests here anyway so
10 			that any problem specifically show up in this test suite.
11  */
12 
13 // Standard Includes -----------------------------------------------------------
14 
15 // System Includes -------------------------------------------------------------
16 #include <Looper.h>
17 
18 // Project Includes ------------------------------------------------------------
19 
20 // Local Includes --------------------------------------------------------------
21 #include "AddHandlerTest.h"
22 
23 // Local Defines ---------------------------------------------------------------
24 
25 // Globals ---------------------------------------------------------------------
26 
27 //------------------------------------------------------------------------------
28 /**
29 	AddHandler(BHandler*)
30 	@case		handler is NULL
31 	@param		handler
32 	@results	Nothing (bad) should happen when AddHandler() is called, and
33 				CountHandlers() should return 1 (for the looper itself).  R5
34 				can't handle this test; it has a segment violation.
35  */
AddHandlerTest1()36 void TAddHandlerTest::AddHandlerTest1()
37 {
38 	BLooper Looper;
39 #ifndef TEST_R5
40 	Looper.AddHandler(NULL);
41 #endif
42 	CPPUNIT_ASSERT(Looper.CountHandlers() == 1);
43 }
44 //------------------------------------------------------------------------------
45 /**
46 	AddHandler(BHandler*)
47 	@case		looper is unlocked
48 	@param		handler
49 	@results	Goes to debugger with message "Looper must be locked before
50 				calling AddHandler."
51  */
AddHandlerTest2()52 void TAddHandlerTest::AddHandlerTest2()
53 {
54 	DEBUGGER_ESCAPE;
55 
56 	BLooper Looper;
57 	BHandler Handler;
58 	Looper.Unlock();
59 	Looper.AddHandler(&Handler);
60 }
61 //------------------------------------------------------------------------------
Suite()62 TestSuite* TAddHandlerTest::Suite()
63 {
64 	TestSuite* suite = new TestSuite("BLooper::AddHandler(BHandler*)");
65 
66 	ADD_TEST4(BLooper, suite, TAddHandlerTest, AddHandlerTest1);
67 	ADD_TEST4(BLooper, suite, TAddHandlerTest, AddHandlerTest2);
68 
69 	return suite;
70 }
71 //------------------------------------------------------------------------------
72 
73 /*
74  * $Log $
75  *
76  * $Id  $
77  *
78  */
79 
80 
81