Add new smoke tests 21/137521/6
authorBartlomiej Kunikowski <b.kunikowski@partner.samsung.com>
Thu, 6 Jul 2017 07:49:19 +0000 (09:49 +0200)
committerjongmyeong ko <jongmyeong.ko@samsung.com>
Thu, 10 Aug 2017 00:55:30 +0000 (00:55 +0000)
- SmokeTest.ManifestDirectInstallMode
- SmokeTest.ManifestDirectUpdateMode
- SmokeTest.ReadonlyUpdateInstallMode
- SmokeTest.ReadonlyUpdateUninstallMode

Change-Id: Iefbcc49561afe238feef4a560c4d0492ad2537e0
Signed-off-by: Bartlomiej Kunikowski <b.kunikowski@partner.samsung.com>
13 files changed:
src/unit_tests/smoke_test.cc
src/unit_tests/smoke_utils.cc
src/unit_tests/smoke_utils.h
src/unit_tests/test_samples/smoke/ManifestDirectInstallMode/smoketpk41/author-signature.xml [new file with mode: 0644]
src/unit_tests/test_samples/smoke/ManifestDirectInstallMode/smoketpk41/bin/basicui [new file with mode: 0644]
src/unit_tests/test_samples/smoke/ManifestDirectInstallMode/smoketpk41/lib/sth.txt [new file with mode: 0644]
src/unit_tests/test_samples/smoke/ManifestDirectInstallMode/smoketpk41/res/sth.txt [new file with mode: 0644]
src/unit_tests/test_samples/smoke/ManifestDirectInstallMode/smoketpk41/shared/res/basicui.png [new file with mode: 0644]
src/unit_tests/test_samples/smoke/ManifestDirectInstallMode/smoketpk41/signature1.xml [new file with mode: 0644]
src/unit_tests/test_samples/smoke/ManifestDirectInstallMode/smoketpk41/tizen-manifest.xml [new file with mode: 0644]
src/unit_tests/test_samples/smoke/ManifestDirectUpdateMode.tpk [new file with mode: 0644]
src/unit_tests/test_samples/smoke/ReadonlyUpdateInstallMode.tpk [new file with mode: 0644]
src/unit_tests/test_samples/smoke/ReadonlyUpdateUninstallMode.tpk [new file with mode: 0644]

index 169d5a6..049ca5f 100644 (file)
@@ -542,6 +542,59 @@ TEST_F(SmokeTest, MountUpdateMode_Rollback) {
   ASSERT_TRUE(ValidateFileContentInPackage(pkgid, "res/VERSION", "1"));
 }
 
