Add getLabel and getVersion to package-info class 05/72505/3
authorsangwan.kwon <sangwan.kwon@samsung.com>
Wed, 1 Jun 2016 08:55:09 +0000 (17:55 +0900)
committersangwan kwon <sangwan.kwon@samsung.com>
Wed, 1 Jun 2016 09:34:04 +0000 (02:34 -0700)
Change-Id: I02d0cfa05c8313659d146ec4719c985911e1a1bc

src/framework/ui/popup/package-info.cpp
src/framework/ui/popup/package-info.h
test/internals/test-package-info.cpp

index c76de04..e397029 100644 (file)
@@ -16,6 +16,7 @@
 /*
  * @file        package-info.cpp
  * @author      Kyungwook Tak (k.tak@samsung.com)
+ * @author      Sangwan Kwon (sangwan.kwon@samsung.com)
  * @version     1.0
  * @brief       Package info getter for displaying detail of package on popup.
  */
@@ -43,14 +44,48 @@ std::string PackageInfo::getIconPath(void)
        char *icon = nullptr;
        auto ret = ::pkgmgrinfo_pkginfo_get_icon(this->m_handle, &icon);
        if (ret != PMINFO_R_OK)
-               ThrowExc(InternalError, "Failed to get icon with pkginfo. ret: " << ret);
+               ThrowExc(InternalError,
+                       "Failed to get icon with pkginfo. ret: " << ret);
 
        if (icon == nullptr)
                ThrowExc(InternalError,
-                                "pkgmgrinfo_pkginfo_get_icon success but null returned on icon path.");
+                       "pkgmgrinfo_pkginfo_get_icon success"
+                       ", but null returned on icon path.");
 
        return std::string(icon);
 }
 
+std::string PackageInfo::getVersion(void)
+{
+       char *version = nullptr;
+       auto ret = ::pkgmgrinfo_pkginfo_get_version(this->m_handle, &version);
+       if (ret != PMINFO_R_OK)
+               ThrowExc(InternalError,
+                       "Failed to get version with pkginfo. ret: " << ret);
+
+       if (version == nullptr)
+               ThrowExc(InternalError,
+                       "pkgmgrinfo_pkginfo_get_version success"
+                       ", but null returned on icon path.");
+
+       return std::string(version);
 }
+
+std::string PackageInfo::getLabel(void)
+{
+       char *label = nullptr;
+       auto ret = ::pkgmgrinfo_pkginfo_get_label(this->m_handle, &label);
+       if (ret != PMINFO_R_OK)
+               ThrowExc(InternalError,
+                       "Failed to get label with pkginfo. ret: " << ret);
+
+       if (label == nullptr)
+               ThrowExc(InternalError,
+                       "pkgmgrinfo_pkginfo_get_label success"
+                       ", but null returned on icon path.");
+
+       return std::string(label);
 }
+
+} // namespace Ui
+} // namespace Csr
index 73127c1..6c80836 100644 (file)
@@ -16,6 +16,7 @@
 /*
  * @file        package-info.h
  * @author      Kyungwook Tak (k.tak@samsung.com)
+ * @author      Sangwan Kwon (sangwan.kwon@samsung.com)
  * @version     1.0
  * @brief       Package info getter for displaying detail of package on popup.
  */
@@ -39,12 +40,12 @@ public:
        PackageInfo &operator=(PackageInfo &&) = delete;
 
        std::string getIconPath(void);
+       std::string getVersion(void);
+       std::string getLabel(void);
 
 private:
        pkgmgrinfo_pkginfo_h m_handle;
-
 };
 
-
 } // namespace Ui
 } // namespace Csr
index dc8f122..e0750bb 100644 (file)
@@ -16,6 +16,7 @@
 /*
  * @file        test-package-info.cpp
  * @author      Kyungwook Tak (k.tak@samsung.com)
+ * @author      Sangwan Kwon (sangwan.kwon@samsung.com)
  * @version     1.0
  * @brief       Package info class test
  */
@@ -58,4 +59,60 @@ BOOST_AUTO_TEST_CASE(get_icon_tpk)
        EXCEPTION_GUARD_END
 }
 
+BOOST_AUTO_TEST_CASE(get_version_wgt)
+{
+       EXCEPTION_GUARD_START
+
+       Test::uninstall_app(TEST_WGT_PKG_ID);
+       ASSERT_INSTALL_APP(TEST_WGT_PATH, TEST_WGT_TYPE);
+
+       Ui::PackageInfo info(TEST_WGT_PKG_ID);
+
+       BOOST_MESSAGE(info.getVersion());
+
+       EXCEPTION_GUARD_END
+}
+
+BOOST_AUTO_TEST_CASE(get_version_tpk)
+{
+       EXCEPTION_GUARD_START
+
+       Test::uninstall_app(TEST_TPK_PKG_ID);
+       ASSERT_INSTALL_APP(TEST_TPK_PATH, TEST_TPK_TYPE);
+
+       Ui::PackageInfo info(TEST_TPK_PKG_ID);
+
+       BOOST_MESSAGE(info.getVersion());
+
+       EXCEPTION_GUARD_END
+}
+
+BOOST_AUTO_TEST_CASE(get_label_wgt)
+{
+       EXCEPTION_GUARD_START
+
+       Test::uninstall_app(TEST_WGT_PKG_ID);
+       ASSERT_INSTALL_APP(TEST_WGT_PATH, TEST_WGT_TYPE);
+
+       Ui::PackageInfo info(TEST_WGT_PKG_ID);
+
+       BOOST_MESSAGE(info.getLabel());
+
+       EXCEPTION_GUARD_END
+}
+
+BOOST_AUTO_TEST_CASE(get_label_tpk)
+{
+       EXCEPTION_GUARD_START
+
+       Test::uninstall_app(TEST_TPK_PKG_ID);
+       ASSERT_INSTALL_APP(TEST_TPK_PATH, TEST_TPK_TYPE);
+
+       Ui::PackageInfo info(TEST_TPK_PKG_ID);
+
+       BOOST_MESSAGE(info.getLabel());
+
+       EXCEPTION_GUARD_END
+}
+
 BOOST_AUTO_TEST_SUITE_END()