[dali_2.3.21] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit-internal / utc-Dali-VisualUrl.cpp
index bd5ab62..f94764d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2024 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 
 using namespace Dali::Toolkit::Internal;
 
+namespace
+{
+constexpr uint32_t URL_ELLIPSED_LENGTH = 20u;
+}
+
 int UtcDaliVisualUrlConstructor(void)
 {
   const char* url = "file://bar.org/foobar.gif";
@@ -52,7 +57,7 @@ int UtcDaliVisualUrlConstructor(void)
   DALI_TEST_EQUALS(visualUrl4.GetProtocolType(), VisualUrl::LOCAL, TEST_LOCATION);
 
   VisualUrl visualUrl5("dali://1");
-  visualUrl4 = visualUrl5;
+  visualUrl4 = std::move(visualUrl5);
   DALI_TEST_EQUALS(true, visualUrl4.IsValid(), TEST_LOCATION);
   DALI_TEST_EQUALS(visualUrl4.GetType(), VisualUrl::REGULAR_IMAGE, TEST_LOCATION);
   DALI_TEST_EQUALS(visualUrl4.GetProtocolType(), VisualUrl::TEXTURE, TEST_LOCATION);
@@ -68,6 +73,18 @@ int UtcDaliVisualUrlConstructor(void)
   DALI_TEST_EQUALS(true, visualUrl6.IsValid(), TEST_LOCATION);
   DALI_TEST_EQUALS(visualUrl6.GetType(), VisualUrl::REGULAR_IMAGE, TEST_LOCATION);
   DALI_TEST_EQUALS(visualUrl6.GetProtocolType(), VisualUrl::BUFFER, TEST_LOCATION);
+
+  DALI_TEST_EQUALS(true, visualUrl7.IsValid(), TEST_LOCATION);
+  std::size_t hashResult = visualUrl7.GetUrlHash();
+
+  VisualUrl visualUrl8(std::move(visualUrl7));
+  DALI_TEST_EQUALS(true, visualUrl8.IsValid(), TEST_LOCATION);
+  DALI_TEST_EQUALS(visualUrl8.GetType(), VisualUrl::REGULAR_IMAGE, TEST_LOCATION);
+  DALI_TEST_EQUALS(visualUrl8.GetProtocolType(), VisualUrl::BUFFER, TEST_LOCATION);
+  DALI_TEST_EQUALS(visualUrl8.GetUrlHash(), hashResult, TEST_LOCATION);
+
+  DALI_TEST_EQUALS(false, visualUrl7.IsValid(), TEST_LOCATION);
+  DALI_TEST_EQUALS(Dali::CalculateHash(std::string("")), visualUrl7.GetUrlHash(), TEST_LOCATION);
   END_TEST;
 }
 
@@ -406,6 +423,19 @@ int UtcDaliVisualUrlGetLocationP(void)
   END_TEST;
 }
 
+int UtcDaliVisualUrlGetLocationWithoutExtensionP(void)
+{
+  tet_infoline("UtcDaliVisualUrl GetLocationWithoutExtension Positive");
+
+  DALI_TEST_EQUAL("a", VisualUrl("http://a.png").GetLocationWithoutExtension());
+  DALI_TEST_EQUAL("1", VisualUrl("dali://1.jpg").GetLocationWithoutExtension());
+  DALI_TEST_EQUAL("4", VisualUrl("enbuf://4.svg").GetLocationWithoutExtension());
+  DALI_TEST_EQUAL("", VisualUrl("ftp://.png").GetLocationWithoutExtension());
+  DALI_TEST_EQUAL("http://a.jpg", VisualUrl("http://http://a.jpg.jpg").GetLocationWithoutExtension());
+
+  END_TEST;
+}
+
 int UtcDaliVisualUrlGetLocationN(void)
 {
   tet_infoline("UtcDaliVisualUrl GetLocation Negative");
@@ -420,6 +450,20 @@ int UtcDaliVisualUrlGetLocationN(void)
   END_TEST;
 }
 
