xref: /haiku/src/tests/kits/app/bcursor/BCursorTester.cpp (revision bb83316a5811a550c4f850d07fa8e328e7ac0a94)
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