#include <Looper.h>
#include <MessageFilter.h>
#include "RemoveFilterTest.h"
RemoveFilter(BMessageFilter* filter)
@case filter is NULL
@param filter NULL
@results Returns false
*/
void TRemoveFilterTest::RemoveFilter1()
{
BHandler Handler;
CPPUNIT_ASSERT(!Handler.RemoveFilter(NULL));
}
RemoveFilter(BMessageFilter* filter)
@case filter is valid, handler has no looper
@param filter Valid BMessageFilter pointer
@results Returns true. Contrary to documentation, original
implementation of BHandler doesn't care if it belongs to a
looper or not.
*/
void TRemoveFilterTest::RemoveFilter2()
{
BHandler Handler;
BMessageFilter* Filter = new BMessageFilter('1234');
Handler.AddFilter(Filter);
CPPUNIT_ASSERT(Handler.RemoveFilter(Filter));
}
RemoveFilter(BMessageFilter* filter)
@case filter is valid, handler has looper, looper isn't locked
@param filter Valid BMessageFilter pointer
@results Returns true. Contrary to documentation, original
implementation of BHandler doesn't care if it belongs to a
looper or not.
*/
void TRemoveFilterTest::RemoveFilter3()
{
BLooper Looper;
BHandler Handler;
Looper.AddHandler(&Handler);
BMessageFilter* Filter = new BMessageFilter('1234');
Handler.AddFilter(Filter);
CPPUNIT_ASSERT(Handler.RemoveFilter(Filter));
}
RemoveFilter(BMessageFilter* filter)
@case filter is valid, handler has looper, looper is locked
@param filter Valid BMessageFilter pointer
@results Return true.
*/
void TRemoveFilterTest::RemoveFilter4()
{
BLooper Looper;
BHandler Handler;
Looper.AddHandler(&Handler);
Looper.Lock();
BMessageFilter* Filter = new BMessageFilter('1234');
Handler.AddFilter(Filter);
CPPUNIT_ASSERT(Handler.RemoveFilter(Filter));
}
RemoveFilter(BMessageFilter* filter)
@case filter is valid, but not owned by handler, handler has no looper
@param filter Valid BMessageFilter pointer
@results Returns false. Contrary to documentation, original
implementation of BHandler doesn't care if it belongs to a
looper or not.
*/
void TRemoveFilterTest::RemoveFilter5()
{
BHandler Handler;
BMessageFilter* Filter = new BMessageFilter('1234');
CPPUNIT_ASSERT(!Handler.RemoveFilter(Filter));
}
RemoveFilter(BMessageFilter* filter)
@case filter is valid, but not owned by handler, handler has
looper, looper isn't locked
@param filter Valid BMessageFilter pointer
@results Returns false. Contrary to documentation, original
implementation of BHandler doesn't care if its looper is
locked or not.
*/
void TRemoveFilterTest::RemoveFilter6()
{
BLooper Looper;
BHandler Handler;
Looper.AddHandler(&Handler);
BMessageFilter* Filter = new BMessageFilter('1234');
CPPUNIT_ASSERT(!Handler.RemoveFilter(Filter));
}
RemoveFilter(BMessageFilter* filter)
@case filter is valid, but not owned by handler, handler has
looper, looper is locked
@param filter Valid BMessageFilter pointer
@results Returns false.
*/
void TRemoveFilterTest::RemoveFilter7()
{
BLooper Looper;
BHandler Handler;
Looper.AddHandler(&Handler);
Looper.Lock();
BMessageFilter* Filter = new BMessageFilter('1234');
CPPUNIT_ASSERT(!Handler.RemoveFilter(Filter));
}
Test* TRemoveFilterTest::Suite()
{
TestSuite* SuiteOfTests = new TestSuite("BHandler::RemoveFilter");
ADD_TEST4(BHandler, SuiteOfTests, TRemoveFilterTest, RemoveFilter1);
ADD_TEST4(BHandler, SuiteOfTests, TRemoveFilterTest, RemoveFilter2);
ADD_TEST4(BHandler, SuiteOfTests, TRemoveFilterTest, RemoveFilter3);
ADD_TEST4(BHandler, SuiteOfTests, TRemoveFilterTest, RemoveFilter4);
ADD_TEST4(BHandler, SuiteOfTests, TRemoveFilterTest, RemoveFilter5);
ADD_TEST4(BHandler, SuiteOfTests, TRemoveFilterTest, RemoveFilter6);
ADD_TEST4(BHandler, SuiteOfTests, TRemoveFilterTest, RemoveFilter7);
return SuiteOfTests;
}
* $Log $
*
* $Id $
*
*/