Add virtual ConsoleMessage in class utc_blink_ewk_base
authorPiotr Sieduszewski <p.sieduszews@samsung.com>
Mon, 8 Dec 2014 12:45:14 +0000 (13:45 +0100)
committerYoungsoo Choi <kenshin.choi@samsung.com>
Tue, 10 Jul 2018 06:57:09 +0000 (06:57 +0000)
This method makes it easier to catch console message in unit tests

Bug: http://107.108.218.239/bugzilla/show_bug.cgi?id=9556

Change-Id: Ie690042643c605b2f075c2041278dc2a9fbd73b0
Signed-off-by: Piotr Sieduszewski <p.sieduszews@samsung.com>
tizen_src/ewk/unittest/utc_blink_ewk_base.cpp
tizen_src/ewk/unittest/utc_blink_ewk_base.h

index 69dc5ed..045d410 100644 (file)
@@ -133,7 +133,7 @@ void utc_blink_ewk_base::SetUp()
     evas_object_smart_callback_add(ewk_webview, "load,progress", load_progress_cb, this);
     evas_object_smart_callback_add(ewk_webview, "load,progress,started", load_progress_started_cb, this);
     evas_object_smart_callback_add(ewk_webview, "load,progress,finished", load_progress_finished_cb, this);
-    evas_object_smart_callback_add(ewk_webview, "console,message", console_message_logger_cb, this);
+    evas_object_smart_callback_add(ewk_webview, "console,message", ToSmartCallback(console_message_cb), this);
 
     PostSetUp();
 }
@@ -148,7 +148,7 @@ void utc_blink_ewk_base::TearDown()
     evas_object_smart_callback_del(ewk_webview, "load,progress", load_progress_cb);
     evas_object_smart_callback_del(ewk_webview, "load,progress,started", load_progress_started_cb);
     evas_object_smart_callback_del(ewk_webview, "load,progress,finished", load_progress_finished_cb);
-    evas_object_smart_callback_del(ewk_webview, "console,message", console_message_logger_cb);
+    evas_object_smart_callback_del(ewk_webview, "console,message", ToSmartCallback(console_message_cb));
 
     EwkDeinit();
 
@@ -207,22 +207,17 @@ void utc_blink_ewk_base::load_progress_finished_cb(void* data, Evas_Object* webv
     ut->LoadProgressFinished(webview);
 }
 
-void utc_blink_ewk_base::console_message_logger_cb(void* data, Evas_Object* webview, void* event_info)
+void utc_blink_ewk_base::ConsoleMessage(Evas_Object*webview, const Ewk_Console_Message* msg)
 {
-  if (data && event_info) {
-    utc_blink_ewk_base* owner = static_cast<utc_blink_ewk_base*>(data);
-
-    if (owner->log_javascript && owner->ewk_webview == webview) {
-      Ewk_Console_Message* console = static_cast<Ewk_Console_Message*>(event_info);
-      const char *msg = ewk_console_message_text_get(console);
-
-      if (msg) {
-        utc_message("JavaScript::console (%p): %s", webview, msg);
-      } else {
-        utc_message("JavaScript::console (%p) ERROR: NULL messsage", webview);
-      }
-    }
-  }
+  EXPECT_EQ(ewk_webview, webview);
+  if (log_javascript)
+    utc_message("JavaScript::console (%p):\t\"%s\"", webview, ewk_console_message_text_get(msg));
+}
+
+void utc_blink_ewk_base::console_message_cb(utc_blink_ewk_base* owner, Evas_Object* webview, Ewk_Console_Message* console)
+{
+  ASSERT_TRUE(owner);
+  owner->ConsoleMessage(webview, console);
 }
 
 Eina_Bool utc_blink_ewk_base::timeout_cb(void *data)
index 1e15b68..46b7925 100644 (file)
@@ -240,6 +240,11 @@ protected:
     virtual void LoadProgressFinished(Evas_Object* webview) {}
 
     /**
+     * Override this method if you need to handle "console,message" ewk callback.
+     */
+    virtual void ConsoleMessage(Evas_Object* webview, const Ewk_Console_Message*);
+
+    /**
      * Performs unit test setup. It calls PreSetUp before default initialization
      * and PostSetUp after default initialization.
      *
@@ -314,9 +319,9 @@ private:
     static void load_progress_finished_cb(void* data, Evas_Object* webview, void* event_info);
 
     /**
-     * Default "console,message" event callback, logs message to console using utc_message
+     * Default "console,message" event callback, will call ConsoleMessage method
      */
-    static void console_message_logger_cb(void* data, Evas_Object* webview, void* event_info);
+    static void console_message_cb(utc_blink_ewk_base*, Evas_Object*, Ewk_Console_Message*);
 
     /**
      * Default event loop timeout callback, will call TimeOut method