1 #include <gtest/gtest.h>
3 #include <EFLTestLauncher.h>
11 using namespace EFLUnitTests;
13 static char* getDummyLocalFileUrl()
15 const char htmlFilePath[] = "/mnt/ums/Downloads/Others/unittest.html";
16 const char htmlFileData[] = "<html><body><p>UNIT TESTS : WAC CAMERA</p></body></html>";
18 static char* fileUrl = 0;
22 fp = fopen(htmlFilePath, "r");
24 fp = fopen(htmlFilePath, "w");
25 fwrite(htmlFileData, 1, strlen(htmlFileData), fp);
30 int length = strlen(htmlFilePath) + strlen("file://") + 1;
31 fileUrl = (char*)malloc(length);
32 memset(fileUrl, 0x00, length);
33 snprintf(fileUrl, length, "file://%s", htmlFilePath);
38 * Test : ewk_view_camera_get_cameras
41 static void onEwkCameraGetCameras(void* data, Evas_Object* webView, void* eventInfo)
43 CameraArray cameraArray;
44 memset(&cameraArray, 0x00, sizeof(CameraArray));
45 if (ewk_view_camera_get_cameras(&cameraArray)) {
46 if (cameraArray.camera[0])
47 ewk_view_camera_remove_camera(cameraArray.camera[0]);
48 if (cameraArray.camera[1])
49 ewk_view_camera_remove_camera(cameraArray.camera[1]);
50 EXPECT_EQ(cameraArray.length, 2);
57 TEST(DISABLED_EwkWacCameraTests, EwkWacCameraGetCamerasTest)
59 fprintf(stderr, "##### TEST : Get Cameras\n");
60 RUN_TEST(getDummyLocalFileUrl(), onEwkCameraGetCameras, "load,finished", 0);
64 * Test : ewk_view_camera_create_preview_node
67 static void EwkWacCameraPreviewCb(JSValueRef element, void* userParam)
70 ewk_view_camera_remove_camera((Camera_Object)userParam);
76 static void EwkWacCameraErrorCb(int errorcode, void* userParam)
79 ewk_view_camera_remove_camera((Camera_Object)userParam);
85 static void onEwkWacCameraPreviewTest(void* data, Evas_Object* webView, void* eventInfo)
87 CameraArray cameraArray;
88 memset(&cameraArray, 0x00, sizeof(CameraArray));
89 fprintf(stderr, "##### 1. ewk_view_camera_get_cameras\n");
90 if (ewk_view_camera_get_cameras(&cameraArray)) {
91 if (cameraArray.camera[1])
92 ewk_view_camera_remove_camera(cameraArray.camera[1]);
93 fprintf(stderr, "##### 2. ewk_view_camera_create_preview_node\n");
94 ewk_view_camera_create_preview_node(cameraArray.camera[0], webView,
95 EwkWacCameraPreviewCb, EwkWacCameraErrorCb, cameraArray.camera[0]);
97 EXPECT_EQ(true, false);
102 TEST(DISABLED_EwkWacCameraTests, EwkWacCameraPreviewTest)
104 fprintf(stderr, "##### TEST : Create Preview Node\n");
105 RUN_TEST(getDummyLocalFileUrl(), onEwkWacCameraPreviewTest, "load,finished", 0);
108 static void EwkWacCameraImageSuccessCb(const char* filename, void* userParam)
111 ewk_view_camera_remove_camera((Camera_Object)userParam);
113 fprintf(stderr, "##### filename : [%s]\n", filename);
116 fp = fopen(filename, "r");
118 EXPECT_NE(fp, (void*)0);
123 fprintf(stderr, "##### Error : the file is not exist\n", filename);
129 * Test : ewk_view_camera_capture_image
132 static void onEwkWacCameraCaptureImageTest(void* data, Evas_Object* webView, void* eventInfo)
134 CameraArray cameraArray;
135 memset(&cameraArray, 0x00, sizeof(CameraArray));
136 fprintf(stderr, "##### 1. ewk_view_camera_get_cameras\n");
137 if (ewk_view_camera_get_cameras(&cameraArray)) {
138 fprintf(stderr, "##### 2. ewk_view_camera_capture_image\n");
139 ewk_view_camera_capture_image(cameraArray.camera[0], "/mnt/ums/Downloads/Others/wac_camera_result.jpg", false,
140 EwkWacCameraImageSuccessCb, EwkWacCameraErrorCb, cameraArray.camera[0]);
141 if (cameraArray.camera[1])
142 ewk_view_camera_remove_camera(cameraArray.camera[1]);
144 EXPECT_EQ(true, false);
150 TEST(DISABLED_EwkWacCameraTests, EwkWacCameraCaptureImageTest)
152 fprintf(stderr, "##### TEST : Capture Image\n");
153 RUN_TEST(getDummyLocalFileUrl(), onEwkWacCameraCaptureImageTest, "load,finished", 0);
157 * Test : ewk_view_camera_start_video_capture, ewk_view_camera_stop_video_capture
160 static Ecore_Timer* gRecordingVideoTimer = 0;
161 static const int gRecordingLimitedTime = 5;
163 static Eina_Bool recordingVideoTimerCallback(void *data)
165 static int recordingTime = 0;
169 fprintf(stderr, "##### Recording ...\n");
171 if (recordingTime > gRecordingLimitedTime) {
172 fprintf(stderr, "##### 3. ewk_view_camera_stop_video_capture\n");
173 ewk_view_camera_stop_video_capture((Camera_Object)data);
174 gRecordingVideoTimer = 0;
182 static void EwkWacCameraVideoSuccessCb(const char* filename, void* userParam)
184 if (gRecordingVideoTimer > 0) {
185 ecore_timer_del(gRecordingVideoTimer);
186 gRecordingVideoTimer = 0;
190 ewk_view_camera_remove_camera((Camera_Object)userParam);
192 fprintf(stderr, "##### filename : [%s]\n", filename);
195 fp = fopen(filename, "r");
197 EXPECT_NE(fp, (void*)0);
202 fprintf(stderr, "##### Error : the file is not exist\n", filename);
207 static void onEwkWacCameraRecordVideoTest(void* data, Evas_Object* webView, void* eventInfo)
209 CameraArray cameraArray;
210 memset(&cameraArray, 0x00, sizeof(CameraArray));
211 fprintf(stderr, "##### 1. ewk_view_camera_get_cameras\n");
212 if (ewk_view_camera_get_cameras(&cameraArray)) {
213 fprintf(stderr, "##### 2. ewk_view_camera_start_video_capture\n");
214 ewk_view_camera_start_video_capture(cameraArray.camera[0], "/mnt/ums/Downloads/Others/wac_camera_result.mp4", false,
215 EwkWacCameraVideoSuccessCb, EwkWacCameraErrorCb, cameraArray.camera[0]);
216 if (cameraArray.camera[1])
217 ewk_view_camera_remove_camera(cameraArray.camera[1]);
219 gRecordingVideoTimer = ecore_timer_add(1.0, recordingVideoTimerCallback, cameraArray.camera[0]);
222 EXPECT_EQ(true, false);
226 TEST(DISABLED_EwkWacCameraTests, EwkWacCameraRecordVideoTest)
228 fprintf(stderr, "##### TEST : Record Video\n");
229 RUN_TEST(getDummyLocalFileUrl(), onEwkWacCameraRecordVideoTest, "load,finished", 0);
234 * Test : ewk_view_camera_start_video_capture, ewk_view_camera_stop_video_capture
236 static void EwkWacCameraStopVideoSuccessCb(const char* filename, void* userParam)
239 ewk_view_camera_remove_camera((Camera_Object)userParam);
241 fprintf(stderr, "##### success callback - Error : the success callback should not be called\n");
247 static void EwkWacCameraStopErrorCb(int errorcode, void* userParam)
250 ewk_view_camera_remove_camera((Camera_Object)userParam);
252 fprintf(stderr, "##### error callback - Success : this case should call the error callback \n");
259 static void onEwkWacCameraStopVideoTest(void* data, Evas_Object* webView, void* eventInfo)
261 CameraArray cameraArray;
262 memset(&cameraArray, 0x00, sizeof(CameraArray));
263 fprintf(stderr, "##### 1. ewk_view_camera_get_cameras\n");
264 if (ewk_view_camera_get_cameras(&cameraArray)) {
265 fprintf(stderr, "##### 2. ewk_view_camera_start_video_capture\n");
266 ewk_view_camera_start_video_capture(cameraArray.camera[0], "/mnt/ums/Downloads/Others/wac_camera_result.mp4", false,
267 EwkWacCameraStopVideoSuccessCb, EwkWacCameraStopErrorCb, cameraArray.camera[0]);
268 fprintf(stderr, "##### 3. ewk_view_camera_stop_video_capture\n");
269 ewk_view_camera_stop_video_capture(cameraArray.camera[0]);
270 if (cameraArray.camera[1])
271 ewk_view_camera_remove_camera(cameraArray.camera[1]);
274 EXPECT_EQ(true, false);
278 TEST(DISABLED_EwkWacCameraTests, EwkWacCameraStopVideoTest)
280 fprintf(stderr, "##### TEST : Record Video\n");
281 RUN_TEST(getDummyLocalFileUrl(), onEwkWacCameraStopVideoTest, "load,finished", 0);
289 2. create preview node
290 3. capture image (wac_camera_scenario1.jpg)
291 4. capture image (wac_camera_scenario2.jpg)
292 5. start video recording
293 6. cancel capture image (wac_camera_scenario1.jpg)
294 7. wait for 10 sec using timer
295 8. stop video recording
299 static Camera_Operation cameraOp1;
300 static Camera_Operation cameraOp2;
301 static Camera_Operation cameraOp3;
302 static Camera_Operation cameraOp4;
304 static const int gWaitingTime = 10;
306 static int scenarioSuccessCount = 0;
309 static void EwkWacCameraScenarioPreviewCb(JSValueRef element, void* userParam)
311 fprintf(stderr, "##### success callback for ewk_view_camera_create_preview_node\n");
312 scenarioSuccessCount++;
315 static void EwkWacCameraScenarioErrorCb(int errorcode, void* userParam)
317 fprintf(stderr, "##### error callback\n");
320 static void EwkWacCameraScenarioImgSuccessCb(const char* filename, void* userParam)
322 fprintf(stderr, "##### success callback - filename : [%s]\n", filename);
325 fp = fopen(filename, "r");
328 scenarioSuccessCount++;
330 fprintf(stderr, "##### Error : the file is not exist\n", filename);
333 static void EwkWacCameraScenarioVideoSuccessCb(const char* filename, void* userParam)
335 fprintf(stderr, "##### success callback - filename : [%s]\n", filename);
338 fp = fopen(filename, "r");
341 scenarioSuccessCount++;
343 fprintf(stderr, "##### Error : the file is not exist\n", filename);
345 EXPECT_EQ(scenarioSuccessCount, 3);
349 static Eina_Bool waitingTimerCallback(void *data)
351 static int recordingTime = 0;
355 fprintf(stderr, "##### waiting [%d] ...\n", recordingTime);
357 if (recordingTime > gWaitingTime) {
358 fprintf(stderr, "##### 3. ewk_view_camera_stop_video_capture\n");
359 ewk_view_camera_stop_video_capture((Camera_Object)data);
367 static void onEwkWacCameraScenario01Test(void* data, Evas_Object* webView, void* eventInfo)
369 CameraArray cameraArray;
370 memset(&cameraArray, 0x00, sizeof(CameraArray));
372 fprintf(stderr, "#####################################\n");
373 fprintf(stderr, "# Scenario \n");
374 fprintf(stderr, "# 1. get cameras\n");
375 fprintf(stderr, "# 2. create preview node\n");
376 fprintf(stderr, "# 3. capture image (wac_camera_scenario1.jpg)\n");
377 fprintf(stderr, "# 4. capture image (wac_camera_scenario2.jpg)\n");
378 fprintf(stderr, "# 5. start video recording\n");
379 fprintf(stderr, "# 6. cancel capture image (wac_camera_scenario1.jpg)\n");
380 fprintf(stderr, "# 7. wait for 10 sec using timer\n");
381 fprintf(stderr, "# 8. stop video recording\n");
382 fprintf(stderr, "#####################################\n\n");
384 fprintf(stderr, "##### 1. ewk_view_camera_get_cameras\n");
385 if (ewk_view_camera_get_cameras(&cameraArray)) {
387 fprintf(stderr, "##### 2. ewk_view_camera_create_preview_node\n");
388 cameraOp1 = ewk_view_camera_create_preview_node(cameraArray.camera[0], webView,
389 EwkWacCameraScenarioPreviewCb, EwkWacCameraScenarioErrorCb, cameraArray.camera[0]);
391 fprintf(stderr, "##### 3. ewk_view_camera_capture_image [1]\n");
392 cameraOp2 = ewk_view_camera_capture_image(cameraArray.camera[0], "/mnt/ums/Downloads/Others/wac_camera_scenario1.jpg", false,
393 EwkWacCameraScenarioImgSuccessCb, EwkWacCameraScenarioErrorCb, cameraArray.camera[0]);
395 fprintf(stderr, "##### 4. ewk_view_camera_capture_image [2]\n");
396 cameraOp3 = ewk_view_camera_capture_image(cameraArray.camera[0], "/mnt/ums/Downloads/Others/wac_camera_scenario2.jpg", false,
397 EwkWacCameraScenarioImgSuccessCb, EwkWacCameraScenarioErrorCb, cameraArray.camera[0]);
399 fprintf(stderr, "##### 5. ewk_view_camera_start_video_capture\n");
400 cameraOp4 = ewk_view_camera_start_video_capture(cameraArray.camera[0], "/mnt/ums/Downloads/Others/wac_camera_scenario.mp4", false,
401 EwkWacCameraScenarioVideoSuccessCb, EwkWacCameraScenarioErrorCb, cameraArray.camera[0]);
403 fprintf(stderr, "##### 6. ewk_view_camera_cancel\n");
404 ewk_view_camera_cancel(cameraArray.camera[0], cameraOp2);
406 if (cameraArray.camera[1])
407 ewk_view_camera_remove_camera(cameraArray.camera[1]);
409 fprintf(stderr, "##### 7. wait for 10 sec using timer\n");
410 gRecordingVideoTimer = ecore_timer_add(1.0, waitingTimerCallback, cameraArray.camera[0]);
413 EXPECT_EQ(true, false);
418 TEST(DISABLED_EwkWacCameraTests, EwkWacCameraCancelTest)
420 fprintf(stderr, "##### TEST : Cancel Record Video\n");
421 RUN_TEST(getDummyLocalFileUrl(), onEwkWacCameraScenario01Test, "load,finished", 0);