[ITC/UTC][webkit2][NON-ACR][Update TC ewk_view_resume/ewk_view_suspend]
authorsihoons.yang <sihoons.yang@samsung.com>
Tue, 19 Jul 2016 11:37:30 +0000 (20:37 +0900)
committersihoons.yang <sihoons.yang@samsung.com>
Tue, 19 Jul 2016 11:39:34 +0000 (20:39 +0900)
-fix crash on ITC

Change-Id: Ib6245e758868db135565aa2403d6c76d47373296
Signed-off-by: sihoons.yang <sihoons.yang@samsung.com>
src/itc/webkit2/ITs-webkit2-view.c
src/utc/webkit2/utc_webkit2_ewk_view_resume_func.c
src/utc/webkit2/utc_webkit2_ewk_view_suspend_func.c

index 5bbf838..6db542e 100755 (executable)
@@ -75,7 +75,8 @@ static void Webkit_EFL_LoadProgress(void* data, Evas_Object* eObject, void* data
 static void Webkit_EFL_LoadStarted(void* data, Evas_Object* eObject, void* dataFinished)
 {
        FPRINTF("[Line : %d][%s] Webkit_EFL_LoadStarted Invoked\\n", __LINE__, API_NAMESPACE);
-       Webkit_EFL_main_loop_quit();
+  ewk_view_suspend(objWebkit_EFL_view.webview);
+  ewk_view_resume(objWebkit_EFL_view.webview);
 }
 
 /**
@@ -127,7 +128,7 @@ static void Webkit_EFL_ScriptExecutionFinished(Evas_Object* webview, const char*
 
 /**
 * @function            Webkit_emergency_exit_func
-* @description         emrgency exit function 
+* @description         emrgency exit function
 * @parameter           user data
 * @return                      NA
 */
@@ -141,7 +142,7 @@ static Eina_Bool Webkit_emergency_exit_func(void* user_data) {
 
 /**
 * @function            Webkit_intercept_request_callback
-* @description         callback function 
+* @description         callback function
 * @parameter           Evas_Object* o, Ewk_Intercept_Request* intercept_request, void* user_data
 * @return                      NA
 */
@@ -223,7 +224,7 @@ int ITc_ewk_view_add_p(void)
        g_type_init();
     ewk_context_default_get();
 #endif         //End TV
-       
+
        Evas_Object* pWindow = elm_win_add(NULL, "TC Launcher", ELM_WIN_BASIC);
        if ( NULL == pWindow )
        {
@@ -2041,26 +2042,25 @@ int ITc_ewk_view_suspend_p(void)
                return 1;
        }
 
-       evas_object_smart_callback_add(objWebkit_EFL_view.webview, "load,progress", Webkit_EFL_LoadProgress, NULL);
+       evas_object_smart_callback_add(objWebkit_EFL_view.webview, "load,started", Webkit_EFL_LoadStarted, NULL);
+  evas_object_smart_callback_add(objWebkit_EFL_view.webview, "load,finished", Webkit_EFL_LoadFinished, NULL);
        evas_object_smart_callback_add(objWebkit_EFL_view.webview, "load,error", Webkit_EFL_LoadError, NULL);
        g_bWebkit_EFL_LoadSuccess = false;
        if ( EINA_TRUE != ewk_view_url_set(objWebkit_EFL_view.webview, pPath) )
        {
                FPRINTF("[Line : %d][%s] ewk_view_url_set returned error on API call\\n", __LINE__, API_NAMESPACE);
-               evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,progress", Webkit_EFL_LoadProgress);
-               evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,error", Webkit_EFL_LoadError);
+       evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,started", Webkit_EFL_LoadStarted);
+  evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,finished", Webkit_EFL_LoadFinished);
+  evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,error", Webkit_EFL_LoadError);
 
                Webkit_EFLDestroyWebKitView();
                return 1;
        }
 
        Webkit_EFL_main_loop_begin();
-       //Target API
-       ewk_view_suspend(objWebkit_EFL_view.webview);
-       ewk_view_resume(objWebkit_EFL_view.webview);
 
-
-       evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,progress", Webkit_EFL_LoadProgress);
+       evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,started", Webkit_EFL_LoadStarted);
+  evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,finished", Webkit_EFL_LoadFinished);
        evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,error", Webkit_EFL_LoadError);
        Webkit_EFLDestroyWebKitView();
        return 0;
@@ -2101,8 +2101,8 @@ int ITc_ewk_view_resume_p(void)
                return 1;
        }
 
-       evas_object_smart_callback_add(objWebkit_EFL_view.webview, "load,finished", Webkit_EFL_LoadFinished, NULL);
        evas_object_smart_callback_add(objWebkit_EFL_view.webview, "load,started", Webkit_EFL_LoadStarted, NULL);
+       evas_object_smart_callback_add(objWebkit_EFL_view.webview, "load,finished", Webkit_EFL_LoadFinished, NULL);
        evas_object_smart_callback_add(objWebkit_EFL_view.webview, "load,error", Webkit_EFL_LoadError, NULL);
        g_bWebkit_EFL_LoadSuccess = false;
        if ( EINA_TRUE != ewk_view_url_set(objWebkit_EFL_view.webview, pPath) )
@@ -2116,9 +2116,6 @@ int ITc_ewk_view_resume_p(void)
        }
 
        Webkit_EFL_main_loop_begin();
