Fix TTS-2015 by improving Security TC
authoryuhanx.xu <yuhanx.xu@intel.com>
Tue, 24 Sep 2013 10:26:20 +0000 (18:26 +0800)
committerwanmingx.lin <wanmingx.lin@intel.com>
Thu, 26 Sep 2013 03:50:44 +0000 (11:50 +0800)
Signed-off-by: yuhanx.xu <yuhanx.xu@intel.com>
tests/Security/index.html
tests/Security/js/main.js

index b552940..969fc12 100755 (executable)
@@ -47,14 +47,14 @@ Authors:
         <div id="content">
             <ul data-role="listview">
                 <li data-role="list-divider">Home Directory</li>
-                <li><div data-role="button" id="openHomeBtn">Open Directory</div></li>
-                <li><div data-role="button" id="homeBtn">Create File</div></li>
+                <li><div data-role="button" id="openHomeBtn">Open /opt/home/app directory</div></li>
+                <li><div data-role="button" id="homeBtn">Create file</div></li>
                 <ul data-role="listview" id="home" data-inset="true"></ul>
             </ul>
             <ul data-role="listview">
                 <li data-role="list-divider">Shared Media Directory</li>
-                <li><div data-role="button" id="openMediaBtn">Open Directory</div></li>
-                <li><div data-role="button" id="mediaBtn">Create File</div></li>
+                <li><div data-role="button" id="openMediaBtn">Open /opt/usr/media directory</div></li>
+                <li><div data-role="button" id="mediaBtn">Create file</div></li>
                 <ul data-role="listview" id="media" data-inset="true"></ul>
             </ul>
             <ul data-role="listview">
@@ -63,16 +63,21 @@ Authors:
                 <li><div data-role="button" id="openSystemBtn">Open Directory</div></li>
                 <li><div data-role="button" id="systemBtn">Create File</div></li>
                 -->
-                <li><div data-role="button" id="openUsrShareBtn">Open Usr Share Directory</div></li>
-                <li><div data-role="button" id="openOptShareBtn">Open Opt Share Directory</div></li>
-                <li><div data-role="button" id="openOptDbspaceBtn">Open Opt Dbspace Directory</div></li>
-                <li><div data-role="button" id="openOptUsrDbspaceBtn">Open Opt Usr Dbspace Directory</div></li>
-                <li><div data-role="button" id="openOptVarKdbDbBtn">Open Opt Var Kdb Db Directory</div></li>
+                <li><div data-role="button" id="openUsrShareBtn">Open /usr/share directory</div></li>
+                <li><div data-role="button" id="openOptShareBtn">Open /opt/share directory</div></li>
+                <li><div data-role="button" id="openOptDbspaceBtn">Open /opt/dbspace directory</div></li>
+                <li><div data-role="button" id="openOptUsrDbspaceBtn">Open /opt/usr/dbspace directory</div></li>
+                <li><div data-role="button" id="openOptVarKdbDbBtn">Open /opt/var/kdb/db directory</div></li>
                 <ul data-role="listview" id="system" data-inset="true"></ul>
             </ul>
             <ul data-role="listview" >
-                <li data-role="list-divider">Etc Directory</li>
-                <li><div data-role="button" id="openEtcBtn">Open Directory</div></li>
+                <li data-role="list-divider">Temporary Directory</li>
+                <li><div data-role="button" id="openTmpBtn">Open /tmp/ directory</div></li>
+                <ul data-role="listview" id="tmp" data-inset="true"></ul>
+            </ul>
+            <ul data-role="listview" >
+                <li data-role="list-divider">Permission Denied Directory</li>
+                <li><div data-role="button" id="openEtcBtn">Open /etc/ directory</div></li>
             </ul>
         </div>
         <div data-role="footer" data-position="fixed">
@@ -80,9 +85,18 @@ Authors:
         <div data-role="popup" id="popup_info">
           <font style="font-size:85%">
             <p>Test Purpose: </p>
-            <p>Verifies the "USER" of running Applications should be non-root ID and an application only allows user to manipulate files in the following locations: home directory, shared media directory, shared system directory. Get the "USER" info via cmdline "ps aux|awk 'NR==1;/tctbhtests\.TCTBehaviorTests/'" in console. Manipulate files in home, shared media, shared system and etc directory through 4 buttons on the screen.</p>
+            <p>Verifies that (1) this applicaton is running by non-root ID and, (2) it is only allowed to manipulate files in the following locations: home directory, shared media directory, shared system resources, and temporary directories.</p>
+           <p>Test Step: </p>
+            <ol>
+              <li>Get the "USER" info via cmdline "ps aux|awk 'NR==1;/tctbhtests\.TCTBehaviorTests/'" in console.</li>
+              <li>Open and/or create files in home directory, shared media directory, shared system resources, temporary directory and etc directory.</li>
+            </ol>
             <p>Expected Result: </p>
