#include <Application.h>
#include <Clipboard.h>
#define CHK CPPUNIT_ASSERT
#include "LockTester.h"
void LockTester::Lock1()
{
BApplication app("application/x-vnd.clipboardtest");
BClipboard clip("Lock1");
CHK(clip.Lock());
}
static int32 LockTest2(void *data)
{
BClipboard *clip = (BClipboard *)data;
clip->Lock();
snooze(300000);
delete clip;
return 0;
}
void LockTester::Lock2()
{
BApplication app("application/x-vnd.clipboardtest");
BClipboard *clip = new BClipboard("Lock2");
thread_id thread = spawn_thread(LockTest2,"locktest",B_NORMAL_PRIORITY,clip);
CHK(thread >= B_OK);
resume_thread(thread);
snooze(100000);
CHK(clip->Lock() == false);
}
void LockTester::IsLocked1()
{
BApplication app("application/x-vnd.clipboardtest");
BClipboard clip("IsLocked1");
clip.Lock();
CHK(clip.IsLocked());
}
void LockTester::IsLocked2()
{
BApplication app("application/x-vnd.clipboardtest");
BClipboard clip("IsLocked2");
CHK(!clip.IsLocked());
}
void LockTester::Unlock1()
{
BApplication app("application/x-vnd.clipboardtest");
BClipboard clip("Unlock1");
clip.Lock();
CHK(clip.IsLocked());
clip.Unlock();
CHK(!clip.IsLocked());
}
Test* LockTester::Suite()
{
TestSuite* SuiteOfTests = new TestSuite;
ADD_TEST4(BClipboard, SuiteOfTests, LockTester, Lock1);
ADD_TEST4(BClipboard, SuiteOfTests, LockTester, Lock2);
ADD_TEST4(BClipboard, SuiteOfTests, LockTester, IsLocked1);
ADD_TEST4(BClipboard, SuiteOfTests, LockTester, IsLocked2);
ADD_TEST4(BClipboard, SuiteOfTests, LockTester, Unlock1);
return SuiteOfTests;
}