1//------------------------------------------------------------------------------ 2// SetFilterListTest.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 "SetFilterListTest.h" 16 17// Local Defines --------------------------------------------------------------- 18 19// Globals --------------------------------------------------------------------- 20 21//------------------------------------------------------------------------------ 22/** 23 SetFilterList(BList* filters) 24 @case filters is NULL 25 @param filters NULL 26 @results FilterList() returns NULL 27 */ 28void TSetFilterListTest::SetFilterList1() 29{ 30 BHandler Handler; 31 Handler.SetFilterList(NULL); 32 CPPUNIT_ASSERT(!Handler.FilterList()); 33} 34//------------------------------------------------------------------------------ 35/** 36 SetFilterList(BList* filters) 37 @case filters is valid, handler has no looper 38 @param filters Valid pointer to BList of BMessageFilters 39 @results FilterList() returns assigned list 40 */ 41void TSetFilterListTest::SetFilterList2() 42{ 43 BList* Filters = new BList; 44 BMessageFilter* Filter = new BMessageFilter('1234'); 45 Filters->AddItem((void*)Filter); 46 BHandler Handler; 47 Handler.SetFilterList(Filters); 48 CPPUNIT_ASSERT(Handler.FilterList() == Filters); 49} 50//------------------------------------------------------------------------------ 51/** 52 SetFilterList(BList* filters) 53 @case filters is valid, handler has looper, looper isn't locked 54 @param filters Valid pointer to BList of BMessageFilters 55 @results FilterList() returns NULL; list is not assigned 56 debug message "Owning Looper must be locked before calling 57 SetFilterList" 58 */ 59void TSetFilterListTest::SetFilterList3() 60{ 61 DEBUGGER_ESCAPE; 62 63 BLooper Looper; 64 BHandler Handler; 65 66 BList* Filters = new BList; 67 BMessageFilter* Filter = new BMessageFilter('1234'); 68 Filters->AddItem((void*)Filter); 69 70 Looper.AddHandler(&Handler); 71 if (Looper.IsLocked()) 72 { 73 Looper.Unlock(); 74 } 75 76 Handler.SetFilterList(Filters); 77 CPPUNIT_ASSERT(!Handler.FilterList()); 78} 79//------------------------------------------------------------------------------ 80/** 81 SetFilterList(BList* filters) 82 @case filters is valid, handler has looper, looper is locked 83 @param filters 84 @results 85 */ 86void TSetFilterListTest::SetFilterList4() 87{ 88 BList* Filters = new BList; 89 BMessageFilter* Filter = new BMessageFilter('1234'); 90 Filters->AddItem((void*)Filter); 91 BLooper Looper; 92 BHandler Handler; 93 Looper.Lock(); 94 Looper.AddHandler(&Handler); 95 Handler.SetFilterList(Filters); 96 CPPUNIT_ASSERT(Handler.FilterList() == Filters); 97} 98//------------------------------------------------------------------------------ 99/** 100 SetFilterList(BList* filters) 101 @case filters and handler are valid; then NULL filters is passed 102 @param filters 103 @results 104 */ 105void TSetFilterListTest::SetFilterList5() 106{ 107 BList* Filters = new BList; 108 BMessageFilter* Filter = new BMessageFilter('1234'); 109 Filters->AddItem((void*)Filter); 110 BLooper Looper; 111 BHandler Handler; 112 Looper.Lock(); 113 Looper.AddHandler(&Handler); 114 Handler.SetFilterList(Filters); 115 CPPUNIT_ASSERT(Handler.FilterList() == Filters); 116 117 Handler.SetFilterList(NULL); 118 CPPUNIT_ASSERT(!Handler.FilterList()); 119} 120//------------------------------------------------------------------------------ 121Test* TSetFilterListTest::Suite() 122{ 123 TestSuite* SuiteOfTests = new TestSuite("BHandler::SetFilterList"); 124 125 ADD_TEST4(BHandler, SuiteOfTests, TSetFilterListTest, SetFilterList1); 126 ADD_TEST4(BHandler, SuiteOfTests, TSetFilterListTest, SetFilterList2); 127 ADD_TEST4(BHandler, SuiteOfTests, TSetFilterListTest, SetFilterList3); 128 ADD_TEST4(BHandler, SuiteOfTests, TSetFilterListTest, SetFilterList4); 129 ADD_TEST4(BHandler, SuiteOfTests, TSetFilterListTest, SetFilterList5); 130 131 return SuiteOfTests; 132} 133//------------------------------------------------------------------------------ 134 135/* 136 * $Log $ 137 * 138 * $Id $ 139 * 140 */ 141 142 143