1 //----------------------------------------------------------------------------- 2 // BCursorTester.cpp 3 // 4 //----------------------------------------------------------------------------- 5 6 // Standard Includes ---------------------------------------------------------- 7 8 // System Includes ------------------------------------------------------------ 9 #include <Application.h> 10 #include <Bitmap.h> 11 #include <Cursor.h> 12 #include <Message.h> 13 14 #define CHK CPPUNIT_ASSERT 15 16 // Project Includes ----------------------------------------------------------- 17 18 // Local Includes ------------------------------------------------------------- 19 #include "BCursorTester.h" 20 21 // Local Defines -------------------------------------------------------------- 22 23 // Globals -------------------------------------------------------------------- 24 25 //----------------------------------------------------------------------------- 26 27 /* 28 BCursor(const void *cursorData) 29 @case 1 30 @results nothing apparent (no segfault) 31 */ 32 void BCursorTester::BCursor1() 33 { 34 BApplication app("application/x-vnd.cursortest"); 35 BCursor cur((void *)NULL); 36 } 37 38 /* 39 BCursor(const void *cursorData) 40 @case 2 41 @results nothing apparent 42 */ 43 void BCursorTester::BCursor2() 44 { 45 BApplication app("application/x-vnd.cursortest"); 46 char data[68]; 47 int i; 48 49 data[0] = 16; 50 data[1] = 1; 51 data[2] = 0; 52 data[3] = 0; 53 for (i=4; i<68; i++) 54 data[i] = 1; 55 56 BCursor cur(data); 57 } 58 59 /* 60 BCursor(const void *cursorData) 61 @case 3 62 @results nothing apparent (no segfaults) 63 */ 64 void BCursorTester::BCursor3() 65 { 66 BApplication app("application/x-vnd.cursortest"); 67 int x; 68 BCursor cur1(&x); 69 char data[68]; 70 data[0] = 32; 71 BCursor cur2(data); 72 data[0] = 16; 73 data[1] = 8; 74 BCursor cur3(data); 75 data[1] = 1; 76 data[2] = 16; 77 data[3] = 16; 78 BCursor cur4(data); 79 } 80 81 /* 82 BCursor(BMessage *archive) 83 @case 1 84 @results nothing apparent (no segfault) 85 */ 86 void BCursorTester::BCursor4() 87 { 88 BApplication app("application/x-vnd.cursortest"); 89 BCursor cur((BMessage *)NULL); 90 } 91 92 /* 93 BCursor(BMessage *archive) 94 @case 2 95 @results nothing apparent (empty cursor) 96 */ 97 void BCursorTester::BCursor5() 98 { 99 BApplication app("application/x-vnd.cursortest"); 100 /* The message really should contain a valid archive, but Cursor doesn't 101 support archiving anyway, so until R2, this is a moot point. 102 */ 103 BMessage msg; 104 BCursor cur(&msg); 105 } 106 107 /* 108 BCursor(BBitmap *bitmap, BPoint* hotspot) 109 @case 1 110 @results nothing apparent (empty cursor) 111 */ 112 void BCursorTester::BCursor6() 113 { 114 BApplication app("application/x-vnd.cursortest"); 115 116 BBitmap *bitmap; 117 BPoint hotspot(0, 0); 118 119 get_mouse_bitmap(&bitmap, &hotspot); 120 hotspot.x += 1; 121 hotspot.y += 1; 122 BCursor cur(bitmap, hotspot); 123 } 124 125 /* 126 static BArchivable *Instantiate(BMessage *archive) 127 @case 1 128 @results return NULL 129 */ 130 void BCursorTester::Instantiate1() 131 { 132 BApplication app("application/x-vnd.cursortest"); 133 CHK(BCursor::Instantiate(NULL) == NULL); 134 } 135 136 /* 137 static BArchivable *Instantiate(BMessage *archive) 138 @case 2 139 @results return NULL 140 */ 141 void BCursorTester::Instantiate2() 142 { 143 BApplication app("application/x-vnd.cursortest"); 144 /* The message really should contain a valid archive, but Cursor doesn't 145 support archiving anyway, so until R2, this is a moot point. 146 */ 147 BMessage msg; 148 CHK(BCursor::Instantiate(&msg) == NULL); 149 } 150 151 /* 152 status_t Archive(BMessage* into, bool deep = true) 153 @case 1 154 @results return B_OK 155 */ 156 void BCursorTester::Archive1() 157 { 158 BApplication app("application/x-vnd.cursortest"); 159 char data[68]; 160 int i; 161 162 data[0] = 16; 163 data[1] = 1; 164 data[2] = 0; 165 data[3] = 0; 166 for (i=4; i<68; i++) 167 data[i] = 1; 168 169 BCursor cur(data); 170 CHK(cur.Archive(NULL) == B_OK); 171 } 172 173 /* 174 status_t Archive(BMessage* into, bool deep = true) 175 @case 2 176 @results return B_OK 177 */ 178 void BCursorTester::Archive2() 179 { 180 BApplication app("application/x-vnd.cursortest"); 181 char data[68]; 182 int i; 183 184 data[0] = 16; 185 data[1] = 1; 186 data[2] = 0; 187 data[3] = 0; 188 for (i=4; i<68; i++) 189 data[i] = 1; 190 191 BCursor cur(data); 192 BMessage msg; 193 CHK(cur.Archive(&msg) == B_OK); 194 } 195 196 197 Test* BCursorTester::Suite() 198 { 199 TestSuite* SuiteOfTests = new TestSuite; 200 201 ADD_TEST4(BCursor, SuiteOfTests, BCursorTester, BCursor1); 202 ADD_TEST4(BCursor, SuiteOfTests, BCursorTester, BCursor2); 203 ADD_TEST4(BCursor, SuiteOfTests, BCursorTester, BCursor3); 204 ADD_TEST4(BCursor, SuiteOfTests, BCursorTester, BCursor4); 205 ADD_TEST4(BCursor, SuiteOfTests, BCursorTester, BCursor5); 206 ADD_TEST4(BCursor, SuiteOfTests, BCursorTester, Instantiate1); 207 ADD_TEST4(BCursor, SuiteOfTests, BCursorTester, Instantiate2); 208 ADD_TEST4(BCursor, SuiteOfTests, BCursorTester, Archive1); 209 ADD_TEST4(BCursor, SuiteOfTests, BCursorTester, Archive2); 210 211 return SuiteOfTests; 212 } 213 214