Fix file key generation 24/240624/5
authorSangyoon Jang <jeremy.jang@samsung.com>
Mon, 10 Aug 2020 07:11:27 +0000 (16:11 +0900)
committerSangyoon Jang <jeremy.jang@samsung.com>
Tue, 18 Aug 2020 04:08:30 +0000 (13:08 +0900)
- Adding directory only for auto file key generation.
- Adding path as relative path of pkg root directory.

Change-Id: I95be37d980efdf6f76fa25133a563327b7ec0f1b
Signed-off-by: Sangyoon Jang <jeremy.jang@samsung.com>
src/theme_plugin/theme_info_builder.cc
test/unit_tests/test_samples/shared/res/theme_resources/picture.png [moved from test/unit_tests/test_samples/shared/res/picture.png with 100% similarity]
test/unit_tests/test_samples/shared/res/theme_resources/test [moved from test/unit_tests/test_samples/shared/res/test with 100% similarity]
test/unit_tests/test_theme_parser.cc

index 4edab18..b634553 100644 (file)
@@ -15,12 +15,7 @@ namespace bf = boost::filesystem;
 
 namespace {
 
-const char kThemeFilesPrefix[] = "/theme/files";
-
-bool StartsWith(const std::string& str, const std::string& substr) {
-  return str.length() >= substr.length() &&
-      std::equal(substr.begin(), substr.end(), str.begin());
-}
+const char kThemeFilesPrefix[] = "/theme/files/";
 
 }  // namespace
 
@@ -50,34 +45,13 @@ loader::ThemeInfo ThemeInfoBuilder::Build() {
 void ThemeInfoBuilder::GenerateFileKey(const std::string& root) {
   for (bf::recursive_directory_iterator it(root);
       it != bf::recursive_directory_iterator(); ++it) {
-    if (!bf::is_regular_file(it->path()))
-      continue;
-
-    if (!StartsWith(it->path().string(), root))
+    if (!bf::is_directory(it->path()))
       continue;
 
-    // root.size() -1 to remove trailing '/' charater
-    std::string filepath = it->path().string().substr(root.size() - 1);
+    std::string filepath = it->path().string().substr(root.size());
     std::string key = kThemeFilesPrefix + filepath;
-    bundle_.Add(key, it->path().string());
-  }
-
-  GenerateFileKeyWithoutExtension();
-}
-
-void ThemeInfoBuilder::GenerateFileKeyWithoutExtension() {
-  std::vector<tizen_base::Bundle::KeyInfo> keyinfos = bundle_.GetKeys();
-  for (const auto& keyinfo : keyinfos) {
-    std::string key = keyinfo.GetName();
-    if (!StartsWith(key, kThemeFilesPrefix))
-      continue;
-
-    size_t dot_pos = key.find_last_of(".");
-    if (dot_pos == std::string::npos)
-      continue;
-
-    std::string newkey = key.substr(0, dot_pos);
-    bundle_.Add(newkey, bundle_.GetString(key));
+    std::string val = "shared/res/" + filepath;
+    bundle_.Add(key, val);
   }
 }
 
index c572e38..2d0552a 100644 (file)
@@ -80,10 +80,8 @@ TEST_F(ThemeParserTest, Inflate) {
       "https://www.download.gogowatch/get");
   EXPECT_EQ(info.GetStringArray("/theme/preview"),
       std::vector<std::string>({"GOGO_Preview.png"}));
-  EXPECT_EQ(info.GetString("/theme/files/test"),
-      "test_samples/shared/res/test");
-  EXPECT_EQ(info.GetString("/theme/files/picture"),
-      "test_samples/shared/res/picture.png");
+  EXPECT_EQ(info.GetString("/theme/files/theme_resources"),
+      "shared/res/theme_resources");
 }
 
 TEST_F(ThemeParserTest, MultidimensionalArray) {