1//------------------------------------------------------------------------------
2//	UnlockLooperTest.cpp
3//
4//------------------------------------------------------------------------------
5
6// Standard Includes -----------------------------------------------------------
7
8// System Includes -------------------------------------------------------------
9#include <Looper.h>
10
11// Project Includes ------------------------------------------------------------
12
13// Local Includes --------------------------------------------------------------
14#include "UnlockLooperTest.h"
15
16// Local Defines ---------------------------------------------------------------
17
18// Globals ---------------------------------------------------------------------
19
20//------------------------------------------------------------------------------
21/**
22	UnlockLooper()
23	@case		handler has no looper
24	@results	NONE
25	@note		Original implementation apparently doesn't check to see if a
26				looper actually exists before trying to call Unlock() on it.
27				Disabled for TEST_R5.
28 */
29void TUnlockLooperTest::UnlockLooper1()
30{
31#if !defined(TEST_R5)
32	DEBUGGER_ESCAPE;
33
34	BHandler Handler;
35	Handler.UnlockLooper();
36#endif
37}
38//------------------------------------------------------------------------------
39/**
40	UnlockLooper()
41	@case		handler has a looper which is initially unlocked
42	@results	debug message "looper must be locked before proceeding" from
43				BLooper::AssertLock()
44 */
45void TUnlockLooperTest::UnlockLooper2()
46{
47	DEBUGGER_ESCAPE;
48
49	BLooper Looper;
50	BHandler Handler;
51	Looper.AddHandler(&Handler);
52	if (Looper.IsLocked())
53	{
54		// Make sure the looper is unlocked
55		Looper.Unlock();
56	}
57	Handler.UnlockLooper();
58}
59//------------------------------------------------------------------------------
60/**
61	UnlockLooper()
62	@case		handler has a looper which is initially locked
63	@results	NONE
64 */
65void TUnlockLooperTest::UnlockLooper3()
66{
67	BLooper Looper;
68	BHandler Handler;
69	Looper.AddHandler(&Handler);
70	if (!Looper.IsLocked())
71	{
72		Looper.Lock();
73	}
74	Handler.UnlockLooper();
75}
76//------------------------------------------------------------------------------
77Test* TUnlockLooperTest::Suite()
78{
79	TestSuite* SuiteOfTests = new TestSuite("BHandler::UnlockLooper");
80
81	ADD_TEST4(BHandler, SuiteOfTests, TUnlockLooperTest, UnlockLooper1);
82	ADD_TEST4(BHandler, SuiteOfTests, TUnlockLooperTest, UnlockLooper2);
83	ADD_TEST4(BHandler, SuiteOfTests, TUnlockLooperTest, UnlockLooper3);
84
85	return SuiteOfTests;
86}
87//------------------------------------------------------------------------------
88
89/*
90 * $Log $
91 *
92 * $Id  $
93 *
94 */
95
96
97