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 78ca65a7f688152bcfc91328a86d2c03a76516a8..948de8ceea89e8fbd292ce0d375e4d1bb5ec94c8 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 748f827cfdccfd9924d16d887fb7e37d0bb571e7..1fce6a4522540b8964d6a8aea68ed2cef8be2498 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 68e32f727f9e69ab2c54c83de5fe19e4fa173ae6..cfdfa4adb68a69ea50926714200b0ad3ca0b2324 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 201ebd7839003aec152bd40233a0535f72a3d4c9..8897072335b3ad2d8b0bee2d86f1068c01e2cb15 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 f01fb27eee1de922a1e7184c556f5573dc253e86..9eecba281edb892d982911245e703158cbb9ca4b 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 bb84800504b8e7365b4a1293069e19d72185de0b..1be2518ab8c1d7f046e83315dc0feed3a266877b 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 613eae70077d743cd1c87a52f579d283261101f0..64572e9758c77d7e64fd8af64b2bc20c0bacb3d7 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 297cbdfbc91984ea82128d5010eadff911dfda9a..ad2ce75b10a4b202f280ec0d5b191cc92ecd6a23 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 7d852380511cce4e2f0c429de7a4da07b22a5c66..7985282412b2709e7d8bc88b38a96b6287ab5d4f 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 c339a8f75af19e790bc1b7719b03270ebc1988fe..aa62f48e92cfdd2eaa3eb9062d88d58ed924174a 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);