From: Jihoon Chung Date: Tue, 23 Apr 2013 09:30:58 +0000 (+0900) Subject: [Release] wrt-installer_0.1.38 X-Git-Tag: accepted/tizen_2.1/20130425.023916~2 X-Git-Url: http://review.tizen.org/git/?p=framework%2Fweb%2Fwrt-installer.git;a=commitdiff_plain;h=6e272e437d24e2144e2bb9eb459927b870bcc39c [Release] wrt-installer_0.1.38 --- diff --git a/packaging/wrt-installer.spec b/packaging/wrt-installer.spec index a7619cc..fc55d5b 100644 --- a/packaging/wrt-installer.spec +++ b/packaging/wrt-installer.spec @@ -1,7 +1,7 @@ -#git:framework/web/wrt-installer wrt-installer 0.1.37 +#git:framework/web/wrt-installer wrt-installer 0.1.38 Name: wrt-installer Summary: Installer for tizen Webruntime -Version: 0.1.37 +Version: 0.1.38 Release: 1 Group: Development/Libraries License: Apache License, Version 2.0 diff --git a/src/configuration_parser/widget_parser.cpp b/src/configuration_parser/widget_parser.cpp index e22f4a6..da4e1b9 100644 --- a/src/configuration_parser/widget_parser.cpp +++ b/src/configuration_parser/widget_parser.cpp @@ -37,7 +37,9 @@ #include #include #include +#include #include +#include #include #include @@ -1263,34 +1265,84 @@ class ApplicationParser : public ElementParser virtual void Verify() { + VerifyIdAndPackage(); + VerifyVersion(); + } + + ApplicationParser(ConfigParserData& data) : + ElementParser(), + m_data(data), + m_id(DPL::OptionalString::Null), + m_version(DPL::OptionalString::Null), + m_properNamespace(false) + {} + + private: + void VerifyIdAndPackage() + { + if (!m_package) + { + ThrowMsg(Exception::ParseError, + "application element must have package attribute"); + } + else + { + pcrecpp::RE re(REGEXP_PACKAGE); + if (!re.FullMatch(DPL::ToUTF8String(*m_package))) + { + ThrowMsg(Exception::ParseError, + "invalid format of package attribute"); + } + } + if (!m_id) { ThrowMsg(Exception::ParseError, "application element must have id attribute"); } - - if (!!m_package) { - m_data.tizenPkgId = m_package; + else + { + std::string package; + pcrecpp::RE re(REGEXP_ID); + if (!re.FullMatch(DPL::ToUTF8String(*m_id), &package)) + { + ThrowMsg(Exception::ParseError, + "invalid format of id attribute"); + } + if (package != DPL::ToUTF8String(*m_package)) + { + ThrowMsg(Exception::ParseError, + "invalid package prefix in id attribute"); + } } - if (!m_version) { + m_data.tizenAppId = m_id; + m_data.tizenPkgId = m_package; + } + + void VerifyVersion() + { + if (!m_version) + { ThrowMsg(Exception::ParseError, "application element must have required_version attribute"); } + else + { + pcrecpp::RE re(REGEXP_VERSION); + if (!re.FullMatch(DPL::ToUTF8String(*m_version))) + { + ThrowMsg(Exception::ParseError, + "invalid format of version attribute"); + } + } - //TODO check if id and version format is right - m_data.tizenAppId = m_id; m_data.tizenMinVersionRequired = m_version; } - ApplicationParser(ConfigParserData& data) : - ElementParser(), - m_data(data), - m_id(DPL::OptionalString::Null), - m_version(DPL::OptionalString::Null), - m_properNamespace(false) - {} + static const char* const REGEXP_PACKAGE; + static const char* const REGEXP_ID; + static const char* const REGEXP_VERSION; - private: ConfigParserData& m_data; DPL::OptionalString m_id; DPL::OptionalString m_package; @@ -1298,6 +1350,10 @@ class ApplicationParser : public ElementParser bool m_properNamespace; }; +const char* const ApplicationParser::REGEXP_PACKAGE = "[0-9A-Za-z]{10}"; +const char* const ApplicationParser::REGEXP_ID = "([0-9A-Za-z]{10})\\..{2,52}"; +const char* const ApplicationParser::REGEXP_VERSION = "\\d+\\.\\d+(\\.\\d+)?"; + class SplashParser : public ElementParser { public: diff --git a/src/jobs/widget_install/task_encrypt_resource.cpp b/src/jobs/widget_install/task_encrypt_resource.cpp index bca5665..647817e 100644 --- a/src/jobs/widget_install/task_encrypt_resource.cpp +++ b/src/jobs/widget_install/task_encrypt_resource.cpp @@ -347,6 +347,10 @@ void TaskEncryptResource::EncryptFile(const std::string &fileName) ByteBuffer *getBuffer = EncryptChunkByTrustZone( &appInfo, inChunk.get(), bytesRead); + if (getBuffer == NULL) { + ThrowMsg(Exceptions::EncryptionFailed, + "Encryption Failed using TrustZone"); + } int decBufSize = getBuffer->GetRemaining(); outChunk.reset(new unsigned char[decBufSize]); diff --git a/src/jobs/widget_install/task_manifest_file.cpp b/src/jobs/widget_install/task_manifest_file.cpp index 18ddf7e..7074609 100644 --- a/src/jobs/widget_install/task_manifest_file.cpp +++ b/src/jobs/widget_install/task_manifest_file.cpp @@ -635,6 +635,7 @@ void TaskManifestFile::writeManifest(const DPL::String & path) setWidgetName(manifest, uiApp); setWidgetIds(manifest, uiApp); setWidgetIcons(uiApp); + setWidgetDescription(manifest); setWidgetManifest(manifest); setWidgetOtherInfo(uiApp); setAppControlsInfo(uiApp); diff --git a/tests/general/ParsingTizenAppserviceTests.cpp b/tests/general/ParsingTizenAppserviceTests.cpp index 0ac368b..5896f41 100644 --- a/tests/general/ParsingTizenAppserviceTests.cpp +++ b/tests/general/ParsingTizenAppserviceTests.cpp @@ -23,6 +23,7 @@ #include #include +#include #include #include #include @@ -46,16 +47,17 @@ RUNNER_TEST(tizen_appservice_disposition) tizenId) == InstallerWrapper::Success); WrtDB::WidgetDAOReadOnly dao(DPL::FromASCIIString(tizenId)); - WidgetApplicationServiceList appsvcList; - dao.getAppServiceList(appsvcList); + WrtDB::WidgetAppControlList appsvcList; + dao.getAppControlList(appsvcList); uninstall(tizenId); + LogDebug("Actual size" << appsvcList.size()); RUNNER_ASSERT_MSG(appsvcList.size() == 4, "Incorrect list size"); - WidgetApplicationService s; + WrtDB::WidgetAppControl s; s.src = DPL::FromUTF8String("edit1.html"); s.operation = DPL::FromUTF8String("http://tizen.org/appsvc/operation/edit"); s.mime = DPL::FromUTF8String("image/jpg"); /* mime type */ - s.disposition = WidgetApplicationService::Disposition::WINDOW; + s.disposition = WrtDB::WidgetAppControl::Disposition::WINDOW; RUNNER_ASSERT_MSG( std::find(appsvcList.begin(), appsvcList.end(), s) != appsvcList.end(), "Unable to find service #"); @@ -63,7 +65,7 @@ RUNNER_TEST(tizen_appservice_disposition) s.src = DPL::FromUTF8String("edit2.html"); s.operation = DPL::FromUTF8String("http://tizen.org/appsvc/operation/view"); s.mime = DPL::FromUTF8String("audio/ogg"); /* mime type */ - s.disposition = WidgetApplicationService::Disposition::WINDOW; + s.disposition = WrtDB::WidgetAppControl::Disposition::WINDOW; RUNNER_ASSERT_MSG( std::find(appsvcList.begin(), appsvcList.end(), s) != appsvcList.end(), "Unable to find service ##"); @@ -71,7 +73,7 @@ RUNNER_TEST(tizen_appservice_disposition) s.src = DPL::FromUTF8String("edit3.html"); s.operation = DPL::FromUTF8String("http://tizen.org/appsvc/operation/call"); s.mime = DPL::FromUTF8String("image/png"); /* mime type */ - s.disposition = WidgetApplicationService::Disposition::INLINE; + s.disposition = WrtDB::WidgetAppControl::Disposition::INLINE; RUNNER_ASSERT_MSG( std::find(appsvcList.begin(), appsvcList.end(), s) != appsvcList.end(), "Unable to find service ###"); @@ -79,7 +81,7 @@ RUNNER_TEST(tizen_appservice_disposition) s.src = DPL::FromUTF8String("edit4.html"); s.operation = DPL::FromUTF8String("http://tizen.org/appsvc/operation/send"); s.mime = DPL::FromUTF8String("text/css"); /* mime type */ - s.disposition = WidgetApplicationService::Disposition::WINDOW; + s.disposition = WrtDB::WidgetAppControl::Disposition::WINDOW; RUNNER_ASSERT_MSG( std::find(appsvcList.begin(), appsvcList.end(), s) != appsvcList.end(), "Unable to find service ####");