Fix appdefined privilege parsing 63/154563/2
authorSangyoon Jang <jeremy.jang@samsung.com>
Tue, 10 Oct 2017 12:22:21 +0000 (21:22 +0900)
committerSangyoon Jang <jeremy.jang@samsung.com>
Tue, 10 Oct 2017 13:58:38 +0000 (22:58 +0900)
Requires:
 - https://review.tizen.org/gerrit/154530

Change-Id: If9add359f17bc952b86498c06f5dd3525d3130a5
Signed-off-by: Sangyoon Jang <jeremy.jang@samsung.com>
src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegeElement_InvalidName/config.xml
src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegeElement_Invalid_NoPKGID/config.xml
src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegeElement_Invalid_NoURI/config.xml
src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegeElement_Invalid_OverLength/config.xml
src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegeElement_ManyElements/config.xml
src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegeElement_MissingName/config.xml
src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegeElement_ValidName/config.xml
src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegeElement_WithLicenseManyElements/config.xml
src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegeElement_WithLicenseValidName/config.xml
src/wgt/step/configuration/step_parse.cc

index 78ca65a..948de8c 100644 (file)
@@ -1,7 +1,5 @@
 <?xml version="1.0"?>
 <widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
   <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
-  <tizen:provides-appdefined-privileges>
-    <tizen:appdefined-privilege name=""/>
-  </tizen:provides-appdefined-privileges>
+  <tizen:provides-appdefined-privilege name=""/>
 </widget>
index 748f827..1fce6a4 100644 (file)
@@ -1,7 +1,5 @@
 <?xml version="1.0"?>
 <widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
   <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
-  <tizen:provides-appdefined-privileges>
-    <tizen:appdefined-privilege name="http://package1id/appdefined/test.read"/>
-  </tizen:provides-appdefined-privileges>
+  <tizen:provides-appdefined-privilege name="http://package1id/appdefined/test.read"/>
 </widget>
index 68e32f7..cfdfa4a 100644 (file)
@@ -1,7 +1,5 @@
 <?xml version="1.0"?>
 <widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
   <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
-  <tizen:provides-appdefined-privileges>
-    <tizen:appdefined-privilege name="package0id/appdefined/test.read"/>
-  </tizen:provides-appdefined-privileges>
+  <tizen:provides-appdefined-privilege name="package0id/appdefined/test.read"/>
 </widget>
index 201ebd7..8897072 100644 (file)
@@ -1,7 +1,5 @@
 <?xml version="1.0"?>
 <widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
   <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
-  <tizen:provides-appdefined-privileges>
-    <tizen:appdefined-privilege name="http://package0id/appdefined/longnameeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee.read"/>
-  </tizen:provides-appdefined-privileges>
+  <tizen:provides-appdefined-privilege name="http://package0id/appdefined/longnameeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee.read"/>
 </widget>
index f01fb27..9eecba2 100644 (file)
@@ -1,8 +1,6 @@
 <?xml version="1.0"?>
 <widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
   <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
-  <tizen:provides-appdefined-privileges>
-    <tizen:appdefined-privilege name="http://package0id/appdefined/test.read"/>
-    <tizen:appdefined-privilege name="http://package0id/appdefined/test.write"/>
-  </tizen:provides-appdefined-privileges>
+  <tizen:provides-appdefined-privilege name="http://package0id/appdefined/test.read"/>
+  <tizen:provides-appdefined-privilege name="http://package0id/appdefined/test.write"/>
 </widget>
index bb84800..1be2518 100644 (file)
@@ -1,7 +1,5 @@
 <?xml version="1.0"?>
 <widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
   <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
-  <tizen:provides-appdefined-privileges>
-    <tizen:appdefined-privilege/>
-  </tizen:provides-appdefined-privileges>
+  <tizen:provides-appdefined-privilege/>
 </widget>
index 613eae7..64572e9 100644 (file)
@@ -1,7 +1,5 @@
 <?xml version="1.0"?>
 <widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
   <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
-  <tizen:provides-appdefined-privileges>
-    <tizen:appdefined-privilege name="http://package0id/appdefined/test.read"/>
-  </tizen:provides-appdefined-privileges>
+  <tizen:provides-appdefined-privilege name="http://package0id/appdefined/test.read"/>
 </widget>
index 297cbdf..ad2ce75 100644 (file)
@@ -1,8 +1,6 @@
 <?xml version="1.0"?>
 <widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
   <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
-  <tizen:provides-appdefined-privileges>
-    <tizen:appdefined-privilege name="http://package0id/appdefined/test.read" license="res/cert"/>
-    <tizen:appdefined-privilege name="http://package0id/appdefined/test.write" license="res/cert"/>
-  </tizen:provides-appdefined-privileges>
+  <tizen:provides-appdefined-privilege name="http://package0id/appdefined/test.read" license="res/cert"/>
+  <tizen:provides-appdefined-privilege name="http://package0id/appdefined/test.write" license="res/cert"/>
 </widget>
index 7d85238..7985282 100644 (file)
@@ -1,7 +1,5 @@
 <?xml version="1.0"?>
 <widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
   <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
