[UTC][webkit2][Non-ACR][Fix chromium-efl's intercept request API tests]
authorGrzegorz Ludwikowski <g.ludwikowsk@samsung.com>
Thu, 17 Nov 2016 15:21:01 +0000 (16:21 +0100)
committerGrzegorz Ludwikowski <g.ludwikowsk@samsung.com>
Thu, 17 Nov 2016 15:27:45 +0000 (16:27 +0100)
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 <g.ludwikowsk@samsung.com>
src/utc/webkit2/utc_webkit2_ewk_intercept_request_response_header_add_func.c
src/utc/webkit2/utc_webkit2_ewk_intercept_request_response_header_map_add_func.c
src/utc/webkit2/utc_webkit2_ewk_intercept_request_response_status_set_func.c

index 7b847fe..a20ef6c 100755 (executable)
@@ -35,11 +35,14 @@ static const char body_format[] =
     "<body><script>"
     "function ajax_listener() {%s}"
     "window.onload = function() {"
-    "var ajax = new XMLHttpRequest();"
-    "ajax.onload = ajax_listener;"
-    "ajax.open('GET','%s', true);"
-    "ajax.send();"
-    "}"
+    "  setTimeout("
+    "    function() {"
+    "      var ajax = new XMLHttpRequest();"
+    "      ajax.onload = ajax_listener;"
+    "      ajax.open('GET','%s', true);"
+    "      ajax.send();"
+    "    }, 1000);"
+    "  }"
     "</script>"
     "</body></html>";
 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();
index 8f6b35f..5126796 100755 (executable)
@@ -35,11 +35,14 @@ static const char body_format[] =
     "<body><script>"
     "function ajax_listener() {%s}"
     "window.onload = function() {"
-    "var ajax = new XMLHttpRequest();"
-    "ajax.onload = ajax_listener;"
-    "ajax.open('GET','%s', true);"
-    "ajax.send();"
-    "}"
+    "  setTimeout("
+    "    function() {"
+    "      var ajax = new XMLHttpRequest();"
+    "      ajax.onload = ajax_listener;"
+    "      ajax.open('GET','%s', true);"
+    "      ajax.send();"
+    "    }, 1000);"
+    "  }"
     "</script>"
     "</body></html>";
 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();
index 25f71a0..e648fd4 100755 (executable)
@@ -33,11 +33,14 @@ static const char body_format[] =
     "<body><script>"
     "function ajax_listener() {%s}"
     "window.onload = function() {"
-    "var ajax = new XMLHttpRequest();"
-    "ajax.onload = ajax_listener;"
-    "ajax.open('GET','%s', true);"
-    "ajax.send();"
-    "}"
+    "  setTimeout("
+    "    function() {"
+    "      var ajax = new XMLHttpRequest();"
+    "      ajax.onload = ajax_listener;"
+    "      ajax.open('GET','%s', true);"
+    "      ajax.send();"
+    "    }, 1000);"
+    "  }"
     "</script>"
     "</body></html>";
 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));