Fixed error code when wgt file is invalid.
authorSoyoung Kim <sy037.kim@samsung.com>
Wed, 5 Jun 2013 08:27:55 +0000 (17:27 +0900)
committerSoyoung Kim <sy037.kim@samsung.com>
Wed, 5 Jun 2013 08:30:42 +0000 (17:30 +0900)
[Issue#] N/A
[Problem] N/A
[Cause] N/A
[Solution] add error code when wgt file is invalid
[SCMRequest] N/A

Change-Id: Ib5bc38f375de8b68ccd0e3bd9e05ed03d9481539

src/jobs/widget_install/job_widget_install.cpp
src/jobs/widget_install/job_widget_install.h

index 2778a0e..e9f11a7 100644 (file)
@@ -125,6 +125,12 @@ class InstallerTaskFail :
         if (m_result == ConfigureResult::Failed_InvalidConfig) {
             ThrowMsg(Jobs::WidgetInstall::Exceptions::WidgetConfigFileInvalid,
                     "invalid config");
+        } else if (m_result == ConfigureResult::Failed_OpenZipError) {
+            ThrowMsg(Jobs::WidgetInstall::Exceptions::OpenZipFailed,
+                    "can't open wgt file");
+        } else if (m_result == ConfigureResult::Failed_UnzipError) {
+            ThrowMsg(Jobs::WidgetInstall::Exceptions::ExtractFileFailed,
+                    "can't extract wgt file");
         } else if (m_result == ConfigureResult::Failed_LowerVersion) {
             ThrowMsg(Jobs::WidgetInstall::Exceptions::PackageLowerVersion,
                     "package version is lower than installed version");
@@ -239,14 +245,11 @@ JobWidgetInstall::JobWidgetInstall(
         // Any error in acecheck while update will break widget
         AddTask(new TaskSmack(m_installerContext));
         AddTask(new TaskRemoveBackupFiles(m_installerContext));
-    } else if (result >= ConfigureResult::Failed &&
-            result <= ConfigureResult::Failed_NotSupportRDSUpdate) {
+    } else {
         // Installation is not allowed to proceed due to widget update policy
         LogWarning("Configure installation failed!");
 
         AddTask(new InstallerTaskFail(result));
-    } else {
-        Assert(false && "Invalid configure result!");
     }
 }
 
@@ -301,10 +304,20 @@ ConfigureResult JobWidgetInstall::prepareInstallation(
         // Configure installation
         result = ConfigureInstallation(widgetPath, configData, tempDir);
     }
+    Catch(Exceptions::OpenZipFailed)
+    {
+        LogError("Failed to unzip for widget");
+        result = ConfigureResult::Failed_OpenZipError;
+    }
     Catch(Exceptions::ExtractFileFailed)
     {
-        LogError("Failed to create temporary path for widget");
-        result = ConfigureResult::Failed_InvalidConfig;
+        LogError("Failed to unzip for widget");
+        result = ConfigureResult::Failed_UnzipError;
+    }
+    Catch(Exceptions::DrmDecryptFailed)
+    {
+        LogError("Failed to unzip for widget");
+        result = ConfigureResult::Failed_DrmError;
     }
 
     return result;
index 323dc1b..1eebc7b 100644 (file)
@@ -48,6 +48,8 @@ enum class ConfigureResult
     Failed_WidgetRunning,
     Failed_DrmError,
     Failed_NotSupportRDSUpdate,
+    Failed_OpenZipError,
+    Failed_UnzipError,
 };
 
 class JobWidgetInstall :