+TEST_F(PreloadSmokeTest, ManifestDirectInstallMode) {
+  ASSERT_EQ(getuid(), 0) << "Test cannot be run by normal user";
+  bf::path src_path = kSmokePackagesDirectory / "ManifestDirectInstallMode";
+  std::string pkgid = "smoketpk41";
+  std::string appid = "smoketpk41.ManifestDirectInstallMode";
+  bf::path pkg_path = ci::GetRootAppPath(false, kTestUserId);
+
+  CopyDir(src_path / pkgid, pkg_path / pkgid);
+  ASSERT_FALSE(QueryIsPackageInstalled(pkgid, ci::GetRequestMode(kTestUserId),
+                                       kTestUserId));
+  ASSERT_EQ(ManifestDirectInstall(pkgid), ci::AppInstaller::Result::OK);
+  ValidatePackage(pkgid, {appid});
+}
+
+TEST_F(SmokeTest, ManifestDirectUpdateMode) {
+  bf::path path = kSmokePackagesDirectory / "ManifestDirectUpdateMode.tpk";
+  std::string pkgid = "smoketpk42";
+  std::string appid = "smoketpk42.ManifestDirectUpdateMode";
+
+  ASSERT_EQ(Install(path), ci::AppInstaller::Result::OK);
+  int install_time = GetAppInstalledTime(appid.c_str(), kTestUserId);
+  ASSERT_EQ(ManifestDirectInstall(pkgid), ci::AppInstaller::Result::OK);
+  ASSERT_TRUE(GetAppInstalledTime(appid.c_str(), kTestUserId) > install_time)
+      << "Package is not updated (app installed time didn't change).";
+  ValidatePackage(pkgid, {appid});
+}
+
+TEST_F(PreloadSmokeTest, ReadonlyUpdateInstallMode) {
+  ASSERT_EQ(getuid(), 0) << "Test cannot be run by normal user";
+  bf::path path = kSmokePackagesDirectory / "ReadonlyUpdateInstallMode.tpk";
+  std::string pkgid = "smoketpk43";
+  std::string appid = "smoketpk43.ReadonlyUpdateInstallMode";
+
+  ASSERT_EQ(InstallPreload(path), ci::AppInstaller::Result::OK);
+  ASSERT_EQ(Install(path), ci::AppInstaller::Result::OK);
+  ValidatePackage(pkgid, {appid});
+  ValidatePackage(pkgid, {appid}, true);
+}
+
+TEST_F(PreloadSmokeTest, ReadonlyUpdateUninstallMode) {
+  ASSERT_EQ(getuid(), 0) << "Test cannot be run by normal user";
+  bf::path path = kSmokePackagesDirectory / "ReadonlyUpdateUninstallMode.tpk";
+  std::string pkgid = "smoketpk44";
+  std::string appid = "smoketpk44.ReadonlyUpdateUninstallMode";
+
+  ASSERT_EQ(InstallPreload(path), ci::AppInstaller::Result::OK);
+  ASSERT_EQ(Install(path), ci::AppInstaller::Result::OK);
+  ValidatePackage(pkgid, {appid});
+  ValidatePackage(pkgid, {appid}, true);
+  ASSERT_EQ(Uninstall(pkgid, false), ci::AppInstaller::Result::OK);
+  ValidatePackage(pkgid, {appid}, true);
+}
+
 }  // namespace common_installer
 
 int main(int argc,  char** argv) {
index c3f48ce..0a86f20 100644 (file)
@@ -698,6 +698,12 @@ ci::AppInstaller::Result Recover(const bf::path& recovery_file,
   return CallBackend(SIZEOFARRAY(argv), argv, mode);
 }
 
+ci::AppInstaller::Result ManifestDirectInstall(const std::string& pkgid,
+                                               RequestResult mode) {
+  const char* argv[] = {"", "-y", pkgid.c_str(), "-u", kTestUserIdStr.c_str()};
+  return CallBackend(SIZEOFARRAY(argv), argv, mode);
+}
+
 void BackupPath(const bf::path& path) {
   bf::path backup_path = path.string() + ".bck";
   std::cout << "Backup path: " << path << " to " << backup_path << std::endl;
@@ -797,3 +803,20 @@ void UninstallAllSmokeApps(ci::RequestMode request_mode) {
   UninstallAllAppsInDirectory(apps_rw, false);
 }
 
+int GetAppInstalledTime(const char *appid, uid_t uid)
+{
+       int ret = 0;
+       int installed_time = 0;
+       pkgmgrinfo_appinfo_h handle = NULL;
+       ret = pkgmgrinfo_appinfo_get_usr_appinfo(appid, uid, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_appinfo_get_installed_time(handle, &installed_time);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_appinfo_destroy_appinfo(handle);
+               return -1;
+       }
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
+       return installed_time;
+}
+
index 7e8f242..3b671c8 100644 (file)
@@ -235,6 +235,9 @@ ci::AppInstaller::Result DeltaInstall(const bf::path& path,
 ci::AppInstaller::Result Recover(const bf::path& recovery_file,
     RequestResult mode = RequestResult::NORMAL);
 
+ci::AppInstaller::Result ManifestDirectInstall(const std::string& pkgid,
+    RequestResult mode = RequestResult::NORMAL);
+
 void BackupPath(const bf::path& path);
 
 void RestorePath(const bf::path& path);
@@ -245,4 +248,6 @@ void UninstallAllAppsInDirectory(bf::path dir, bool is_readonly);
 
 void UninstallAllSmokeApps(ci::RequestMode request_mode);
 
+int GetAppInstalledTime(const char *appid, uid_t uid);
+
 #endif  // UNIT_TESTS_SMOKE_UTILS_H_
diff --git a/src/unit_tests/test_samples/smoke/ManifestDirectInstallMode/smoketpk41/author-signature.xml b/src/unit_tests/test_samples/smoke/ManifestDirectInstallMode/smoketpk41/author-signature.xml
new file mode 100644 (file)
index 0000000..45a6533
--- /dev/null
@@ -0,0 +1,66 @@
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="AuthorSignature">
+<SignedInfo>
+<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></CanonicalizationMethod>
+<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"></SignatureMethod>
+<Reference URI="bin%2Fbasicui">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>Yrs3GkHAMzZGL7qmFGAF7sdXg6shvOtthBSb/Hjzfjw=</DigestValue>
+</Reference>
+<Reference URI="shared%2Fres%2Fbasicui.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>1d0oEZHqPn+QzNzGIHwj9ODby6x9ggFs9uOsav6jPNs=</DigestValue>
+</Reference>
+<Reference URI="tizen-manifest.xml">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>vQ+rOr8hWb4TVBijWblCSAB+8eePv+QyN6wNXzvJgSE=</DigestValue>
+</Reference>
+<Reference URI="#prop">
+<Transforms>
+<Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11"></Transform>
+</Transforms>
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>lpo8tUDs054eLlBQXiDPVDVKfw30ZZdtkRs1jd7H5K8=</DigestValue>
+</Reference>
+</SignedInfo>
+<SignatureValue>
+ATfZj/k87yYSeapRBX0sMZ5tO6jMQDj4EWCCTLtj5cf+N1s8WCbl4sST53hWdTf+JgvAzTpF6x+t
+LcwC9zQZxfYTzHu0KqyKJy6uXj6tiB85SSlYhejOtDogxvGFCnRo6RZioYzF4SDtxha9NkYyh1PF
+L0UpraclVNYVc1MMfYY=
+</SignatureValue>
+<KeyInfo>
+<X509Data>
+<X509Certificate>
+MIICnDCCAYSgAwIBAgIGAVvS9uY8MA0GCSqGSIb3DQEBBQUAMFYxGjAYBgNVBAoMEVRpemVuIEFz
+c29jaWF0aW9uMRowGAYDVQQLDBFUaXplbiBBc3NvY2lhdGlvbjEcMBoGA1UEAwwTVGl6ZW4gRGV2
+ZWxvcGVycyBDQTAeFw0xMjExMDEwMDAwMDBaFw0xOTAxMDEwMDAwMDBaMBgxFjAUBgNVBAMMDUFw
+cF9pbnN0YWxsZXIwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAIKgQLsl5UIJdfdaDXbY+aQ6
+VHjwTPv5+aUlF1l6G9SDZ7tmJTCO1yAudmMr6vEN+ZL/bbOEAlyhkJPTmntPesO1h/WzjIlpFzTO
+UcHlEXAu1vZGTnPBoYTutBeVmbH9JY/dCSm2xFSioKaWHl+uMn0SB1DcvgIVSs4DkvO0F1+TAgMB
+AAGjMjAwMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMA0G
+CSqGSIb3DQEBBQUAA4IBAQBwNrj9b7/g4JI9K3wohRLHW5IpxOwBO9gUlkotSUNaiAvNwsQfB5pE
+k+rTUa4Nwxcq6rFfne1brXP1vbl/bVGW/WJqV6dF3BL1QfwGif0vvcO1Sz2QOpoc/Jtt8zlmsRne
+TIEMph6kDUT1oNUlTCGnxD24WagRxuGUe/RZ6L4y+6T8L+fBDtMyyM+GytqE72V+0KeyITJMTdzM
+wRMjN3XccXemcox73isLxSXlgwrFbotkTyYPTFphiZCRU7BlA3EClIk+3To0b3irROY/iIlg6ZyY
+gNbND9/aIJxqPqCghW7PMjGH/9KK2mtNhtJSFrIAvvUiW/fMrNj1opsAHGgJ
+</X509Certificate>
+<X509Certificate>
+MIIDOTCCAiGgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMRowGAYDVQQKDBFUaXplbiBBc3NvY2lh
+dGlvbjEaMBgGA1UECwwRVGl6ZW4gQXNzb2NpYXRpb24xHjAcBgNVBAMMFVRpemVuIERldmVsb3Bl
+cnMgUm9vdDAeFw0xMjAxMDEwMDAwMDBaFw0yNzAxMDEwMDAwMDBaMFYxGjAYBgNVBAoMEVRpemVu
+IEFzc29jaWF0aW9uMRowGAYDVQQLDBFUaXplbiBBc3NvY2lhdGlvbjEcMBoGA1UEAwwTVGl6ZW4g
+RGV2ZWxvcGVycyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANVGhRGmMIUyBA7o
+PCz8Sxut6z6HNkF4oDIuzuKaMzRYPeWodwe9O0gmqAkToQHfwg2giRhE5GoPld0fq+OYMMwSasCu
+g8dwODx1eDeSYVuOLWRxpAmbTXOsSFi6VoWeyaPEm18JBHvZBsU5YQtgZ6Kp7MqzvQg3pXOxtajj
+vyHxiatJl+xXrHgcXC1wgyG3buty7u/Fi2mvKXJ0PRJcCjjK81dqe/Vr20sRUCrbk02zbm5ggFt/
+jIEhV8wbFRQpliobc7J4dSTKhFfrqGM8rdd54LYhD7gSI1CFSe16pUXfcVR7FhJztRaiGLnCrwBE
+dyTZ248+D4L/qR/D0axb3jcCAwEAAaMQMA4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOC
+AQEAnOXXQ/1O/QTDHyrmQDtFziqPY3xWlJBqJtEqXiT7Y+Ljpe66e+Ee/OjQMlZe8gu21/8cKklH
+95RxjopMWCVedXDUbWdvS2+CdyvVW/quT2E0tjqIzXDekUTYwwhlPWlGxvfj3VsxqSFq3p8Brl04
+1Gx5RKAGyKVsMfTLhbbwSWwApuBUxYfcNpKwLWGPXkysu+HctY03OKv4/xKBnVWiN8ex/Sgesi0M
++OBAOMdZMPK32uJBTeKFx1xZgTLIhk45V0hPOomPjZloiv0LSS11eyd451ufjW0iHRE7WlpR6EvI
+W6TFyZgMpQq+kg4hWl2SBTf3s2VI8Ygz7gj8TMlClg==
+</X509Certificate>
+</X509Data>
+</KeyInfo>
+<Object Id="prop"><SignatureProperties xmlns:dsp="http://www.w3.org/2009/xmldsig-properties"><SignatureProperty Id="profile" Target="#AuthorSignature"><dsp:Profile URI="http://www.w3.org/ns/widgets-digsig#profile"></dsp:Profile></SignatureProperty><SignatureProperty Id="role" Target="#AuthorSignature"><dsp:Role URI="http://www.w3.org/ns/widgets-digsig#role-author"></dsp:Role></SignatureProperty><SignatureProperty Id="identifier" Target="#AuthorSignature"><dsp:Identifier></dsp:Identifier></SignatureProperty></SignatureProperties></Object>
+</Signature>
\ No newline at end of file
diff --git a/src/unit_tests/test_samples/smoke/ManifestDirectInstallMode/smoketpk41/bin/basicui b/src/unit_tests/test_samples/smoke/ManifestDirectInstallMode/smoketpk41/bin/basicui
new file mode 100644 (file)
index 0000000..91135f5
Binary files /dev/null and b/src/unit_tests/test_samples/smoke/ManifestDirectInstallMode/smoketpk41/bin/basicui differ
diff --git a/src/unit_tests/test_samples/smoke/ManifestDirectInstallMode/smoketpk41/lib/sth.txt b/src/unit_tests/test_samples/smoke/ManifestDirectInstallMode/smoketpk41/lib/sth.txt
new file mode 100644 (file)
index 0000000..a3cc0b5
--- /dev/null
@@ -0,0 +1 @@
+Needed, because empty directories are skipped when copying, and directory structure will be invalid.
diff --git a/src/unit_tests/test_samples/smoke/ManifestDirectInstallMode/smoketpk41/res/sth.txt b/src/unit_tests/test_samples/smoke/ManifestDirectInstallMode/smoketpk41/res/sth.txt
new file mode 100644 (file)
index 0000000..a3cc0b5
--- /dev/null
@@ -0,0 +1 @@
+Needed, because empty directories are skipped when copying, and directory structure will be invalid.
diff --git a/src/unit_tests/test_samples/smoke/ManifestDirectInstallMode/smoketpk41/shared/res/basicui.png b/src/unit_tests/test_samples/smoke/ManifestDirectInstallMode/smoketpk41/shared/res/basicui.png
new file mode 100644 (file)
index 0000000..9765b1b
Binary files /dev/null and b/src/unit_tests/test_samples/smoke/ManifestDirectInstallMode/smoketpk41/shared/res/basicui.png differ
diff --git a/src/unit_tests/test_samples/smoke/ManifestDirectInstallMode/smoketpk41/signature1.xml b/src/unit_tests/test_samples/smoke/ManifestDirectInstallMode/smoketpk41/signature1.xml
new file mode 100644 (file)
index 0000000..399fa19
--- /dev/null
@@ -0,0 +1,68 @@
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="DistributorSignature">
+<SignedInfo>
+<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></CanonicalizationMethod>
+<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"></SignatureMethod>
+<Reference URI="author-signature.xml">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>anhYz6XCClJebTJ+qamYS8R0Rk4xDr7LKqaWzyxvj0I=</DigestValue>
+</Reference>
+<Reference URI="bin%2Fbasicui">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>Yrs3GkHAMzZGL7qmFGAF7sdXg6shvOtthBSb/Hjzfjw=</DigestValue>
+</Reference>
+<Reference URI="shared%2Fres%2Fbasicui.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>1d0oEZHqPn+QzNzGIHwj9ODby6x9ggFs9uOsav6jPNs=</DigestValue>
+</Reference>
+<Reference URI="tizen-manifest.xml">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>vQ+rOr8hWb4TVBijWblCSAB+8eePv+QyN6wNXzvJgSE=</DigestValue>
+</Reference>
+<Reference URI="#prop">
+<Transforms>
+<Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11"></Transform>
+</Transforms>
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>u/jU3U4Zm5ihTMSjKGlGYbWzDfRkGphPPHx3gJIYEJ4=</DigestValue>
+</Reference>
+</SignedInfo>
+<SignatureValue>
+NTEUK1tZpBTxjgfGxbwc1bZr8kAG8dc2+hx2xzUFxZUgIWwIIy/SdKy7VGUCAH3y/HApfaNBL1SL
+RnGoQ/R3L/eQvQnzq/iTpZcCSpYnnvH9fJHAmgSod5XgH9IS+QKU/fzJ1rhlMBMD8oGxrDa4JrQJ
+65+mUCgDS7LZUp6olx8=
+</SignatureValue>
+<KeyInfo>
+<X509Data>
+<X509Certificate>
+MIICnTCCAgYCCQDE9MbMmJ/yCzANBgkqhkiG9w0BAQUFADCBkDELMAkGA1UEBhMCS1IxDjAMBgNV
+BAgMBVN1d29uMQ4wDAYDVQQHDAVTdXdvbjEWMBQGA1UECgwNVGl6ZW4gVGVzdCBDQTEiMCAGA1UE
+CwwZVGl6ZW4gRGlzdHJpYnV0b3IgVGVzdCBDQTElMCMGA1UEAwwcVGl6ZW4gUGFydG5lciBEaXN0
+cmlidXRvciBDQTAeFw0xMjEwMjcwNzQ4MzNaFw0yMjEwMjUwNzQ4MzNaMIGUMQswCQYDVQQGEwJL
+UjEOMAwGA1UECAwFU3V3b24xDjAMBgNVBAcMBVN1d29uMRYwFAYDVQQKDA1UaXplbiBUZXN0IENB
+MSIwIAYDVQQLDBlUaXplbiBEaXN0cmlidXRvciBUZXN0IENBMSkwJwYDVQQDDCBUaXplbiBQYXJ0
+bmVyIERpc3RyaWJ1dG9yIFNpZ25lcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAy9mg2x4B
+zxlK3LJL81GsLq/pJfK1evdCKG/IOBpdoRO0rLhYnsL5+KvToPFa5g9GTZo32LikpW1NZ7++3EHE
+fnO2IGLUau4kquvhmz1LNg5xBTx7IbucmwLMRGo1BPGdsAQQLyXeQKJ5PCERmVg4MIoiL2zT/JsL
+sZ9UPT6GEB8CAwEAATANBgkqhkiG9w0BAQUFAAOBgQAw5xPBFR1XKuZ8QpsCtSE0zXVHvwIa+Ha4
+YBdRtGwEoZmiKGZV/wAhPRdmR0kISkTz20kIGz/ZwRZCVGhsr5hkkpFknYlKeKkEJ/tJfZl4D7ec
+GFAnynOzlWZqSIPz+yxX8ah9E6lTv4Vs9DhNb08nxVvxLqlpyVdk9RUsCx/yIA==
+</X509Certificate>
+<X509Certificate>
+MIICtTCCAh6gAwIBAgIJAKORBcIiXygIMA0GCSqGSIb3DQEBBQUAMIGVMQswCQYDVQQGEwJLUjEO
+MAwGA1UECAwFU3V3b24xDjAMBgNVBAcMBVN1d29uMRYwFAYDVQQKDA1UaXplbiBUZXN0IENBMSIw
+IAYDVQQLDBlUaXplbiBEaXN0cmlidXRvciBUZXN0IENBMSowKAYDVQQDDCFUaXplbiBQYXJ0bmVy
+IERpc3RyaWJ1dG9yIFJvb3QgQ0EwHhcNMTIxMDI3MDc0NTIwWhcNMjIxMDI1MDc0NTIwWjCBkDEL
+MAkGA1UEBhMCS1IxDjAMBgNVBAgMBVN1d29uMQ4wDAYDVQQHDAVTdXdvbjEWMBQGA1UECgwNVGl6
+ZW4gVGVzdCBDQTEiMCAGA1UECwwZVGl6ZW4gRGlzdHJpYnV0b3IgVGVzdCBDQTElMCMGA1UEAwwc
+VGl6ZW4gUGFydG5lciBEaXN0cmlidXRvciBDQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
+2ZQrdEowjqxUmB8FX8ej19VKY6jGHKNIRE5wrhBkuZ1b0FLRPiN3/Cl9wMkCnyJui4QhC28g1aBg
+w/JnaObcDqW1NgFVH3006+gZvCTDlw1nIEjvZa6P+uWOOi05xPPAE0feKPkO1POnOjnapfkkEVNU
+8TXsLbLYBylWT8rxZC8CAwEAAaMQMA4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQBJ
+yJ7p6qs0JI+1iKOk/sYWVP6dMueY72qOc/wVj5c3ejOlgJNNXDMAQ14QcRRexffc68ipTwybU/3m
+tcNwydzKJe+GFa4b2zyKOvOgrfs4MKSR0T9XEPmTKeR+NDT2CbA6/kQoRYm0fSORzD2UXJzNZWe/
+WjwSA66hv4q+0QZQFQ==
+</X509Certificate>
+</X509Data>
+</KeyInfo>
+<Object Id="prop"><SignatureProperties xmlns:dsp="http://www.w3.org/2009/xmldsig-properties"><SignatureProperty Id="profile" Target="#DistributorSignature"><dsp:Profile URI="http://www.w3.org/ns/widgets-digsig#profile"></dsp:Profile></SignatureProperty><SignatureProperty Id="role" Target="#DistributorSignature"><dsp:Role URI="http://www.w3.org/ns/widgets-digsig#role-distributor"></dsp:Role></SignatureProperty><SignatureProperty Id="identifier" Target="#DistributorSignature"><dsp:Identifier></dsp:Identifier></SignatureProperty></SignatureProperties></Object>
+</Signature>
\ No newline at end of file
diff --git a/src/unit_tests/test_samples/smoke/ManifestDirectInstallMode/smoketpk41/tizen-manifest.xml b/src/unit_tests/test_samples/smoke/ManifestDirectInstallMode/smoketpk41/tizen-manifest.xml
new file mode 100644 (file)
index 0000000..780b3f1
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="3.0" package="smoketpk41" version="1.0.0">
+       <profile name="mobile" />
+       <ui-application appid="smoketpk41.ManifestDirectInstallMode" exec="basicui" type="capp" multiple="false" taskmanage="true" nodisplay="false" launch_mode="single">
+               <icon>basicui.png</icon>
+               <label>basicui</label>
+       </ui-application>
+</manifest>
diff --git a/src/unit_tests/test_samples/smoke/ManifestDirectUpdateMode.tpk b/src/unit_tests/test_samples/smoke/ManifestDirectUpdateMode.tpk
new file mode 100644 (file)
index 0000000..f96ff56
Binary files /dev/null and b/src/unit_tests/test_samples/smoke/ManifestDirectUpdateMode.tpk differ
diff --git a/src/unit_tests/test_samples/smoke/ReadonlyUpdateInstallMode.tpk b/src/unit_tests/test_samples/smoke/ReadonlyUpdateInstallMode.tpk
new file mode 100644 (file)
index 0000000..c678f07
Binary files /dev/null and b/src/unit_tests/test_samples/smoke/ReadonlyUpdateInstallMode.tpk differ
diff --git a/src/unit_tests/test_samples/smoke/ReadonlyUpdateUninstallMode.tpk b/src/unit_tests/test_samples/smoke/ReadonlyUpdateUninstallMode.tpk
new file mode 100644 (file)
index 0000000..ffc8dcb
Binary files /dev/null and b/src/unit_tests/test_samples/smoke/ReadonlyUpdateUninstallMode.tpk differ