1//------------------------------------------------------------------------------
2//	AddFilterTest.cpp
3//
4//------------------------------------------------------------------------------
5
6// Standard Includes -----------------------------------------------------------
7
8// System Includes -------------------------------------------------------------
9#include <Looper.h>
10#include <MessageFilter.h>
11
12// Project Includes ------------------------------------------------------------
13
14// Local Includes --------------------------------------------------------------
15#include "AddFilterTest.h"
16
17// Local Defines ---------------------------------------------------------------
18
19// Globals ---------------------------------------------------------------------
20
21//------------------------------------------------------------------------------
22/**
23	AddFilter(BMessageFilter* filter)
24	@case			filter is NULL
25	@param	filter	NULL
26	@results		None (i.e., no seg faults, etc.)
27	@note			Contrary to documentation, BHandler doesn't seem to care if
28					it belongs to a BLooper when a filter gets added.  Also,
29					the original implementation does not handle a NULL param
30					gracefully, so this test is not enabled against it.
31 */
32void TAddFilterTest::AddFilter1()
33{
34#if !defined(TEST_R5)
35	BHandler Handler;
36	Handler.AddFilter(NULL);
37#endif
38}
39//------------------------------------------------------------------------------
40/**
41	AddFilter(BMessageFilter* filter)
42	@case			filter is valid, handler has no looper
43	@param	filter	Valid BMessageFilter pointer
44	@results		None (i.e., no seg faults, etc.)
45	@note			Contrary to documentation, BHandler doesn't seem to care if
46					it belongs to a BLooper when a filter gets added.
47 */
48void TAddFilterTest::AddFilter2()
49{
50	BHandler Handler;
51	BMessageFilter* Filter = new BMessageFilter('1234');
52	Handler.AddFilter(Filter);
53}
54//------------------------------------------------------------------------------
55/**
56	AddFilter(BMessageFilter* filter)
57	@case			filter is valid, handler has looper, looper isn't locked
58	@param	filter	Valid BMessageFilter pointer
59	@results		None (i.e., no seg faults, etc.)
60	@note			Contrary to documentation, BHandler doesn't seem to care if
61					if belongs to a BLooper when a filter gets added, or
62					whether the looper is locked.
63 */
64void TAddFilterTest::AddFilter3()
65{
66	BLooper Looper;
67	BHandler Handler;
68	BMessageFilter* Filter = new BMessageFilter('1234');
69	Looper.AddHandler(&Handler);
70	Handler.AddFilter(Filter);
71}
72//------------------------------------------------------------------------------
73/**
74	AddFilter(BMessageFilter* filter)
75	@case			filter is valid, handler has looper, looper is locked
76	@param	filter	Valid BMessageFilter pointer
77	@results		None (i.e., no seg faults, etc.)
78 */
79void TAddFilterTest::AddFilter4()
80{
81	BLooper Looper;
82	BHandler Handler;
83	BMessageFilter* Filter = new BMessageFilter('1234');
84	Looper.Lock();
85	Looper.AddHandler(&Handler);
86	Handler.AddFilter(Filter);
87}
88//------------------------------------------------------------------------------
89Test* TAddFilterTest::Suite()
90{
91	TestSuite* SuiteOfTests = new TestSuite("BHandler::AddFilter");
92
93	ADD_TEST4(BHandler, SuiteOfTests, TAddFilterTest, AddFilter1);
94	ADD_TEST4(BHandler, SuiteOfTests, TAddFilterTest, AddFilter2);
95	ADD_TEST4(BHandler, SuiteOfTests, TAddFilterTest, AddFilter3);
96	ADD_TEST4(BHandler, SuiteOfTests, TAddFilterTest, AddFilter4);
97
98	return SuiteOfTests;
99}
100//------------------------------------------------------------------------------
101
102/*
103 * $Log $
104 *
105 * $Id  $
106 *
107 */
108
109
110