Fix user agent setter unittests
authorTomasz Czekala <t.czekala@partner.samsung.com>
Tue, 3 Feb 2015 07:41:55 +0000 (08:41 +0100)
committerYoungsoo Choi <kenshin.choi@samsung.com>
Tue, 10 Jul 2018 06:57:09 +0000 (06:57 +0000)
Unittests for ewk_view_user_agent_set didn't test it properly. Positive test
case didn't even invoke ewk_view_user_agent_set. This patch adds
meaningful tests and adds tests for empty and NULL string

Bug: http://107.108.218.239/bugzilla/show_bug.cgi?id=10887
Reviewed by: DONGJUN KiM, Piotr Tworek

Change-Id: Ibba46e6579a8542914310c4a3fae6c2dd38a1768
Signed-off-by: Tomasz Czekala <t.czekala@partner.samsung.com>
tizen_src/ewk/unittest/utc_blink_ewk_view_user_agent_set_func.cpp

index 7d74220..742502f 100755 (executable)
@@ -14,32 +14,6 @@ protected:
   {
     EventLoopStop(utc_blink_ewk_base::Failure); // won't fail the test if EventLoopStop was already called
   }
-
-  void PostSetUp()
-  {
-    evas_object_smart_callback_add(GetEwkWebView(), "title,changed", title_changed, this);
-  }
-
-  void PreTearDown()
-  {
-    evas_object_smart_callback_del(GetEwkWebView(), "title,changed", title_changed);
-  }
-
-  static void title_changed(void* data, Evas_Object* webview, void* event_info)
-  {
-    utc_message("[title changed] ::");
-    if(data == NULL)
-      FAIL();
-
-    utc_blink_ewk_view_user_agent_set* owner = static_cast<utc_blink_ewk_view_user_agent_set*>(data);
-
-    char* title = strdup(ewk_view_title_get(owner->GetEwkWebView()));
-
-    if(strcmp(title, USER_AGENT_STRING))
-      owner->EventLoopStop(utc_blink_ewk_base::Success);
-    free(title);
-    title = NULL;
-  }
 };
 
 /**
@@ -47,25 +21,82 @@ protected:
  */
 TEST_F(utc_blink_ewk_view_user_agent_set, POS_TEST)
 {
-   const char textStyleHTML[] =
-    "<html>"
-      "<head>"
-        "<title>User Agent Test</title>"
-        "<script>"
-          "document.title=navigator.userAgent;"
-        "</script>"
-      "</head>"
-      "<body></body>"
-    "</html>";
-
-  Eina_Bool result = ewk_view_html_string_load(GetEwkWebView(), textStyleHTML, 0, 0);
-  if (!result)
-    FAIL();
+  const char* defaultUA = ewk_view_user_agent_get(GetEwkWebView());
+  ASSERT_TRUE(defaultUA);
+  defaultUA = strdup(defaultUA);
+  ASSERT_TRUE(defaultUA);
+  ASSERT_STRNE(defaultUA, USER_AGENT_STRING);
+
+  EXPECT_TRUE(ewk_view_user_agent_set(GetEwkWebView(), USER_AGENT_STRING));
+  const char* ua = ewk_view_user_agent_get(GetEwkWebView());
+  ASSERT_TRUE(ua);
+  ua = strdup(ua);
+  ASSERT_TRUE(ua);
+  EXPECT_STREQ(USER_AGENT_STRING, ua);
+
+  free(ua);
+  free(defaultUA);
+}
 
-  utc_blink_ewk_base::MainLoopResult main_result = EventLoopStart();
+/**
+ * @brief Positive test case of ewk_view_user_agent_set() with empty string
+ */
+TEST_F(utc_blink_ewk_view_user_agent_set, EmptyString)
+{
+  const char* defaultUA = ewk_view_user_agent_get(GetEwkWebView());
+  ASSERT_TRUE(defaultUA);
+  defaultUA = strdup(defaultUA);
+  ASSERT_TRUE(defaultUA);
+  ASSERT_STRNE(defaultUA, USER_AGENT_STRING);
+
+  EXPECT_TRUE(ewk_view_user_agent_set(GetEwkWebView(), USER_AGENT_STRING));
+  const char* ua = ewk_view_user_agent_get(GetEwkWebView());
+  ASSERT_TRUE(ua);
+  ua = strdup(ua);
+  ASSERT_TRUE(ua);
+  EXPECT_STREQ(USER_AGENT_STRING, ua);
+
+  const char* emptyString = "";
+  EXPECT_TRUE(ewk_view_user_agent_set(GetEwkWebView(), emptyString));
+  free(ua);
+  ua = ewk_view_user_agent_get(GetEwkWebView());
+  ASSERT_TRUE(ua);
+  ua = strdup(ua);
+  ASSERT_TRUE(ua);
+  EXPECT_STREQ(defaultUA, ua);
+
+  free(ua);
+  free(defaultUA);
+}
 
-  if (main_result != utc_blink_ewk_base::Success)
-    FAIL();
+/**
+ * @brief Positive test case of ewk_view_user_agent_set() with Null string
+ */
+TEST_F(utc_blink_ewk_view_user_agent_set, NullString)
+{
+  const char* defaultUA = ewk_view_user_agent_get(GetEwkWebView());
+  ASSERT_TRUE(defaultUA);
+  defaultUA = strdup(defaultUA);
+  ASSERT_TRUE(defaultUA);
+  ASSERT_STRNE(defaultUA, USER_AGENT_STRING);
+
+  EXPECT_TRUE(ewk_view_user_agent_set(GetEwkWebView(), USER_AGENT_STRING));
+  const char* ua = ewk_view_user_agent_get(GetEwkWebView());
+  ASSERT_TRUE(ua);
+  ua = strdup(ua);
+  ASSERT_TRUE(ua);
+  EXPECT_STREQ(USER_AGENT_STRING, ua);
+
+  EXPECT_TRUE(ewk_view_user_agent_set(GetEwkWebView(), NULL));
+  free(ua);
+  ua = ewk_view_user_agent_get(GetEwkWebView());
+  ASSERT_TRUE(ua);
+  ua = strdup(ua);
+  ASSERT_TRUE(ua);
+  EXPECT_STREQ(defaultUA, ua);
+
+  free(ua);
+  free(defaultUA);
 }
 
 /**
@@ -73,24 +104,5 @@ TEST_F(utc_blink_ewk_view_user_agent_set, POS_TEST)
  */
 TEST_F(utc_blink_ewk_view_user_agent_set, NEG_TEST)
 {
-  char* userAgent = strdup(ewk_view_user_agent_get(GetEwkWebView()));
-
-  Eina_Bool value = ewk_view_user_agent_set(NULL, "");
-
-  if (EINA_TRUE == value)
-    FAIL();
-
-  char* newUserAgent = strdup(ewk_view_user_agent_get(GetEwkWebView()));
-
-  if(strcmp(newUserAgent, userAgent) != 0) {
-    free(userAgent);
-    free(newUserAgent);
-    userAgent = NULL;
-    newUserAgent = NULL;
-    FAIL();
-  }
-  free(userAgent);
-  free(newUserAgent);
-  userAgent = NULL;
-  newUserAgent = NULL;
-}
\ No newline at end of file
+  EXPECT_FALSE(ewk_view_user_agent_set(NULL, ""));
+}