-            <p>This test PASS only if the test Application runs under a non-root ID and user could manipulate files in home, shared media, shared system directory but not ect directory.</p>
+            <p>Test passes if 
+               <li>the "USRER" info is NOT root user</li>
+               <li>there is <strong>no error message</strong> when click buttons under "Home Directory", "Shared Media Directory", "Shared System Directory" and "Temporary Directory"</li>
+               <li>and if there appears error message when click button under "Permission Denied Directory".</li>
+            </p>
           </font>
         </div>
     </body>
index a728cb8..50fa1f7 100755 (executable)
@@ -29,19 +29,20 @@ Authors:
 
 */
 
-var gFiles = [];
-var home_dir = "file:///opt/home/app",
-    home_delete_dir = "/opt/home/app/",
-    shared_media_dir = "file:///opt/usr/media",
-    media_delete_dir = "internal0/",
-    shared_system_dir_1 = "file:///usr/share",
-    shared_system_dir_2 = "file:///opt/share",
-    shared_system_dir_3 = "file:///opt/dbspace",
-    shared_system_dir_4 = "file:///opt/usr/dbspace",
-    shared_system_dir_5 = "file:///opt/var/kdb/db",
-    etc_dir = "file:///etc";
-var count = 0, homeDir, mediaDir, systemDir, etcDir,
+var HOME_DIR = "file:///opt/home/app",
+    HOME_DELETE_DIR = "/opt/home/app/",
+    SHARED_MEDIA_DIR = "file:///opt/usr/media",
+    MEDIA_DELETE_DIR = "internal0/",
+    SHARED_SYSTEM_DIR_1 = "file:///usr/share",
+    SHARED_SYSTEM_DIR_2 = "file:///opt/share",
+    SHARED_SYSTEM_DIR_3 = "file:///opt/dbspace",
+    SHARED_SYSTEM_DIR_4 = "file:///opt/usr/dbspace",
+    SHARED_SYSTEM_DIR_5 = "file:///opt/var/kdb/db",
+    TMP_DIR = "file:///tmp",
+    ETC_DIR = "file:///etc";
+var count = 0, homeDir, mediaDir, systemDir, tmpDir, etcDir,
             usrShareDir, optShareDir, optDbshareDir, optUsrDbspaceDir, optVarKdbDbDir;
