From 8beef15b1eaeb0ce3714014dad6a8d6ab1d8a5dd Mon Sep 17 00:00:00 2001 From: jongmyeongko Date: Wed, 19 Jul 2017 22:51:11 +0900 Subject: [PATCH] Add appdefined privilege feature Requires: https://review.tizen.org/gerrit/#/c/136932/ Change-Id: I110062ff57ad98a130f9edfaed043ecbf655b8f3 Signed-off-by: jongmyeongko --- src/unit_tests/manifest_test_package.cc | 168 +++++++++++++++++++++ .../tizen-manifest.xml | 8 + .../tizen-manifest.xml | 8 + .../tizen-manifest.xml | 8 + .../tizen-manifest.xml | 9 ++ .../tizen-manifest.xml | 8 + .../tizen-manifest.xml | 9 ++ .../tizen-manifest.xml | 8 + .../tizen-manifest.xml | 8 + .../tizen-manifest.xml | 8 + .../tizen-manifest.xml | 8 + .../tizen-manifest.xml | 9 ++ .../tizen-manifest.xml | 5 + .../tizen-manifest.xml | 6 + .../tizen-manifest.xml | 8 + .../tizen-manifest.xml | 9 ++ .../tizen-manifest.xml | 8 + 17 files changed, 295 insertions(+) create mode 100644 src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_Invalid_NoPKGID/tizen-manifest.xml create mode 100644 src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_Invalid_NotURI/tizen-manifest.xml create mode 100644 src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_Invalid_OverLength/tizen-manifest.xml create mode 100644 src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_Many/tizen-manifest.xml create mode 100644 src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_Valid/tizen-manifest.xml create mode 100644 src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_WithLicenseMany/tizen-manifest.xml create mode 100644 src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_WithLicenseValid/tizen-manifest.xml create mode 100644 src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_Invalid_NoPKGID/tizen-manifest.xml create mode 100644 src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_Invalid_NotURI/tizen-manifest.xml create mode 100644 src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_Invalid_OverLength/tizen-manifest.xml create mode 100644 src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_Many/tizen-manifest.xml create mode 100644 src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_Missing/tizen-manifest.xml create mode 100644 src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_None/tizen-manifest.xml create mode 100644 src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_Valid/tizen-manifest.xml create mode 100644 src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_WithLicenseMany/tizen-manifest.xml create mode 100644 src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_WithLicenseValid/tizen-manifest.xml diff --git a/src/unit_tests/manifest_test_package.cc b/src/unit_tests/manifest_test_package.cc index d07eef2..1f9dce7 100644 --- a/src/unit_tests/manifest_test_package.cc +++ b/src/unit_tests/manifest_test_package.cc @@ -255,6 +255,174 @@ TEST_F(ManifestTest, PrivilegesElement_Many) { "http://tizen.org/privilege/appmanager.launch"); } +TEST_F(ManifestTest, AppDefinedPrivilegesElement_Invalid_OverLength) { + StepParseRunner runner(GetMyName()); + ASSERT_FALSE(runner.Run()); +} + +TEST_F(ManifestTest, AppDefinedPrivilegesElement_Invalid_NotURI) { + StepParseRunner runner(GetMyName()); + ASSERT_FALSE(runner.Run()); +} + +TEST_F(ManifestTest, AppDefinedPrivilegesElement_Invalid_NoPKGID) { + StepParseRunner runner(GetMyName()); + ASSERT_FALSE(runner.Run()); +} + +TEST_F(ManifestTest, AppDefinedPrivilegesElement_Valid) { + StepParseRunner runner(GetMyName()); + ASSERT_TRUE(runner.Run()); + manifest_x* m = runner.GetManifest(); + ASSERT_NE(m, nullptr); + auto privileges = + GListRange(m->appdefined_privileges); + ASSERT_EQ(Size(&privileges), 1); + ASSERT_CSTR_EQ((*privileges.begin())->value, + "http://package0id/appdefined/test.read"); +} + +TEST_F(ManifestTest, AppDefinedPrivilegesElement_WithLicenseValid) { + StepParseRunner runner(GetMyName()); + ASSERT_TRUE(runner.Run()); + manifest_x* m = runner.GetManifest(); + ASSERT_NE(m, nullptr); + auto privileges = + GListRange(m->appdefined_privileges); + ASSERT_EQ(Size(&privileges), 1); + ASSERT_CSTR_EQ((*privileges.begin())->value, + "http://package0id/appdefined/test.read"); + bf::path path(m->root_path); + path /= "res/cert"; + ASSERT_CSTR_EQ((*privileges.begin())->license, path.c_str()); +} + +TEST_F(ManifestTest, AppDefinedPrivilegesElement_Many) { + StepParseRunner runner(GetMyName()); + ASSERT_TRUE(runner.Run()); + manifest_x* m = runner.GetManifest(); + ASSERT_NE(m, nullptr); + auto privileges = + GListRange(m->appdefined_privileges); + ASSERT_EQ(Size(&privileges), 2); + ASSERT_CSTR_EQ(((*privileges.begin()))->value, + "http://package0id/appdefined/test.read"); + ASSERT_CSTR_EQ(((*++privileges.begin()))->value, + "http://package0id/appdefined/test.write"); +} + +TEST_F(ManifestTest, AppDefinedPrivilegesElement_WithLicenseMany) { + StepParseRunner runner(GetMyName()); + ASSERT_TRUE(runner.Run()); + manifest_x* m = runner.GetManifest(); + ASSERT_NE(m, nullptr); + auto privileges = + GListRange(m->appdefined_privileges); + ASSERT_EQ(Size(&privileges), 2); + ASSERT_CSTR_EQ(((*privileges.begin()))->value, + "http://package0id/appdefined/test.read"); + bf::path path(m->root_path); + path /= "res/cert"; + ASSERT_CSTR_EQ(((*privileges.begin()))->license, path.c_str()); + ASSERT_CSTR_EQ(((*++privileges.begin()))->value, + "http://package0id/appdefined/test.write"); + ASSERT_CSTR_EQ(((*++privileges.begin()))->license, path.c_str()); +} + +TEST_F(ManifestTest, ProvidesAppDefinedPrivilegesElement_Missing) { + StepParseRunner runner(GetMyName()); + ASSERT_TRUE(runner.Run()); + manifest_x* m = runner.GetManifest(); + ASSERT_NE(m, nullptr); + auto privileges = + GListRange(m->provides_appdefined_privileges); + ASSERT_EQ(Size(&privileges), 0); +} + +TEST_F(ManifestTest, ProvidesAppDefinedPrivilegesElement_None) { + StepParseRunner runner(GetMyName()); + ASSERT_TRUE(runner.Run()); + manifest_x* m = runner.GetManifest(); + ASSERT_NE(m, nullptr); + auto privileges = + GListRange(m->provides_appdefined_privileges); + ASSERT_EQ(Size(&privileges), 0); +} + +TEST_F(ManifestTest, ProvidesAppDefinedPrivilegesElement_Invalid_OverLength) { + StepParseRunner runner(GetMyName()); + ASSERT_FALSE(runner.Run()); +} + +TEST_F(ManifestTest, ProvidesAppDefinedPrivilegesElement_Invalid_NotURI) { + StepParseRunner runner(GetMyName()); + ASSERT_FALSE(runner.Run()); +} + +TEST_F(ManifestTest, ProvidesAppDefinedPrivilegesElement_Invalid_NoPKGID) { + StepParseRunner runner(GetMyName()); + ASSERT_FALSE(runner.Run()); +} + +TEST_F(ManifestTest, ProvidesAppDefinedPrivilegesElement_Valid) { + StepParseRunner runner(GetMyName()); + ASSERT_TRUE(runner.Run()); + manifest_x* m = runner.GetManifest(); + ASSERT_NE(m, nullptr); + auto privileges = + GListRange(m->provides_appdefined_privileges); + ASSERT_EQ(Size(&privileges), 1); + ASSERT_CSTR_EQ((*privileges.begin())->value, + "http://package0id/appdefined/test.read"); +} + +TEST_F(ManifestTest, ProvidesAppDefinedPrivilegesElement_WithLicenseValid) { + StepParseRunner runner(GetMyName()); + ASSERT_TRUE(runner.Run()); + manifest_x* m = runner.GetManifest(); + ASSERT_NE(m, nullptr); + auto privileges = + GListRange(m->provides_appdefined_privileges); + ASSERT_EQ(Size(&privileges), 1); + ASSERT_CSTR_EQ((*privileges.begin())->value, + "http://package0id/appdefined/test.read"); + bf::path path(m->root_path); + path /= "res/cert"; + ASSERT_CSTR_EQ((*privileges.begin())->license, path.c_str()); +} + +TEST_F(ManifestTest, ProvidesAppDefinedPrivilegesElement_Many) { + StepParseRunner runner(GetMyName()); + ASSERT_TRUE(runner.Run()); + manifest_x* m = runner.GetManifest(); + ASSERT_NE(m, nullptr); + auto privileges = + GListRange(m->provides_appdefined_privileges); + ASSERT_EQ(Size(&privileges), 2); + ASSERT_CSTR_EQ(((*privileges.begin()))->value, + "http://package0id/appdefined/test.read"); + ASSERT_CSTR_EQ(((*++privileges.begin()))->value, + "http://package0id/appdefined/test.write"); +} + +TEST_F(ManifestTest, ProvidesAppDefinedPrivilegesElement_WithLicenseMany) { + StepParseRunner runner(GetMyName()); + ASSERT_TRUE(runner.Run()); + manifest_x* m = runner.GetManifest(); + ASSERT_NE(m, nullptr); + auto privileges = + GListRange(m->provides_appdefined_privileges); + ASSERT_EQ(Size(&privileges), 2); + ASSERT_CSTR_EQ(((*privileges.begin()))->value, + "http://package0id/appdefined/test.read"); + bf::path path(m->root_path); + path /= "res/cert"; + ASSERT_CSTR_EQ(((*privileges.begin()))->license, path.c_str()); + ASSERT_CSTR_EQ(((*++privileges.begin()))->value, + "http://package0id/appdefined/test.write"); + ASSERT_CSTR_EQ(((*++privileges.begin()))->license, path.c_str()); +} + TEST_F(ManifestTest, ProfileElement_Missing) { StepParseRunner runner(GetMyName()); ASSERT_TRUE(runner.Run()); diff --git a/src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_Invalid_NoPKGID/tizen-manifest.xml b/src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_Invalid_NoPKGID/tizen-manifest.xml new file mode 100644 index 0000000..fde3f59 --- /dev/null +++ b/src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_Invalid_NoPKGID/tizen-manifest.xml @@ -0,0 +1,8 @@ + + + + + + http://package2id/appdefined/test.read + + diff --git a/src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_Invalid_NotURI/tizen-manifest.xml b/src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_Invalid_NotURI/tizen-manifest.xml new file mode 100644 index 0000000..8967e25 --- /dev/null +++ b/src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_Invalid_NotURI/tizen-manifest.xml @@ -0,0 +1,8 @@ + + + + + + package0id/appdefined/test.read + + diff --git a/src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_Invalid_OverLength/tizen-manifest.xml b/src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_Invalid_OverLength/tizen-manifest.xml new file mode 100644 index 0000000..460ae13 --- /dev/null +++ b/src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_Invalid_OverLength/tizen-manifest.xml @@ -0,0 +1,8 @@ + + + + + + http://package0id/appdefined/longnameeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee.read + + diff --git a/src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_Many/tizen-manifest.xml b/src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_Many/tizen-manifest.xml new file mode 100644 index 0000000..36a626d --- /dev/null +++ b/src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_Many/tizen-manifest.xml @@ -0,0 +1,9 @@ + + + + + + http://package0id/appdefined/test.read + http://package0id/appdefined/test.write + + diff --git a/src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_Valid/tizen-manifest.xml b/src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_Valid/tizen-manifest.xml new file mode 100644 index 0000000..e654396 --- /dev/null +++ b/src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_Valid/tizen-manifest.xml @@ -0,0 +1,8 @@ + + + + + + http://package0id/appdefined/test.read + + diff --git a/src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_WithLicenseMany/tizen-manifest.xml b/src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_WithLicenseMany/tizen-manifest.xml new file mode 100644 index 0000000..f46a329 --- /dev/null +++ b/src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_WithLicenseMany/tizen-manifest.xml @@ -0,0 +1,9 @@ + + + + + + http://package0id/appdefined/test.read + http://package0id/appdefined/test.write + + diff --git a/src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_WithLicenseValid/tizen-manifest.xml b/src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_WithLicenseValid/tizen-manifest.xml new file mode 100644 index 0000000..d5b097d --- /dev/null +++ b/src/unit_tests/test_samples/manifest/ManifestTest.AppDefinedPrivilegesElement_WithLicenseValid/tizen-manifest.xml @@ -0,0 +1,8 @@ + + + + + + http://package0id/appdefined/test.read + + diff --git a/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_Invalid_NoPKGID/tizen-manifest.xml b/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_Invalid_NoPKGID/tizen-manifest.xml new file mode 100644 index 0000000..fd27046 --- /dev/null +++ b/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_Invalid_NoPKGID/tizen-manifest.xml @@ -0,0 +1,8 @@ + + + + + + http://package2id/appdefined/test.read + + diff --git a/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_Invalid_NotURI/tizen-manifest.xml b/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_Invalid_NotURI/tizen-manifest.xml new file mode 100644 index 0000000..558d917 --- /dev/null +++ b/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_Invalid_NotURI/tizen-manifest.xml @@ -0,0 +1,8 @@ + + + + + + package0id/appdefined/test.read + + diff --git a/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_Invalid_OverLength/tizen-manifest.xml b/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_Invalid_OverLength/tizen-manifest.xml new file mode 100644 index 0000000..7bdfe28 --- /dev/null +++ b/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_Invalid_OverLength/tizen-manifest.xml @@ -0,0 +1,8 @@ + + + + + + http://package0id/appdefined/longnameeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee.read + + diff --git a/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_Many/tizen-manifest.xml b/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_Many/tizen-manifest.xml new file mode 100644 index 0000000..a073f29 --- /dev/null +++ b/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_Many/tizen-manifest.xml @@ -0,0 +1,9 @@ + + + + + + http://package0id/appdefined/test.read + http://package0id/appdefined/test.write + + diff --git a/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_Missing/tizen-manifest.xml b/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_Missing/tizen-manifest.xml new file mode 100644 index 0000000..f0bba4a --- /dev/null +++ b/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_Missing/tizen-manifest.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_None/tizen-manifest.xml b/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_None/tizen-manifest.xml new file mode 100644 index 0000000..c4bb3a7 --- /dev/null +++ b/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_None/tizen-manifest.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_Valid/tizen-manifest.xml b/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_Valid/tizen-manifest.xml new file mode 100644 index 0000000..fa4e4cb --- /dev/null +++ b/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_Valid/tizen-manifest.xml @@ -0,0 +1,8 @@ + + + + + + http://package0id/appdefined/test.read + + diff --git a/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_WithLicenseMany/tizen-manifest.xml b/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_WithLicenseMany/tizen-manifest.xml new file mode 100644 index 0000000..b323bcc --- /dev/null +++ b/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_WithLicenseMany/tizen-manifest.xml @@ -0,0 +1,9 @@ + + + + + + http://package0id/appdefined/test.read + http://package0id/appdefined/test.write + + diff --git a/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_WithLicenseValid/tizen-manifest.xml b/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_WithLicenseValid/tizen-manifest.xml new file mode 100644 index 0000000..8270405 --- /dev/null +++ b/src/unit_tests/test_samples/manifest/ManifestTest.ProvidesAppDefinedPrivilegesElement_WithLicenseValid/tizen-manifest.xml @@ -0,0 +1,8 @@ + + + + + + http://package0id/appdefined/test.read + + -- 2.7.4