-       ewk_view_suspend(objWebkit_EFL_view.webview);
-       //Target API
-       ewk_view_resume(objWebkit_EFL_view.webview);
 
        evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,started", Webkit_EFL_LoadStarted);
        evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,finished", Webkit_EFL_LoadFinished);
@@ -2890,7 +2887,7 @@ int ITc_ewk_view_html_string_load_p(void)
 * @description                 To test ewk_view_html_string_load
 * @scenario                            Call ewk_view_evaluate_javascript
 * @apicovered                  ewk_view_evaluate_javascript
-* @passcase                            When ewk_view_evaluate_javascript is successful 
+* @passcase                            When ewk_view_evaluate_javascript is successful
 * @failcase                            If target API fails or return invalid value
 * @precondition                        None
 * @postcondition               None
@@ -2911,7 +2908,7 @@ int ITc_ewk_view_evaluate_javascript_p(void)
        }
        evas_object_smart_callback_add(objWebkit_EFL_view.webview, "load,finished", Webkit_EFL_LoadFinished, NULL);
        evas_object_smart_callback_add(objWebkit_EFL_view.webview, "load,error", Webkit_EFL_LoadError, NULL);
-       
+
     if ( EINA_TRUE != ewk_view_url_set(objWebkit_EFL_view.webview, pPath) )
     {
         FPRINTF("[Line : %d][%s] ewk_view_url_set returned error on API call\\n", __LINE__, API_NAMESPACE);
@@ -2920,10 +2917,10 @@ int ITc_ewk_view_evaluate_javascript_p(void)
         Webkit_EFLDestroyWebKitView();
         return 1;
     }
-       
+
        Eina_Bool bResult = EINA_FALSE;
        Webkit_EFL_main_loop_begin();