+var gFiles = [], createdNumber = [];
 var etcFlag = false;
 
 $(document).ready(function(){
@@ -74,17 +75,19 @@ $(document).ready(function(){
 
     function openDirectory(str, selector) {
         try {
-            if (str == home_dir || str == shared_media_dir) {
+            if (str == HOME_DIR || str == SHARED_MEDIA_DIR) {
                 tizen.filesystem.resolve(str, function(dir) {
                     dir.listFiles(function(files) {
                         makeFileList(files, selector);
                         switch (str) {
-                            case home_dir: {
+                            /* Home Directory */
+                            case HOME_DIR: {
                                 homeDir = dir;
                                 alert("Open Success");
                                 break;
                             }
-                            case shared_media_dir: {
+                            /* Shared Media Directory */
+                            case SHARED_MEDIA_DIR: {
                                 mediaDir = dir;
                                 alert("Open Success");
                                 break;
@@ -100,38 +103,45 @@ $(document).ready(function(){
                     dir.listFiles(function(files) {
                         makeFileList(files, selector);
                         switch (str) {
+                            /* Shared System Directory */
                             //case "/usr/share": {
                             //    systemDir = dir;
                             //    alert("Open Success");
                             //    break;
                             //}
-                            /* Shared System Directory */
-                            case shared_system_dir_1: {
+                            case SHARED_SYSTEM_DIR_1: {
                                 usrShareDir = dir;
                                 alert("Open Success");
                                 break;
                             }
-                            case shared_system_dir_2: {
+                            case SHARED_SYSTEM_DIR_2: {
                                 optShareDir = dir;
                                 alert("Open Success");
                                 break;
                             }
-                            case shared_system_dir_3: {
+                            case SHARED_SYSTEM_DIR_3: {
                                 optDbshareDir = dir;
                                 alert("Open Success");
                                 break;
                             }
-                            case shared_system_dir_4: {
+                            case SHARED_SYSTEM_DIR_4: {
                                 optUsrDbspaceDir = dir;
                                 alert("Open Success");
                                 break;
                             }
-                            case shared_system_dir_5: {
+                            case SHARED_SYSTEM_DIR_5: {
                                 optVarKdbDbDir = dir;
                                 alert("Open Success");
                                 break;
                             }
-                            case etc_dir: {
+                            /* Temporary Directory */
+                            case TMP_DIR: {
+                                tmpDir = dir;
+                                alert("Open Success");
+                                break;
+                            }
+                            /* Permission Denied Directory */
+                            case ETC_DIR: {
                                 etcDir = dir;
                                 alert("Open Success");
                                 break;
@@ -167,6 +177,7 @@ $(document).ready(function(){
                 + count
                 + ')" data-icon="delete" data-theme="c">'
                 + '</a></li>';
+            createdNumber.push(count);
             gFiles[count++] = newFile;
             if (str) {
                 $(selector).append(str).trigger("create").listview("refresh");
@@ -191,14 +202,14 @@ $(document).ready(function(){
 
     $("#openHomeBtn").on("click",function() {
         if (!homeDir) {
-            openDirectory(home_dir, "#home");
+            openDirectory(HOME_DIR, "#home");
         } else {
             alert("Already Opened");
         }
     });
     $("#openMediaBtn").on("click",function() {
         if (!mediaDir) {
-            openDirectory(shared_media_dir, "#media");
+            openDirectory(SHARED_MEDIA_DIR, "#media");
         } else {
             alert("Already Opened");
         }
@@ -212,7 +223,7 @@ $(document).ready(function(){
     //});
     $("#openUsrShareBtn").on("click",function() {
         if (!usrShareDir) {
-            openDirectory(shared_system_dir_1, "#system");
+            openDirectory(SHARED_SYSTEM_DIR_1, "#system");
             checkEnable();
         } else {
             alert("Already Opened");
@@ -220,7 +231,7 @@ $(document).ready(function(){
     });
     $("#openOptShareBtn").on("click",function() {
         if (!optShareDir) {
-            openDirectory(shared_system_dir_2, "#system");
+            openDirectory(SHARED_SYSTEM_DIR_2, "#system");
             checkEnable();
         } else {
             alert("Already Opened");
@@ -228,7 +239,7 @@ $(document).ready(function(){
     });
     $("#openOptDbspaceBtn").on("click",function() {
         if (!optDbshareDir) {
-            openDirectory(shared_system_dir_3, "#system");
+            openDirectory(SHARED_SYSTEM_DIR_3, "#system");
             checkEnable();
         } else {
             alert("Already Opened");
@@ -236,7 +247,7 @@ $(document).ready(function(){
     });
     $("#openOptUsrDbspaceBtn").on("click",function() {
         if (!optUsrDbspaceDir) {
-            openDirectory(shared_system_dir_4, "#system");
+            openDirectory(SHARED_SYSTEM_DIR_4, "#system");
             checkEnable();
         } else {
             alert("Already Opened");
@@ -244,7 +255,15 @@ $(document).ready(function(){
     });
     $("#openOptVarKdbDbBtn").on("click",function() {
         if (!optVarKdbDbDir) {
-            openDirectory(shared_system_dir_5, "#system");
+            openDirectory(SHARED_SYSTEM_DIR_5, "#system");
+            checkEnable();
+        } else {
+            alert("Already Opened");
+        }
+    });
+    $("#openTmpBtn").on("click",function() {
+        if (!tmpDir) {
+            openDirectory(TMP_DIR, "#tmp");
             checkEnable();
         } else {
             alert("Already Opened");
@@ -252,7 +271,7 @@ $(document).ready(function(){
     });
     $("#openEtcBtn").on("click",function() {
         if (!etcDir) {
-            openDirectory(etc_dir, "#etc");
+            openDirectory(ETC_DIR, "#etc");
             etcFlag = true;
             checkEnable();
         }
@@ -269,8 +288,8 @@ function deleteFile(id) {
     var dir, selector;
     try {
         switch (gFiles[Number(id)].path) {
-            case home_delete_dir: dir = homeDir; selector = "#home"; break;
-            case media_delete_dir: dir = mediaDir; selector = "#media"; break;
+            case HOME_DELETE_DIR: dir = homeDir; selector = "#home"; break;
+            case MEDIA_DELETE_DIR: dir = mediaDir; selector = "#media"; break;
             //case "/usr/share": dir = systemDir; selector = "#system"; break;
             default: break;
         }
@@ -288,8 +307,15 @@ function deleteFile(id) {
 }
 
 function checkEnable() {
-    if (homeDir && mediaDir && etcFlag &&
+    if (homeDir && mediaDir && tmpDir && etcFlag &&
         usrShareDir && optShareDir && optDbshareDir && optUsrDbspaceDir && optVarKdbDbDir) {
         EnablePassButton();
     }
 }
+
+function backAppsHome() {
+    createdNumber.forEach(function(number) {
+        deleteFile(number);
+    });
+    window.close();
+}
\ No newline at end of file