+int UtcDaliVisualUrlGetLocationWithoutExtensionN(void)
+{
+  tet_infoline("UtcDaliVisualUrl GetLocationWithoutExtension Negative");
+
+  DALI_TEST_EQUAL("", VisualUrl("").GetLocationWithoutExtension());
+  DALI_TEST_EQUAL("a", VisualUrl("a").GetLocationWithoutExtension());
+  DALI_TEST_EQUAL("dali:/1.jpg", VisualUrl("dali:/1.jpg").GetLocationWithoutExtension());
+  DALI_TEST_EQUAL("dali//1.jpg", VisualUrl("dali//1.jpg").GetLocationWithoutExtension());
+  DALI_TEST_EQUAL("enbuf:/2.png", VisualUrl("enbuf:/2.png").GetLocationWithoutExtension());
+  DALI_TEST_EQUAL("a.jpg", VisualUrl("http:/http://a.jpg.jpngif").GetLocationWithoutExtension());
+
+  END_TEST;
+}
+
 int UtcDaliVisualUrlCreateTextureUrl(void)
 {
   tet_infoline("UtcDaliVisualUrl CreateTextureUrl");
@@ -435,9 +479,20 @@ int UtcDaliVisualUrlCreateBufferUrl(void)
 {
   tet_infoline("UtcDaliVisualUrl CreateBufferUrl");
 
-  DALI_TEST_EQUAL("enbuf://a", VisualUrl::CreateBufferUrl("a"));
-  DALI_TEST_EQUAL("enbuf://1234", VisualUrl::CreateBufferUrl("1234"));
-  DALI_TEST_EQUAL("enbuf://", VisualUrl::CreateBufferUrl(""));
+  DALI_TEST_EQUAL("enbuf://a", VisualUrl::CreateBufferUrl("a", ""));
+  DALI_TEST_EQUAL("enbuf://1234", VisualUrl::CreateBufferUrl("1234", ""));
+  DALI_TEST_EQUAL("enbuf://", VisualUrl::CreateBufferUrl("", ""));
+
+  END_TEST;
+}
+
+int UtcDaliVisualUrlCreateBufferUrlWithExtension(void)
+{
+  tet_infoline("UtcDaliVisualUrl CreateBufferUrl with extension");
+
+  DALI_TEST_EQUAL("enbuf://a.jpg", VisualUrl::CreateBufferUrl("a", ".jpg"));
+  DALI_TEST_EQUAL("enbuf://1234567", VisualUrl::CreateBufferUrl("1234", "567"));
+  DALI_TEST_EQUAL("enbuf://b", VisualUrl::CreateBufferUrl("", "b"));
 
   END_TEST;
 }
@@ -469,4 +524,37 @@ int UtcDaliVisualUrlGetUrlHash(void)
   }
 
   END_TEST;
+}
+
+int UtcDaliVisualUrlGetEllipsedUrl(void)
+{
+  tet_infoline("UtcDaliVisualUrl GetEllipsedUrl");
+
+  std::string inputString;
+
+  // Test shot url is same as what input used.
+  for(uint32_t i = 0; i < URL_ELLIPSED_LENGTH + 3; ++i)
+  {
+    inputString.push_back('a');
+
+    VisualUrl visualUrl(inputString);
+
+    DALI_TEST_EQUALS(visualUrl.GetUrl(), inputString, TEST_LOCATION);
+    DALI_TEST_EQUALS(visualUrl.GetEllipsedUrl(), inputString, TEST_LOCATION);
+  }
+
+  for(uint32_t i = 0; i < 10; ++i)
+  {
+    inputString.push_back('0' + i);
+
+    std::string expectString = "..." + inputString.substr(inputString.length() - URL_ELLIPSED_LENGTH);
+
+    VisualUrl visualUrl(inputString);
+
+    DALI_TEST_EQUALS(visualUrl.GetUrl(), inputString, TEST_LOCATION);
+    DALI_TEST_CHECK(visualUrl.GetEllipsedUrl() != inputString);
+    DALI_TEST_EQUALS(visualUrl.GetEllipsedUrl(), expectString, TEST_LOCATION);
+  }
+
+  END_TEST;
 }
\ No newline at end of file