-       
+
        bResult = ewk_view_evaluate_javascript(objWebkit_EFL_view.webview, "sendResult",TEST_STRING);
        if ( EINA_TRUE != bResult )
        {
@@ -2952,7 +2949,7 @@ static void Webkit_EFL_message_handler_add(Evas_Object* view, Ewk_Script_Message
        if (!strcmp(name,"MyJavaScriptInterface"))
        {
         FPRINTF("[Line : %d][%s]Inside callback \"Webkit_EFL_message_handler_add  - Same message received\"\\n", __LINE__, API_NAMESPACE);
-    } 
+    }
        else
        {
         FPRINTF("[Line : %d][%s]Inside callback \"Webkit_EFL_message_handler_add  - Mismatch Received sent message\"\\n", __LINE__, API_NAMESPACE);
@@ -2971,7 +2968,7 @@ static void Webkit_EFL_message_handler_add(Evas_Object* view, Ewk_Script_Message
 * @description                 To test ITc_ewk_view_javascript_message_handler_add_p
 * @scenario                            Call ITc_ewk_view_javascript_message_handler_add_p
 * @apicovered                  ITc_ewk_view_javascript_message_handler_add_p
-* @passcase                            When ITc_ewk_view_javascript_message_handler_add_p is successful 
+* @passcase                            When ITc_ewk_view_javascript_message_handler_add_p is successful
 * @failcase                            If target API fails or return invalid value
 * @precondition                        None
 * @postcondition               None
@@ -2990,14 +2987,14 @@ int ITc_ewk_view_javascript_message_handler_add_p(void)
                return 1;
        }
 
-       Eina_Bool bResult = EINA_FALSE; 
-       
+       Eina_Bool bResult = EINA_FALSE;
+
        evas_object_smart_callback_add(objWebkit_EFL_view.webview, "load,finished", Webkit_EFL_LoadFinished, NULL);
        evas_object_smart_callback_add(objWebkit_EFL_view.webview, "load,error", Webkit_EFL_LoadError, NULL);
        evas_object_smart_callback_add(objWebkit_EFL_view.webview, "message,handler,add", Webkit_EFL_message_handler_add, NULL);
-       
+
        //Webkit_EFL_main_loop_begin();
-       
+
        bResult = ewk_view_javascript_message_handler_add(objWebkit_EFL_view.webview, Webkit_EFL_message_handler_add,"MyJavaScriptInterface");
        if ( EINA_TRUE != bResult )
        {
@@ -3009,7 +3006,7 @@ int ITc_ewk_view_javascript_message_handler_add_p(void)
                return 1;
        }
        g_bWebkit_EFL_LoadSuccess = false;
-       
+
        if ( EINA_TRUE != ewk_view_url_set(objWebkit_EFL_view.webview, pPath) )
        {
                FPRINTF("[Line : %d][%s] ewk_view_url_set returned error on API call\\n", __LINE__, API_NAMESPACE);
@@ -3019,7 +3016,7 @@ int ITc_ewk_view_javascript_message_handler_add_p(void)
                return 1;
        }
        Webkit_EFL_main_loop_begin();
-       
+
        if ( false == g_bWebkit_EFL_LoadSuccess )
        {
                FPRINTF("[Line : %d][%s] Unable to set view URL; Load error occurs with file : %s\\n", __LINE__, API_NAMESPACE, pPath);
@@ -3028,7 +3025,7 @@ int ITc_ewk_view_javascript_message_handler_add_p(void)
                Webkit_EFLDestroyWebKitView();
                return 1;
        }
-               
+
        bResult = ewk_view_script_execute(objWebkit_EFL_view.webview, TEST_JS_SCRIPT, Webkit_EFL_ScriptExecutionFinished, NULL);
        if ( bResult != EINA_TRUE )
        {
@@ -3052,7 +3049,7 @@ int ITc_ewk_view_javascript_message_handler_add_p(void)
        evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,finished", Webkit_EFL_LoadFinished);
        evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,error", Webkit_EFL_LoadError);
        evas_object_smart_callback_del(objWebkit_EFL_view.webview, "message,handler,add", NULL);
-       
+
        Webkit_EFLDestroyWebKitView();
        return 0;
 }
@@ -3122,7 +3119,7 @@ int ITc_ewk_context_intercept_request_callback_set_p(void)
        if(g_HttpMethod == NULL) {
                FPRINTF("[Line : %d][%s] http method not called \\n", __LINE__, API_NAMESPACE);
                evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,finished", Webkit_EFL_LoadFinished);
-               evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,error", Webkit_EFL_LoadError);         
+               evas_object_smart_callback_del(objWebkit_EFL_view.webview, "load,error", Webkit_EFL_LoadError);
                Webkit_EFLDestroyWebKitView();
                return 1;
        }
index 2f2f569..1d402e9 100755 (executable)
@@ -38,6 +38,12 @@ static void loadError(void* data, Evas_Object* webview, void* event_info)
     utc_webkit2_main_loop_quit();
 }
 
+static void loadStarted(void* data, Evas_Object* eObject, void* dataFinished)
+{
+    ewk_view_suspend(test_view.webview);
+    ewk_view_resume(test_view.webview);
+}
+
 /* Startup and cleanup functions */
 /**
  * @function           utc_webkit2_ewk_view_resume_startup
@@ -48,6 +54,7 @@ static void loadError(void* data, Evas_Object* webview, void* event_info)
 void utc_webkit2_ewk_view_resume_startup(void)
 {
     utc_webkit2_ewk_test_init();
+    evas_object_smart_callback_add(test_view.webview, "load,started", loadStarted, NULL);
     evas_object_smart_callback_add(test_view.webview, "load,finished", loadFinished, NULL);
     evas_object_smart_callback_add(test_view.webview, "load,error", loadError, NULL);
 }
@@ -60,6 +67,7 @@ void utc_webkit2_ewk_view_resume_startup(void)
  */
 void utc_webkit2_ewk_view_resume_cleanup(void)
 {
+    evas_object_smart_callback_del(test_view.webview, "load,started", loadStarted);
     evas_object_smart_callback_del(test_view.webview, "load,finished", loadFinished);
     evas_object_smart_callback_del(test_view.webview, "load,error", loadError);
     utc_webkit2_ewk_test_end();
@@ -80,9 +88,6 @@ int utc_webkit2_ewk_view_resume_p(void)
     utc_webkit2_main_loop_begin();
     assert_eq(isLoadSucceed, EINA_TRUE);
 
-    ewk_view_suspend(test_view.webview);
-    ewk_view_resume(test_view.webview);
-
     return 0;
 }
 
index 5a6c845..f55b674 100755 (executable)
@@ -38,6 +38,12 @@ static void loadError(void* data, Evas_Object* webview, void* event_info)
     utc_webkit2_main_loop_quit();
 }
 