-  <tizen:provides-appdefined-privileges>
-    <tizen:appdefined-privilege name="http://package0id/appdefined/test.read" license="res/cert"/>
-  </tizen:provides-appdefined-privileges>
+  <tizen:provides-appdefined-privilege name="http://package0id/appdefined/test.read" license="res/cert"/>
 </widget>
index c339a8f..aa62f48 100644 (file)
@@ -17,6 +17,7 @@
 #include <manifest_parser/utils/version_number.h>
 #include <wgt_manifest_handlers/account_handler.h>
 #include <wgt_manifest_handlers/app_control_handler.h>
+#include <wgt_manifest_handlers/appdefined_privilege_handler.h>
 #include <wgt_manifest_handlers/application_icons_handler.h>
 #include <wgt_manifest_handlers/application_manifest_constants.h>
 #include <wgt_manifest_handlers/background_category_handler.h>
@@ -24,7 +25,7 @@
 #include <wgt_manifest_handlers/content_handler.h>
 #include <wgt_manifest_handlers/ime_handler.h>
 #include <wgt_manifest_handlers/metadata_handler.h>
-#include <wgt_manifest_handlers/provides_appdefined_privileges_handler.h>
+#include <wgt_manifest_handlers/provides_appdefined_privilege_handler.h>
 #include <wgt_manifest_handlers/service_handler.h>
 #include <wgt_manifest_handlers/setting_handler.h>
 #include <wgt_manifest_handlers/tizen_application_handler.h>
@@ -645,14 +646,13 @@ bool StepParse::FillPrivileges(manifest_x* manifest) {
 }
 
 bool StepParse::FillAppDefinedPrivileges(manifest_x* manifest) {
-  auto priv_info =
-      GetManifestDataForKey<const wgt::parse::AppDefinedPrivilegeInfo>(
+  auto priv_info_list =
+      GetManifestDataForKey<const wgt::parse::AppDefinedPrivilegeInfoList>(
           app_keys::kTizenAppDefinedPrivilegeKey);
-  if (!priv_info)
+  if (!priv_info_list)
     return true;
 
-  const auto& privileges = priv_info->GetAppDefinedPrivilegeList();
-  for (auto& priv : privileges) {
+  for (auto& priv : priv_info_list->appdefined_privileges) {
     appdefined_privilege_x* privilege =
         reinterpret_cast<appdefined_privilege_x*>(calloc(1,
             sizeof(appdefined_privilege_x)));
@@ -660,14 +660,14 @@ bool StepParse::FillAppDefinedPrivileges(manifest_x* manifest) {
       LOG(ERROR) << "Memory alloc failure";
       return false;
     }
-    privilege->value = strdup(priv.privilege.c_str());
+    privilege->value = strdup(priv.name().c_str());
     privilege->type = strdup(common_installer::kWebPrivilegeType);
-    if (!priv.license.empty()) {
-      if (bf::path(priv.license).is_absolute())
-        privilege->license = strdup(priv.license.c_str());
+    if (!priv.license().empty()) {
+      if (bf::path(priv.license()).is_absolute())
+        privilege->license = strdup(priv.license().c_str());
       else
         privilege->license = strdup((context_->root_application_path.get()
-            / manifest->package / priv.license).c_str());
+            / manifest->package / priv.license()).c_str());
     }
     manifest->appdefined_privileges =
         g_list_append(manifest->appdefined_privileges, privilege);
@@ -676,14 +676,13 @@ bool StepParse::FillAppDefinedPrivileges(manifest_x* manifest) {
 }
 
 bool StepParse::FillProvidesAppDefinedPrivileges(manifest_x* manifest) {
-  auto priv_info =
-      GetManifestDataForKey<const wgt::parse::AppDefinedPrivilegeInfo>(
-          app_keys::kTizenProvidesAppDefinedPrivilegesKey);
-  if (!priv_info)
+  auto priv_info_list =
+      GetManifestDataForKey<const wgt::parse::AppDefinedPrivilegeInfoList>(
+          app_keys::kTizenProvidesAppDefinedPrivilegeKey);
+  if (!priv_info_list)
     return true;
 
-  const auto& privileges = priv_info->GetAppDefinedPrivilegeList();
-  for (auto& priv : privileges) {
+  for (auto& priv : priv_info_list->appdefined_privileges) {
     appdefined_privilege_x* privilege =
         reinterpret_cast<appdefined_privilege_x*>(calloc(1,
             sizeof(appdefined_privilege_x)));
@@ -691,14 +690,14 @@ bool StepParse::FillProvidesAppDefinedPrivileges(manifest_x* manifest) {
       LOG(ERROR) << "Memory alloc failure";
       return false;
     }
-    privilege->value = strdup(priv.privilege.c_str());
+    privilege->value = strdup(priv.name().c_str());
     privilege->type = strdup(common_installer::kWebPrivilegeType);
-    if (!priv.license.empty()) {
-      if (bf::path(priv.license).is_absolute())
-        privilege->license = strdup(priv.license.c_str());
+    if (!priv.license().empty()) {
+      if (bf::path(priv.license()).is_absolute())
+        privilege->license = strdup(priv.license().c_str());
       else
         privilege->license = strdup((context_->root_application_path.get()
-            / manifest->package / priv.license).c_str());
+            / manifest->package / priv.license()).c_str());
     }
     manifest->provides_appdefined_privileges =
         g_list_append(manifest->provides_appdefined_privileges, privilege);