From f6751e001086d8d414d5ef1712d340661b8d3bdc Mon Sep 17 00:00:00 2001 From: Grzegorz Ludwikowski Date: Thu, 17 Nov 2016 16:21:01 +0100 Subject: [PATCH] [UTC][webkit2][Non-ACR][Fix chromium-efl's intercept request API tests] Some of the tests for chromium-efl's intercept request API had a subtle timing issue between "title,changed" and "load,finished" callbacks. In test code we relied on certian order and quantity of those callbacks, so it broke when "title,changed" behavior was slightly changed due to reference browser team's request. Bug: http://suprem.sec.samsung.net/jira/browse/TWF-2500 Change-Id: I3e5ae5e5a928c420833381521f89f0677a5146f5 Signed-off-by: Grzegorz Ludwikowski --- ...wk_intercept_request_response_header_add_func.c | 27 ++++++++++++---------- ...ntercept_request_response_header_map_add_func.c | 24 +++++++++++-------- ...wk_intercept_request_response_status_set_func.c | 17 ++++++++------ 3 files changed, 39 insertions(+), 29 deletions(-) diff --git a/src/utc/webkit2/utc_webkit2_ewk_intercept_request_response_header_add_func.c b/src/utc/webkit2/utc_webkit2_ewk_intercept_request_response_header_add_func.c index 7b847fe..a20ef6c 100755 --- a/src/utc/webkit2/utc_webkit2_ewk_intercept_request_response_header_add_func.c +++ b/src/utc/webkit2/utc_webkit2_ewk_intercept_request_response_header_add_func.c @@ -35,11 +35,14 @@ static const char body_format[] = "" ""; static const char body_ajax_done[] = "dummy ajax payload"; @@ -79,8 +82,7 @@ static void load_error(void* data, Evas_Object* webview, void* event_info) { static void title_changed(void* data, Evas_Object* webview, void* event_info) { const char* title = ewk_view_title_get(test_view.webview); - load_success = EINA_TRUE; - if (strcmp(title, base_title) != 0) { + if (load_success && strcmp(title, base_title) != 0) { utc_webkit2_main_loop_quit(); } } @@ -129,6 +131,11 @@ static void intercept_request_callback_neg_3(Evas_Object* o, Ewk_Intercept_Reque */ void utc_webkit2_ewk_intercept_request_response_header_add_func_startup(void) { + header_add_1_result = EINA_FALSE; + header_add_2_result = EINA_FALSE; + load_success = EINA_FALSE; + first_title_equal_base_title = 0; + int size; size = snprintf(NULL, 0, body_ajax_test_format, test_header_field_1, test_header_field_1, test_header_field_2, test_header_field_2); body_ajax_test_done = (char*)malloc((size + 1) * sizeof(char)); @@ -177,6 +184,7 @@ void utc_webkit2_ewk_intercept_request_response_header_add_func_cleanup(void) */ void utc_webkit2_ewk_intercept_request_response_header_add_func_neg_startup(void) { + header_add_1_result = EINA_TRUE; emergency_exit_timer = NULL; timeout = EINA_FALSE; @@ -210,8 +218,6 @@ void utc_webkit2_ewk_intercept_request_response_header_add_func_neg_cleanup(void */ int utc_webkit2_ewk_intercept_request_response_header_add_p(void) { - header_add_1_result = EINA_FALSE; - header_add_2_result = EINA_FALSE; ewk_view_url_set(test_view.webview, intercept_url); utc_webkit2_main_loop_begin(); @@ -234,7 +240,6 @@ int utc_webkit2_ewk_intercept_request_response_header_add_n(void); int utc_webkit2_ewk_intercept_request_response_header_add_n(void) { emergency_exit_timer = ecore_timer_add(5, emergency_exit_func, &emergency_exit_timer); - header_add_1_result = EINA_TRUE; ewk_context_intercept_request_callback_set(ewk_view_context_get(test_view.webview), intercept_request_callback_neg_1, NULL); ewk_view_url_set(test_view.webview, intercept_url); utc_webkit2_main_loop_begin(); @@ -253,7 +258,6 @@ int utc_webkit2_ewk_intercept_request_response_header_add_n(void) int utc_webkit2_ewk_intercept_request_response_header_add_n1(void) { emergency_exit_timer = ecore_timer_add(5, emergency_exit_func, &emergency_exit_timer); - header_add_1_result = EINA_TRUE; ewk_context_intercept_request_callback_set(ewk_view_context_get(test_view.webview), intercept_request_callback_neg_2, NULL); ewk_view_url_set(test_view.webview, intercept_url); utc_webkit2_main_loop_begin(); @@ -272,7 +276,6 @@ int utc_webkit2_ewk_intercept_request_response_header_add_n1(void) int utc_webkit2_ewk_intercept_request_response_header_add_n2(void) { emergency_exit_timer = ecore_timer_add(5, emergency_exit_func, &emergency_exit_timer); - header_add_1_result = EINA_TRUE; ewk_context_intercept_request_callback_set(ewk_view_context_get(test_view.webview), intercept_request_callback_neg_3, NULL); ewk_view_url_set(test_view.webview, intercept_url); utc_webkit2_main_loop_begin(); diff --git a/src/utc/webkit2/utc_webkit2_ewk_intercept_request_response_header_map_add_func.c b/src/utc/webkit2/utc_webkit2_ewk_intercept_request_response_header_map_add_func.c index 8f6b35f..5126796 100755 --- a/src/utc/webkit2/utc_webkit2_ewk_intercept_request_response_header_map_add_func.c +++ b/src/utc/webkit2/utc_webkit2_ewk_intercept_request_response_header_map_add_func.c @@ -35,11 +35,14 @@ static const char body_format[] = "" ""; static const char body_ajax_done[] = "dummy ajax payload"; @@ -79,8 +82,7 @@ static void load_error(void* data, Evas_Object* webview, void* event_info) { static void title_changed(void* data, Evas_Object* webview, void* event_info) { const char* title = ewk_view_title_get(test_view.webview); - load_success = EINA_TRUE; - if (strcmp(title, base_title) != 0) { + if (load_success && strcmp(title, base_title) != 0) { utc_webkit2_main_loop_quit(); } } @@ -124,6 +126,10 @@ static void intercept_request_callback_neg_2(Evas_Object* o, Ewk_Intercept_Reque */ void utc_webkit2_ewk_intercept_request_response_header_map_add_func_startup(void) { + load_success = EINA_FALSE; + first_title_equal_base_title = 0; + header_map_add_result = EINA_FALSE; + int size; size = snprintf(NULL, 0, body_ajax_test_format, test_header_field_1, test_header_field_1, test_header_field_2, test_header_field_2); body_ajax_test_done = (char*)malloc((size + 1) * sizeof(char)); @@ -178,6 +184,7 @@ void utc_webkit2_ewk_intercept_request_response_header_map_add_func_cleanup(void */ void utc_webkit2_ewk_intercept_request_response_header_map_add_func_neg_startup(void) { + header_map_add_result = EINA_TRUE; emergency_exit_timer = NULL; timeout = EINA_FALSE; @@ -217,7 +224,6 @@ void utc_webkit2_ewk_intercept_request_response_header_map_add_func_neg_cleanup( */ int utc_webkit2_ewk_intercept_request_response_header_map_add_p(void) { - header_map_add_result = EINA_FALSE; ewk_view_url_set(test_view.webview, intercept_url); utc_webkit2_main_loop_begin(); @@ -239,7 +245,6 @@ int utc_webkit2_ewk_intercept_request_response_header_map_add_n1(void); int utc_webkit2_ewk_intercept_request_response_header_map_add_n(void) { emergency_exit_timer = ecore_timer_add(5, emergency_exit_func, &emergency_exit_timer); - header_map_add_result = EINA_TRUE; ewk_context_intercept_request_callback_set(ewk_view_context_get(test_view.webview), intercept_request_callback_neg_1, NULL); ewk_view_url_set(test_view.webview, intercept_url); utc_webkit2_main_loop_begin(); @@ -258,7 +263,6 @@ int utc_webkit2_ewk_intercept_request_response_header_map_add_n(void) int utc_webkit2_ewk_intercept_request_response_header_map_add_n1(void) { emergency_exit_timer = ecore_timer_add(5, emergency_exit_func, &emergency_exit_timer); - header_map_add_result = EINA_TRUE; ewk_context_intercept_request_callback_set(ewk_view_context_get(test_view.webview), intercept_request_callback_neg_2, NULL); ewk_view_url_set(test_view.webview, intercept_url); utc_webkit2_main_loop_begin(); diff --git a/src/utc/webkit2/utc_webkit2_ewk_intercept_request_response_status_set_func.c b/src/utc/webkit2/utc_webkit2_ewk_intercept_request_response_status_set_func.c index 25f71a0..e648fd4 100755 --- a/src/utc/webkit2/utc_webkit2_ewk_intercept_request_response_status_set_func.c +++ b/src/utc/webkit2/utc_webkit2_ewk_intercept_request_response_status_set_func.c @@ -33,11 +33,14 @@ static const char body_format[] = "" ""; static const char body_ajax_done[] = "dummy ajax payload"; @@ -71,8 +74,7 @@ static void load_error(void* data, Evas_Object* webview, void* event_info) { static void title_changed(void* data, Evas_Object* webview, void* event_info) { const char* title = ewk_view_title_get(test_view.webview); - load_success = EINA_TRUE; - if (strcmp(title, base_title) != 0) { + if (load_success && strcmp(title, base_title) != 0) { utc_webkit2_main_loop_quit(); } } @@ -113,6 +115,7 @@ void utc_webkit2_ewk_intercept_request_response_status_set_func_startup(void) { status_set_result = EINA_FALSE; load_success = EINA_FALSE; + first_title_equal_base_title = -1; int size = snprintf(NULL, 0, body_format, base_title, body_ajax_test_done, intercept_url_ajax); body_done = (char*)malloc((size + 1) * sizeof(char)); -- 2.7.4