tizen 2.3.1 release
[framework/system/libfeedback.git] / TC / testcase / utc_system_feedback.c
1 /*
2  *
3  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4  * PROPRIETARY/CONFIDENTIAL
5  *
6  * This software is the confidential and proprietary information of SAMSUNG
7  * ELECTRONICS ("Confidential Information"). You agree and acknowledge that
8  * this software is owned by Samsung and you shall not disclose such
9  * Confidential Information and shall use it only in accordance with the terms
10  * of the license agreement you entered into with SAMSUNG ELECTRONICS. SAMSUNG
11  * make no representations or warranties about the suitability of the software,
12  * either express or implied, including but not limited to the implied
13  * warranties of merchantability, fitness for a particular purpose, or
14  * non-infringement. SAMSUNG shall not be liable for any damages suffered by
15  * licensee arising out of or related to this software.
16  *
17  */
18 #include <tet_api.h>
19 #include <feedback.h>
20
21 #define API_NAME_FEEDBACK_INITIALIZE "feedback_initialize"
22 #define API_NAME_FEEDBACK_DEINITIALIZE "feedback_deinitialize"
23 #define API_NAME_FEEDBACK_PLAY "feedback_play"
24 #define API_NAME_FEEDBACK_PLAY_TYPE "feedback_play_type"
25 #define API_NAME_FEEDBACK_GET_RESOURCE_PATH "feedback_get_resource_path"
26 #define API_NAME_FEEDBACK_SET_RESOURCE_PATH "feedback_set_resource_path"
27
28 static void startup(void);
29 static void cleanup(void);
30
31 void (*tet_startup)(void) = startup;
32 void (*tet_cleanup)(void) = cleanup;
33
34
35 static void utc_system_feedback_initialize_p(void);
36 static void utc_system_feedback_deinitialize_p(void);
37 static void utc_system_feedback_play_p(void);
38 static void utc_system_feedback_play_n(void);
39 static void utc_system_feedback_play_type_p(void);
40 static void utc_system_feedback_play_type_n_1(void);
41 static void utc_system_feedback_play_type_n_2(void);
42 static void utc_system_feedback_get_resource_path_p(void);
43 static void utc_system_feedback_get_resource_path_n_1(void);
44 static void utc_system_feedback_get_resource_path_n_2(void);
45 static void utc_system_feedback_get_resource_path_n_3(void);
46 static void utc_system_feedback_set_resource_path_p(void);
47 static void utc_system_feedback_set_resource_path_n_1(void);
48 static void utc_system_feedback_set_resource_path_n_2(void);
49 static void utc_system_feedback_set_resource_path_n_3(void);
50 static void utc_system_feedback_set_resource_path_n_4(void);
51
52 enum {
53         POSITIVE_TC_IDX = 0x01,
54         NEGATIVE_TC_IDX,
55 };
56
57 struct tet_testlist tet_testlist[] = {
58         { utc_system_feedback_initialize_p, POSITIVE_TC_IDX },
59         { utc_system_feedback_deinitialize_p, POSITIVE_TC_IDX },
60         { utc_system_feedback_play_p, POSITIVE_TC_IDX },
61         { utc_system_feedback_play_n, NEGATIVE_TC_IDX },
62         { utc_system_feedback_play_type_p, POSITIVE_TC_IDX },
63         { utc_system_feedback_play_type_n_1, NEGATIVE_TC_IDX },
64         { utc_system_feedback_play_type_n_2, NEGATIVE_TC_IDX },
65         { utc_system_feedback_get_resource_path_p, POSITIVE_TC_IDX },
66         { utc_system_feedback_get_resource_path_n_1, NEGATIVE_TC_IDX },
67         { utc_system_feedback_get_resource_path_n_2, NEGATIVE_TC_IDX },
68         { utc_system_feedback_get_resource_path_n_3, NEGATIVE_TC_IDX },
69         { utc_system_feedback_set_resource_path_p, POSITIVE_TC_IDX },
70         { utc_system_feedback_set_resource_path_n_1, NEGATIVE_TC_IDX },
71         { utc_system_feedback_set_resource_path_n_2, NEGATIVE_TC_IDX },
72         { utc_system_feedback_set_resource_path_n_3, NEGATIVE_TC_IDX },
73         { utc_system_feedback_set_resource_path_n_4, NEGATIVE_TC_IDX },
74         { NULL, 0 },
75 };
76
77 #define SOUND_FILE_PATH "/usr/share/feedback/sound/touch/touch.ogg"
78 #define VIBRATION_FILE_PATH "/usr/share/deviced/HW_touch_30ms_sharp.ivt"
79
80 static void startup(void)
81 {
82 }
83
84 static void cleanup(void)
85 {
86 }
87
88 /**
89  * @brief Positive test case of feedback_initialize()
90  */
91 static void utc_system_feedback_initialize_p(void)
92 {
93         int ret;
94
95         ret = feedback_initialize();
96         dts_check_eq(API_NAME_FEEDBACK_INITIALIZE, ret, FEEDBACK_ERROR_NONE);
97 }
98
99 /**
100  * @brief Positive test case of feedback_deinitialize()
101  */
102 static void utc_system_feedback_deinitialize_p(void)
103 {
104         int ret;
105
106         ret = feedback_deinitialize();
107         dts_check_eq(API_NAME_FEEDBACK_DEINITIALIZE, ret, FEEDBACK_ERROR_NONE);
108 }
109
110 /**
111  * @brief Positive test case of feedback_play()
112  */
113 static void utc_system_feedback_play_p(void)
114 {
115         int i, ret;
116
117         for (i = 0; i < FEEDBACK_PATTERN_END; ++i) {
118                 dts_message(API_NAME_FEEDBACK_PLAY, "Play [%d] pattern", i);
119
120                 ret = feedback_play(i);
121                 dts_check_eq(API_NAME_FEEDBACK_PLAY, ret, FEEDBACK_ERROR_NONE);
122         }
123 }
124
125 /**
126  * @brief Negative test case of feedback_play()
127  */
128 static void utc_system_feedback_play_n(void)
129 {
130         int ret;
131
132         ret = feedback_play(-1);
133         dts_check_ne(API_NAME_FEEDBACK_PLAY, ret, FEEDBACK_ERROR_NONE);
134 }
135
136 /**
137  * @brief Positive test case of feedback_play_type()
138  */
139 static void utc_system_feedback_play_type_p(void)
140 {
141         int i, ret;
142
143         for (i = 0; i < FEEDBACK_PATTERN_END; ++i) {
144                 dts_message(API_NAME_FEEDBACK_PLAY_TYPE, "Play [%d] pattern", i);
145
146                 ret = feedback_play_type(FEEDBACK_TYPE_SOUND, i);
147                 dts_check_eq(API_NAME_FEEDBACK_PLAY_TYPE, ret, FEEDBACK_ERROR_NONE, "Sound Test");
148
149                 ret = feedback_play_type(FEEDBACK_TYPE_VIBRATION, i);
150                 dts_check_eq(API_NAME_FEEDBACK_PLAY_TYPE, ret, FEEDBACK_ERROR_NONE, "Vibration Test");
151         }
152 }
153
154 /**
155  * @brief Negative test case of feedback_play_type()
156  */
157 static void utc_system_feedback_play_type_n_1(void)
158 {
159         int ret;
160
161         ret = feedback_play_type(-1, FEEDBACK_PATTERN_TAP);
162         dts_check_ne(API_NAME_FEEDBACK_PLAY_TYPE, ret, FEEDBACK_ERROR_NONE);
163 }
164
165 /**
166  * @brief Negative test case of feedback_play_type()
167  */
168 static void utc_system_feedback_play_type_n_2(void)
169 {
170         int ret;
171
172         ret = feedback_play_type(FEEDBACK_TYPE_SOUND, -1);
173         dts_check_ne(API_NAME_FEEDBACK_PLAY_TYPE, ret, FEEDBACK_ERROR_NONE);
174 }
175
176 /**
177  * @brief Positive test case of feedback_get_resource_path()
178  */
179 static void utc_system_feedback_get_resource_path_p(void)
180 {
181         int i, ret;
182         char *str = NULL;
183
184         for (i = 0; i < FEEDBACK_PATTERN_END; ++i) {
185                 dts_message(API_NAME_FEEDBACK_GET_RESOURCE_PATH, "Get [%d] pattern path", i);
186
187                 ret = feedback_get_resource_path(FEEDBACK_TYPE_SOUND, i, &str);
188                 dts_check_eq(API_NAME_FEEDBACK_GET_RESOURCE_PATH, ret, FEEDBACK_ERROR_NONE,
189                                 "[%d] sound file path : %s", i, str);
190                 free(str);
191                 str = NULL;
192
193                 ret = feedback_get_resource_path(FEEDBACK_TYPE_VIBRATION, i, &str);
194                 dts_check_eq(API_NAME_FEEDBACK_GET_RESOURCE_PATH, ret, FEEDBACK_ERROR_NONE,
195                                 "[%d] vibration file path : %s", i, str);
196                 free(str);
197                 str = NULL;
198         }
199 }
200
201 /**
202  * @brief Negative test case of feedback_get_resource_path()
203  */
204 static void utc_system_feedback_get_resource_path_n_1(void)
205 {
206         int ret;
207         char *str = NULL;
208
209         ret = feedback_get_resource_path(-1, FEEDBACK_PATTERN_TAP, &str);
210         dts_check_ne(API_NAME_FEEDBACK_GET_RESOURCE_PATH, ret, FEEDBACK_ERROR_NONE);
211 }
212
213 /**
214  * @brief Negative test case of feedback_get_resource_path()
215  */
216 static void utc_system_feedback_get_resource_path_n_2(void)
217 {
218         int ret;
219         char *str = NULL;
220
221         ret = feedback_get_resource_path(FEEDBACK_TYPE_SOUND, -1, &str);
222         dts_check_ne(API_NAME_FEEDBACK_GET_RESOURCE_PATH, ret, FEEDBACK_ERROR_NONE);
223 }
224
225 /**
226  * @brief Negative test case of feedback_get_resource_path()
227  */
228 static void utc_system_feedback_get_resource_path_n_3(void)
229 {
230         int ret;
231
232         ret = feedback_get_resource_path(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_TAP, NULL);
233         dts_check_ne(API_NAME_FEEDBACK_GET_RESOURCE_PATH, ret, FEEDBACK_ERROR_NONE);
234 }
235
236 /**
237  * @brief Positive test case of feedback_set_resource_path()
238  */
239 static void utc_system_feedback_set_resource_path_p(void)
240 {
241         int i, ret;
242
243         for (i = 0; i < FEEDBACK_PATTERN_END; ++i) {
244                 dts_message(API_NAME_FEEDBACK_SET_RESOURCE_PATH, "Set [%d] pattern path", i);
245
246                 ret = feedback_set_resource_path(FEEDBACK_TYPE_SOUND, i, SOUND_FILE_PATH);
247                 dts_check_eq(API_NAME_FEEDBACK_SET_RESOURCE_PATH, ret, FEEDBACK_ERROR_NONE);
248
249                 ret = feedback_set_resource_path(FEEDBACK_TYPE_VIBRATION, i, VIBRATION_FILE_PATH);
250                 dts_check_eq(API_NAME_FEEDBACK_SET_RESOURCE_PATH, ret, FEEDBACK_ERROR_NONE);
251         }
252 }
253
254 /**
255  * @brief Negative test case of feedback_set_resource_path()
256  */
257 static void utc_system_feedback_set_resource_path_n_1(void)
258 {
259         int ret;
260
261         ret = feedback_set_resource_path(-1, FEEDBACK_PATTERN_TAP, SOUND_FILE_PATH);
262         dts_check_ne(API_NAME_FEEDBACK_SET_RESOURCE_PATH, ret, FEEDBACK_ERROR_NONE);
263 }
264
265 /**
266  * @brief Negative test case of feedback_set_resource_path()
267  */
268 static void utc_system_feedback_set_resource_path_n_2(void)
269 {
270         int ret;
271
272         ret = feedback_set_resource_path(FEEDBACK_TYPE_SOUND, -1, SOUND_FILE_PATH);
273         dts_check_ne(API_NAME_FEEDBACK_SET_RESOURCE_PATH, ret, FEEDBACK_ERROR_NONE);
274 }
275
276 /**
277  * @brief Negative test case of feedback_set_resource_path()
278  */
279 static void utc_system_feedback_set_resource_path_n_3(void)
280 {
281         int ret;
282
283         ret = feedback_set_resource_path(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_TAP, NULL);
284         dts_check_ne(API_NAME_FEEDBACK_SET_RESOURCE_PATH, ret, FEEDBACK_ERROR_NONE);
285 }
286
287 /**
288  * @brief Negative test case of feedback_set_resource_path()
289  */
290 static void utc_system_feedback_set_resource_path_n_4(void)
291 {
292         int ret;
293
294         ret = feedback_set_resource_path(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_TAP, "/usr/share/no_file");
295         dts_check_ne(API_NAME_FEEDBACK_SET_RESOURCE_PATH, ret, FEEDBACK_ERROR_NONE);
296 }
297