//------------------------------------------------------------------------------ // CountTester.cpp // //------------------------------------------------------------------------------ // Standard Includes ----------------------------------------------------------- // System Includes ------------------------------------------------------------- #include #include #define CHK CPPUNIT_ASSERT // Project Includes ------------------------------------------------------------ // Local Includes -------------------------------------------------------------- #include "CountTester.h" // Local Defines --------------------------------------------------------------- // Globals --------------------------------------------------------------------- //------------------------------------------------------------------------------ /* LocalCount() @case 1 @results count == 0 */ void CountTester::LocalCount1() { BApplication app("application/x-vnd.clipboardtest"); BClipboard clip("LocalCount1"); CHK(clip.LocalCount() == 0); } /* LocalCount() @case 2 @results count == +1 */ void CountTester::LocalCount2() { BApplication app("application/x-vnd.clipboardtest"); BClipboard clip("LocalCount2"); BMessage *data; uint32 oldCount = clip.SystemCount(); if (clip.Lock()) { clip.Clear(); if ((data = clip.Data())) { data->AddData("text/plain", B_MIME_TYPE, "LocalCount2", 12); clip.Commit(); } clip.Unlock(); } CHK(clip.LocalCount() == oldCount + 1); } /* LocalCount() @case 3 @results both counts == +1 */ void CountTester::LocalCount3() { BApplication app("application/x-vnd.clipboardtest"); BClipboard clipA("LocalCount3"); BClipboard clipB("LocalCount3"); BMessage *data; uint32 oldCount = clipA.SystemCount(); CHK(clipB.Lock()); clipB.Clear(); if ((data = clipB.Data())) { data->AddData("text/plain", B_MIME_TYPE, "LocalCount3", 12); clipB.Commit(); } clipB.Unlock(); CHK(clipA.Lock()); clipA.Unlock(); CHK(clipA.LocalCount() == oldCount + 1); CHK(clipB.LocalCount() == oldCount + 1); } /* LocalCount() @case 4 @results clipA.LocalCount() == +1 clipB.LocalCount() == +2 */ void CountTester::LocalCount4() { BApplication app("application/x-vnd.clipboardtest"); BClipboard clipA("LocalCount4"); BClipboard clipB("LocalCount4"); BMessage *data; uint32 oldCount = clipA.SystemCount(); if (clipB.Lock()) { clipB.Clear(); if ((data = clipB.Data())) { data->AddData("text/plain", B_MIME_TYPE, "LocalCount4", 12); clipB.Commit(); } clipB.Unlock(); } if (clipA.Lock()) clipA.Unlock(); if (clipB.Lock()) { clipB.Clear(); if ((data = clipB.Data())) { data->AddData("text/plain",B_MIME_TYPE,"LocalCount4",12); clipB.Commit(); } clipB.Unlock(); } CHK(clipA.LocalCount() == oldCount + 1); CHK(clipB.LocalCount() == oldCount + 2); } /* LocalCount() @case 5 @results clipA.LocalCount() == 1 clipB.LocalCount() == 2 */ void CountTester::LocalCount5() { BApplication app("application/x-vnd.clipboardtest"); BClipboard clipA("LocalCount5"); BClipboard clipB("LocalCount5"); BMessage *data; uint32 oldCount = clipA.SystemCount(); if (clipA.Lock()) { clipA.Clear(); if ((data = clipA.Data())) { data->AddData("text/plain", B_MIME_TYPE, "LocalCount5", 12); clipA.Commit(); } clipA.Unlock(); } if (clipB.Lock()) { clipB.Clear(); if ((data = clipB.Data())) { data->AddData("text/plain", B_MIME_TYPE, "LocalCount5", 12); clipB.Commit(); } clipB.Unlock(); } CHK(clipA.LocalCount() == oldCount + 1); CHK(clipB.LocalCount() == oldCount + 2); } /* LocalCount() @case 6 @results clipA.LocalCount() == +1 clipB.LocalCount() == 0 */ void CountTester::LocalCount6() { BApplication app("application/x-vnd.clipboardtest"); BClipboard clipA("LocalCount6A"); BClipboard clipB("LocalCount6B"); BMessage *data; uint32 oldCount = clipA.SystemCount(); if (clipA.Lock()) { clipA.Clear(); if ((data = clipA.Data())) { data->AddData("text/plain", B_MIME_TYPE, "LocalCount6" ,12); clipA.Commit(); } clipA.Unlock(); } if (clipB.Lock()) clipB.Unlock(); CHK(clipA.LocalCount() == oldCount + 1); CHK(clipB.LocalCount() == 0); } /* SystemCount() @case 1 @results count == 0 */ void CountTester::SystemCount1() { BApplication app("application/x-vnd.clipboardtest"); BClipboard clip("SystemCount1"); CHK(clip.SystemCount() == 0); } /* SystemCount() @case 2 @results clipA.SystemCount() == +1 clipB.SystemCount() == +1 */ void CountTester::SystemCount2() { BApplication app("application/x-vnd.clipboardtest"); BClipboard clipA("SystemCount2"); BClipboard clipB("SystemCount2"); BMessage *data; uint32 oldCount = clipA.SystemCount(); if (clipA.Lock()) { clipA.Clear(); if ((data = clipA.Data())) { data->AddData("text/plain", B_MIME_TYPE, "SystemCount2", 12); clipA.Commit(); } clipA.Unlock(); } CHK(clipA.SystemCount() == oldCount + 1); CHK(clipB.SystemCount() == oldCount + 1); } /* SystemCount() @case 3 @results clipA.SystemCount() == +1 clipB.SystemCount() == 0 */ void CountTester::SystemCount3() { BApplication app("application/x-vnd.clipboardtest"); BClipboard clipA("SystemCount3A"); BClipboard clipB("SystemCount3B"); BMessage *data; uint32 oldCount = clipA.SystemCount(); if (clipA.Lock()) { clipA.Clear(); if ((data = clipA.Data())) { data->AddData("text/plain", B_MIME_TYPE, "SystemCount3", 12); clipA.Commit(); } clipA.Unlock(); } CHK(clipA.SystemCount() == oldCount + 1); CHK(clipB.SystemCount() == 0); } Test* CountTester::Suite() { TestSuite* SuiteOfTests = new TestSuite; ADD_TEST4(BClipboard, SuiteOfTests, CountTester, LocalCount1); ADD_TEST4(BClipboard, SuiteOfTests, CountTester, LocalCount2); ADD_TEST4(BClipboard, SuiteOfTests, CountTester, LocalCount3); ADD_TEST4(BClipboard, SuiteOfTests, CountTester, LocalCount4); ADD_TEST4(BClipboard, SuiteOfTests, CountTester, LocalCount5); ADD_TEST4(BClipboard, SuiteOfTests, CountTester, LocalCount6); ADD_TEST4(BClipboard, SuiteOfTests, CountTester, SystemCount1); ADD_TEST4(BClipboard, SuiteOfTests, CountTester, SystemCount2); ADD_TEST4(BClipboard, SuiteOfTests, CountTester, SystemCount3); return SuiteOfTests; }