+static void loadProgress(void *data, Evas_Object *webview, void *arg)
+{
+    ewk_view_suspend(test_view.webview);
+    ewk_view_resume(test_view.webview);
+}
+
 /* Startup and cleanup functions */
 /**
  * @function           utc_webkit2_ewk_view_suspend_startup
@@ -48,7 +54,8 @@ static void loadError(void* data, Evas_Object* webview, void* event_info)
 void utc_webkit2_ewk_view_suspend_startup(void)
 {
     utc_webkit2_ewk_test_init();
-    evas_object_smart_callback_add(test_view.webview, "load,progress", loadFinished, NULL);
+    evas_object_smart_callback_add(test_view.webview, "load,progress", loadProgress, NULL);
+    evas_object_smart_callback_add(test_view.webview, "load,finished", loadFinished, NULL);
     evas_object_smart_callback_add(test_view.webview, "load,error", loadError, NULL);
 }
 
@@ -60,7 +67,8 @@ void utc_webkit2_ewk_view_suspend_startup(void)
  */
 void utc_webkit2_ewk_view_suspend_cleanup(void)
 {
-    evas_object_smart_callback_del(test_view.webview, "load,progress", loadFinished);
+    evas_object_smart_callback_del(test_view.webview, "load,progress", loadProgress);
+    evas_object_smart_callback_del(test_view.webview, "load,finished", loadFinished);
     evas_object_smart_callback_del(test_view.webview, "load,error", loadError);
     utc_webkit2_ewk_test_end();
 }
@@ -79,7 +87,6 @@ int utc_webkit2_ewk_view_suspend_p(void)
     loadURL(COMMON_SAMPLE_HTML_FILE);
     utc_webkit2_main_loop_begin();
     assert_eq(isLoadSucceed, EINA_TRUE);
-    ewk_view_suspend(test_view.webview);
 
     return 0;
 }
@@ -88,7 +95,7 @@ int utc_webkit2_ewk_view_suspend_p(void)
  * @testcase           utc_webkit2_ewk_view_suspend_n
  * @since_tizen                2.3
  * @description                Suspends the operation associated with the view object
- * @scenario        Check operation entered incorrect parameter        
+ * @scenario        Check operation entered incorrect parameter
  */
 int utc_webkit2_ewk_view_suspend_n(void)
 {