Fix TTS-1854 by adding code to save the children TCs result
authoryuhanx.xu <yuhanx.xu@intel.com>
Mon, 9 Sep 2013 06:10:29 +0000 (14:10 +0800)
committerwanmingx.lin <wanmingx.lin@intel.com>
Thu, 12 Sep 2013 03:38:56 +0000 (11:38 +0800)
Signed-off-by: yuhanx.xu <yuhanx.xu@intel.com>
packaging/behavior.spec
subtestresult.xml [new file with mode: 0644]
tct-behavior-tests.spec
tests/CSP/js/main.js
tests/ConfigurationExtension/js/main.js
tests/PackageManagement/js/main.js
tests/Stability/js/main.js
tests/WRTSupport/js/main.js
tests/WRTUI/js/main.js

index 116666e9e362e4655a028ee8e756fce62f4f99de..e80be800a27fafa57719d02424e7fd006dd5a5e3 100644 (file)
@@ -31,6 +31,7 @@ cp -a $RPM_BUILD_DIR/%name-%version/index.html $RPM_BUILD_DIR/%name
 cp -a $RPM_BUILD_DIR/%name-%version/config.xml $RPM_BUILD_DIR/%name
 cp -a $RPM_BUILD_DIR/%name-%version/icon.png $RPM_BUILD_DIR/%name
 cp -a $RPM_BUILD_DIR/%name-%version/tests.xml $RPM_BUILD_DIR/%name
+cp -a $RPM_BUILD_DIR/%name-%version/subtestresult.xml $RPM_BUILD_DIR/%name
 cp -a $RPM_BUILD_DIR/%name-%version/js $RPM_BUILD_DIR/%name
 cp -a $RPM_BUILD_DIR/%name-%version/css $RPM_BUILD_DIR/%name
 cp -a $RPM_BUILD_DIR/%name-%version/tests $RPM_BUILD_DIR/%name
diff --git a/subtestresult.xml b/subtestresult.xml
new file mode 100644 (file)
index 0000000..dcd74c4
--- /dev/null
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="./testresult.xsl"?>
+<test_definition>
+<suite name="tct-behavior-tests">
+  <set name="CSP">
+      <testcase id="csp-none" result="N/A"></testcase>
+      <testcase id="csp-self" result="N/A"></testcase>
+      <testcase id="csp-asterisk" result="N/A"></testcase>
+      <testcase id="csp-cross-origin" result="N/A"></testcase>
+      <testcase id="default-policy-by-directives-csp" result="N/A"></testcase>
+      <testcase id="default-policy-by-directives-report-only" result="N/A"></testcase>
+      <testcase id="default-src_none" result="N/A"></testcase>
+      <testcase id="default-src_self" result="N/A"></testcase>
+      <testcase id="default-src_asterisk" result="N/A"></testcase>
+      <testcase id="default-src_cross_origin" result="N/A"></testcase>
+      <testcase id="sandbox-empty-ext" result="N/A"></testcase>
+      <testcase id="sandbox-empty-int" result="N/A"></testcase>
+      <testcase id="sandbox-empty-inline" result="N/A"></testcase>
+      <testcase id="sandbox-same-origin-allow-scripts" result="N/A"></testcase>
+      <testcase id="script-src_none" result="N/A"></testcase>
+      <testcase id="script-src_inline_eval" result="N/A"></testcase>
+      <testcase id="style-src_self" result="N/A"></testcase>
+      <testcase id="report-uri-single-violated" result="N/A"></testcase>
+  </set>
+  <set name="PackageManagement">
+      <testcase id="Sample-widget1" result="N/A"></testcase>
+      <testcase id="Sample-widget2" result="N/A"></testcase>
+      <testcase id="Sample-widget3" result="N/A"></testcase>
+      <testcase id="Sample-widget4" result="N/A"></testcase>
+      <testcase id="widget-version-1" result="N/A"></testcase>
+      <testcase id="npruntime-all-on-arm" result="N/A"></testcase>
+      <testcase id="npruntime-arm-on-x86" result="N/A"></testcase>
+  </set>
+  <set name="ConfigurationExtension">
+      <testcase id="application-content" result="N/A"></testcase>
+      <testcase id="setting-an-more" result="N/A"></testcase>
+      <testcase id="setting-an-one" result="N/A"></testcase>
+      <testcase id="setting-an-zero" result="N/A"></testcase>
+      <testcase id="setting-ar-true" result="N/A"></testcase>
+      <testcase id="setting-bs-disable" result="N/A"></testcase>
+      <testcase id="setting-cm-disable" result="N/A"></testcase>
+      <testcase id="setting-cm-enable" result="N/A"></testcase>
+      <testcase id="setting-encrypt-disable" result="N/A"></testcase>
+      <testcase id="setting-encrypt-enable" result="N/A"></testcase>
+      <testcase id="setting-hwkey-default" result="N/A"></testcase>
+      <testcase id="setting-hwkey-disable" result="N/A"></testcase>
+      <testcase id="setting-hwkey-enable" result="N/A"></testcase>
+      <testcase id="setting-install-location-internal-only-with-card" result="N/A"></testcase>
+      <testcase id="setting-install-location-prefer-external-no-card" result="N/A"></testcase>
+      <testcase id="setting-install-location-prefer-external-with-card" result="N/A"></testcase>
+  </set>
+  <set name="Stability">
+      <testcase id="test-half-memory" result="N/A"></testcase>
+      <testcase id="test-hd-image" result="N/A"></testcase>
+  </set>
+  <set name="WRTSupport">
+      <testcase id="debug-web-inspector-ubuntu" result="N/A"></testcase>
+      <testcase id="debug-web-inspector-windows7" result="N/A"></testcase>
+      <testcase id="lifecycle-unload-event" result="N/A"></testcase>
+      <testcase id="other-localization" result="N/A"></testcase>
+      <testcase id="other-uri-schemes" result="N/A"></testcase>
+      <testcase id="other-uri-schemes-mailto" result="N/A"></testcase>
+      <testcase id="other-widget-access-policy" result="N/A"></testcase>
+      <testcase id="protection-encryption-check" result="N/A"></testcase>
+      <testcase id="security-permission" result="N/A"></testcase>
+      <testcase id="security-policy" result="N/A"></testcase>
+      <testcase id="url-access-multi" result="N/A"></testcase>
+      <testcase id="url-access-multi-all" result="N/A"></testcase>
+      <testcase id="url-access-multi-subdomains" result="N/A"></testcase>
+  </set>
+  <set name="WRTUI">
+      <testcase id="application-rotation-sensor-enable" result="N/A"></testcase>
+      <testcase id="multiple-browsing-context" result="N/A"></testcase>
+      <testcase id="view-mode-fullscreen-rotation" result="N/A"></testcase>
+      <testcase id="view-mode-maximized-rotation" result="N/A"></testcase>
+  </set>
+</suite>
+</test_definition>
index 1bc8765ab5f7179a2c37a0c32584cefff01fa9c1..6eb70d1033c9c2fa1de7f28e34b7f6c8a415cdb8 100644 (file)
@@ -30,6 +30,7 @@ cp -a $pre_dir/index.html $RPM_BUILD_DIR/%name
 cp -a $pre_dir/config.xml $RPM_BUILD_DIR/%name
 cp -a $pre_dir/icon.png $RPM_BUILD_DIR/%name
 cp -a $pre_dir/tests.xml $RPM_BUILD_DIR/%name
+cp -a $pre_dir/subtestresult.xml $RPM_BUILD_DIR/%name
 cp -a $pre_dir/js $RPM_BUILD_DIR/%name
 cp -a $pre_dir/css $RPM_BUILD_DIR/%name
 cp -a $pre_dir/tests $RPM_BUILD_DIR/%name
index 2eda1d6d905b2abb83f8c93204a79534493b55b9..b0621d8d0af202a488ec7435a8ed29d76ba405fb 100644 (file)
@@ -47,6 +47,9 @@ var allId=new Array('beh1csp001',
                     'beh1csp017');
 
 var installedId = new Array();
+var resultXML, tests;
+var MOUDLE_NAME = "CSP";
+var RESULT_FILE_NAME = "tct-behavior-child.csp.result.xml";
 
 $(document).delegate("#main", "pageinit", function() {
     $("#wgtClean").bind("vclick", function() {
@@ -113,26 +116,162 @@ function goToApp(path) {
     window.open(path);
 }
 
+function recordResultToXML(test_name, result){
+    tests.each(
+        function() {
+            if($(this).attr('id') == test_name){
+                $(this).attr('result', result);
+            }
+        }
+    );
+}
+
 function initTests() {
+    loadTests();
     window.addEventListener('message', function(e) {
         console.log(e.data);
         var jsonData = eval("(" + e.data + ")");
         if(jsonData.length > 0){
-            if(jsonData[0].testname != "" && jsonData[0].result == "PASS"){
-                $("#"+jsonData[0].testname).find("h2").css("color","green");
-            } else {
-                $("#"+jsonData[0].testname).find("h2").css("color","red");
+            if(jsonData[0].testname != "" && jsonData[0].result != ""){
+                recordResultToXML(jsonData[0].testname, jsonData[0].result);
+                updateAppDecoration();
+                exportTmpResult();
             }
         }
     }, false);
 }
 
-function backAppsHome() {
-    if (confirm("Back to main menu will lost the sub result in this page, continue?")) {
-        window.close();
+function exportTmpResult() {
+    writeFile(RESULT_FILE_NAME, (new XMLSerializer()).serializeToString(resultXML), false);
+}
+
+function writeFile(filename, content, need_exit) {
+    successCallback = function(fs) {
+        fs.write(content);
+        fs.close();
+        if (need_exit)
+            exitTest();
+    };
+
+
+    onsuccess = function(dir) {
+        dir.deleteFile(dir.fullPath + "/" + filename);
+
+        file = dir.createFile(filename);
+        file.openStream("rw", successCallback, onerror, "UTF-8");
+    };
+
+    onerror = function(error) {
+        alert("Export result fail: " + error);
+    };
+
+    try {
+        tizen.filesystem.resolve('documents', onsuccess, onerror, "rw");
+    } catch (err) {
+        alert("Write file fail: " + err.message);
     }
 }
 
+function loadTests() {
+    $.ajax({
+        async : false,
+        type : "GET",
+        url : "../../subtestresult.xml",
+        dataType : "xml",
+        success : function(xml){
+            resultXML = xml;
+            $(xml).find("set").each(
+                function(){
+                    if($(this).attr("name") == MOUDLE_NAME){
+                        tests = $(this).find("testcase");
+                    }
+                }
+            );
+            loadTmpResult();
+        }
+    });
+}
+
+function loadTmpResult(){
+    successCallback = function(files) {
+        for(var i = 0; i < files.length; i++){
+            if (files[i].name == RESULT_FILE_NAME) {
+                if (confirm("Continue last test?")) {
+                    files[i].readAsText(
+                        function(xml){
+                            _mergeResult($(xml).find("set"));
+                            updateAppDecoration();
+                        }, function(err){
+                            console.log("read tmp result error: " + err.message);
+                        }, "UTF-8"
+                    );
+                    return;
+                }
+                else break;
+            }
+        }
+    };
+
+    onsuccess = function(dir) {
+        dir.listFiles(successCallback, onerror);
+    };
+
+    onerror = function(error) {
+        console.log(error);
+        updateAppDecoration();
+    };
+
+    try {
+        tizen.filesystem.resolve('documents', onsuccess, onerror, "rw");
+    } catch (err) {
+        console.log("Load tmp result fail: " + err.message);
+        updateAppDecoration();
+    }
+}
+
+function _mergeResult(tmpResult) {
+    tests.each(
+        function(index, item) {
+            tmpResult.each(
+                function(order1, tmpItem1){
+                    if($(tmpItem1).attr("name") == MOUDLE_NAME){
+                        $(tmpItem1).find("testcase").each(
+                            function(order, tmpItem){
+                                if ($(item).attr("id") === $(tmpItem).attr("id")) {
+                                    $(item).attr("result", $(tmpItem).attr("result"));
+                                }
+                            }
+                        );
+                    }
+                }
+            );
+        }
+    );
+}
+
+function updateAppDecoration() {
+    $(resultXML).find("set").each(
+        function(){
+            if($(this).attr("name") == MOUDLE_NAME){
+                $(this).find("testcase").each(
+                    function() {
+                        if($(this).attr("result") == "PASS"){
+                            $("#"+$(this).attr("id")).find("h2").css("color","green");
+                        }else if($(this).attr("result") == "FAIL"){
+                            $("#"+$(this).attr("id")).find("h2").css("color","red");
+                        }
+                    }
+                );
+            }
+        }
+    );
+    $("#cspList").listview( "refresh" );
+}
+
+function backAppsHome() {
+    window.close();
+}
+
 function successBackAppsHome() {
     window.close();
 }
index f55695014f7dfc5d825580edb1d6b162b068b082..a1c1c96edeabcc2f7e2687db30e829d89fa46497 100644 (file)
@@ -46,6 +46,9 @@ var allId=new Array('wrt2apc001',
                     'wrt2see029');
 
 var installedId = new Array();
+var resultXML, tests;
+var MOUDLE_NAME = "ConfigurationExtension";
+var RESULT_FILE_NAME = "tct-behavior-child.ce.result.xml";
 
 $(document).delegate("#main", "pageinit", function() {
     $("#wgtClean").bind("vclick", function() {
@@ -112,26 +115,162 @@ function goToApp(path) {
     window.open(path);
 }
 
+function recordResultToXML(test_name, result){
+    tests.each(
+        function() {
+            if($(this).attr('id') == test_name){
+                $(this).attr('result', result);
+            }
+        }
+    );
+}
+
 function initTests() {
+    loadTests();
     window.addEventListener('message', function(e) {
         console.log(e.data);
         var jsonData = eval("(" + e.data + ")");
         if(jsonData.length > 0){
-            if(jsonData[0].testname != "" && jsonData[0].result == "PASS"){
-                $("#"+jsonData[0].testname).find("h2").css("color","green");
-            } else {
-                $("#"+jsonData[0].testname).find("h2").css("color","red");
+            if(jsonData[0].testname != "" && jsonData[0].result != ""){
+                recordResultToXML(jsonData[0].testname, jsonData[0].result);
+                updateAppDecoration();
+                exportTmpResult();
             }
         }
     }, false);
 }
 
-function backAppsHome() {
-    if (confirm("Back to main menu will lost the sub result in this page, continue?")) {
-        window.close();
+function exportTmpResult() {
+    writeFile(RESULT_FILE_NAME, (new XMLSerializer()).serializeToString(resultXML), false);
+}
+
+function writeFile(filename, content, need_exit) {
+    successCallback = function(fs) {
+        fs.write(content);
+        fs.close();
+        if (need_exit)
+            exitTest();
+    };
+
+
+    onsuccess = function(dir) {
+        dir.deleteFile(dir.fullPath + "/" + filename);
+
+        file = dir.createFile(filename);
+        file.openStream("rw", successCallback, onerror, "UTF-8");
+    };
+
+    onerror = function(error) {
+        alert("Export result fail: " + error);
+    };
+
+    try {
+        tizen.filesystem.resolve('documents', onsuccess, onerror, "rw");
+    } catch (err) {
+        alert("Write file fail: " + err.message);
     }
 }
 
+function loadTests() {
+    $.ajax({
+        async : false,
+        type : "GET",
+        url : "../../subtestresult.xml",
+        dataType : "xml",
+        success : function(xml){
+            resultXML = xml;
+            $(xml).find("set").each(
+                function(){
+                    if($(this).attr("name") == MOUDLE_NAME){
+                        tests = $(this).find("testcase");
+                    }
+                }
+            );
+            loadTmpResult();
+        }
+    });
+}
+
+function loadTmpResult(){
+    successCallback = function(files) {
+        for(var i = 0; i < files.length; i++){
+            if (files[i].name == RESULT_FILE_NAME) {
+                if (confirm("Continue last test?")) {
+                    files[i].readAsText(
+                        function(xml){
+                            _mergeResult($(xml).find("set"));
+                            updateAppDecoration();
+                        }, function(err){
+                            console.log("read tmp result error: " + err.message);
+                        }, "UTF-8"
+                    );
+                    return;
+                }
+                else break;
+            }
+        }
+    };
+
+    onsuccess = function(dir) {
+        dir.listFiles(successCallback, onerror);
+    };
+
+    onerror = function(error) {
+        console.log(error);
+        updateAppDecoration();
+    };
+
+    try {
+        tizen.filesystem.resolve('documents', onsuccess, onerror, "rw");
+    } catch (err) {
+        console.log("Load tmp result fail: " + err.message);
+        updateAppDecoration();
+    }
+}
+
+function _mergeResult(tmpResult) {
+    tests.each(
+        function(index, item) {
+            tmpResult.each(
+                function(order1, tmpItem1){
+                    if($(tmpItem1).attr("name") == MOUDLE_NAME){
+                        $(tmpItem1).find("testcase").each(
+                            function(order, tmpItem){
+                                if ($(item).attr("id") === $(tmpItem).attr("id")) {
+                                    $(item).attr("result", $(tmpItem).attr("result"));
+                                }
+                            }
+                        );
+                    }
+                }
+            );
+        }
+    );
+}
+
+function updateAppDecoration() {
+    $(resultXML).find("set").each(
+        function(){
+            if($(this).attr("name") == MOUDLE_NAME){
+                $(this).find("testcase").each(
+                    function() {
+                        if($(this).attr("result") == "PASS"){
+                            $("#"+$(this).attr("id")).find("h2").css("color","green");
+                        }else if($(this).attr("result") == "FAIL"){
+                            $("#"+$(this).attr("id")).find("h2").css("color","red");
+                        }
+                    }
+                );
+            }
+        }
+    );
+    $("#cspList").listview( "refresh" );
+}
+
+function backAppsHome() {
+    window.close();
+}
+
 function successBackAppsHome() {
     window.close();
 }
index 43f6a21dbe62ffdb3cd84b5a7a00e62ee8c79c90..b8ca2780cf353938fb561e94990f28b227f6eedd 100644 (file)
@@ -37,6 +37,9 @@ var allId=new Array('wrt1wvt006',
                     'ZkMSjQuYt8');
 
 var installedId = new Array();
+var resultXML, tests;
+var MOUDLE_NAME = "PackageManagement";
+var RESULT_FILE_NAME = "tct-behavior-child.pm.result.xml";
 
 $(document).delegate("#main", "pageinit", function() {
     $("#wgtClean").bind("vclick", function() {
@@ -107,26 +110,162 @@ function goToApp(path) {
     window.open(path);
 }
 
+function recordResultToXML(test_name, result){
+    tests.each(
+        function() {
+            if($(this).attr('id') == test_name){
+                $(this).attr('result', result);
+            }
+        }
+    );
+}
+
 function initTests() {
+    loadTests();
     window.addEventListener('message', function(e) {
         console.log(e.data);
         var jsonData = eval("(" + e.data + ")");
         if(jsonData.length > 0){
-            if(jsonData[0].testname != "" && jsonData[0].result == "PASS"){
-                $("#"+jsonData[0].testname).find("h2").css("color","green");
-            } else {
-                $("#"+jsonData[0].testname).find("h2").css("color","red");
+            if(jsonData[0].testname != "" && jsonData[0].result != ""){
+                recordResultToXML(jsonData[0].testname, jsonData[0].result);
+                updateAppDecoration();
+                exportTmpResult();
             }
         }
     }, false);
 }
 
-function backAppsHome() {
-    if (confirm("Back to main menu will lost the sub result in this page, continue?")) {
-        window.close();
+function exportTmpResult() {
+    writeFile(RESULT_FILE_NAME, (new XMLSerializer()).serializeToString(resultXML), false);
+}
+
+function writeFile(filename, content, need_exit) {
+    successCallback = function(fs) {
+        fs.write(content);
+        fs.close();
+        if (need_exit)
+            exitTest();
+    };
+
+
+    onsuccess = function(dir) {
+        dir.deleteFile(dir.fullPath + "/" + filename);
+
+        file = dir.createFile(filename);
+        file.openStream("rw", successCallback, onerror, "UTF-8");
+    };
+
+    onerror = function(error) {
+        alert("Export result fail: " + error);
+    };
+
+    try {
+        tizen.filesystem.resolve('documents', onsuccess, onerror, "rw");
+    } catch (err) {
+        alert("Write file fail: " + err.message);
     }
 }
 
+function loadTests() {
+    $.ajax({
+        async : false,
+        type : "GET",
+        url : "../../subtestresult.xml",
+        dataType : "xml",
+        success : function(xml){
+            resultXML = xml;
+            $(xml).find("set").each(
+                function(){
+                    if($(this).attr("name") == MOUDLE_NAME){
+                        tests = $(this).find("testcase");
+                    }
+                }
+            );
+            loadTmpResult();
+        }
+    });
+}
+
+function loadTmpResult(){
+    successCallback = function(files) {
+        for(var i = 0; i < files.length; i++){
+            if (files[i].name == RESULT_FILE_NAME) {
+                if (confirm("Continue last test?")) {
+                    files[i].readAsText(
+                        function(xml){
+                            _mergeResult($(xml).find("set"));
+                            updateAppDecoration();
+                        }, function(err){
+                            console.log("read tmp result error: " + err.message);
+                        }, "UTF-8"
+                    );
+                    return;
+                }
+                else break;
+            }
+        }
+    };
+
+    onsuccess = function(dir) {
+        dir.listFiles(successCallback, onerror);
+    };
+
+    onerror = function(error) {
+        console.log(error);
+        updateAppDecoration();
+    };
+
+    try {
+        tizen.filesystem.resolve('documents', onsuccess, onerror, "rw");
+    } catch (err) {
+        console.log("Load tmp result fail: " + err.message);
+        updateAppDecoration();
+    }
+}
+
+function _mergeResult(tmpResult) {
+    tests.each(
+        function(index, item) {
+            tmpResult.each(
+                function(order1, tmpItem1){
+                    if($(tmpItem1).attr("name") == MOUDLE_NAME){
+                        $(tmpItem1).find("testcase").each(
+                            function(order, tmpItem){
+                                if ($(item).attr("id") === $(tmpItem).attr("id")) {
+                                    $(item).attr("result", $(tmpItem).attr("result"));
+                                }
+                            }
+                        );
+                    }
+                }
+            );
+        }
+    );
+}
+
+function updateAppDecoration() {
+    $(resultXML).find("set").each(
+        function(){
+            if($(this).attr("name") == MOUDLE_NAME){
+                $(this).find("testcase").each(
+                    function() {
+                        if($(this).attr("result") == "PASS"){
+                            $("#"+$(this).attr("id")).find("h2").css("color","green");
+                        }else if($(this).attr("result") == "FAIL"){
+                            $("#"+$(this).attr("id")).find("h2").css("color","red");
+                        }
+                    }
+                );
+            }
+        }
+    );
+    $("#cspList").listview( "refresh" );
+}
+
+function backAppsHome() {
+    window.close();
+}
+
 function successBackAppsHome() {
     window.close();
 }
index baea19e2d40590ec3d319b27083e2b28ba6f8ef6..4538615d5487e5353b8036494edb6cdd77ece5c3 100644 (file)
@@ -32,6 +32,9 @@ var allId=new Array('wrttest003',
                     'wrttest001');
 
 var installedId = new Array();
+var resultXML, tests;
+var MOUDLE_NAME = "Stability";
+var RESULT_FILE_NAME = "tct-behavior-child.sta.result.xml";
 
 $(document).delegate("#main", "pageinit", function() {
     $("#wgtClean").bind("vclick", function() {
@@ -98,26 +101,162 @@ function goToApp(path) {
     window.open(path);
 }
 
+function recordResultToXML(test_name, result){
+    tests.each(
+        function() {
+            if($(this).attr('id') == test_name){
+                $(this).attr('result', result);
+            }
+        }
+    );
+}
+
 function initTests() {
+    loadTests();
     window.addEventListener('message', function(e) {
         console.log(e.data);
         var jsonData = eval("(" + e.data + ")");
         if(jsonData.length > 0){
-            if(jsonData[0].testname != "" && jsonData[0].result == "PASS"){
-                $("#"+jsonData[0].testname).find("h2").css("color","green");
-            } else {
-                $("#"+jsonData[0].testname).find("h2").css("color","red");
+            if(jsonData[0].testname != "" && jsonData[0].result != ""){
+                recordResultToXML(jsonData[0].testname, jsonData[0].result);
+                updateAppDecoration();
+                exportTmpResult();
             }
         }
     }, false);
 }
 
-function backAppsHome() {
-    if (confirm("Back to main menu will lost the sub result in this page, continue?")) {
-        window.close();
+function exportTmpResult() {
+    writeFile(RESULT_FILE_NAME, (new XMLSerializer()).serializeToString(resultXML), false);
+}
+
+function writeFile(filename, content, need_exit) {
+    successCallback = function(fs) {
+        fs.write(content);
+        fs.close();
+        if (need_exit)
+            exitTest();
+    };
+
+
+    onsuccess = function(dir) {
+        dir.deleteFile(dir.fullPath + "/" + filename);
+
+        file = dir.createFile(filename);
+        file.openStream("rw", successCallback, onerror, "UTF-8");
+    };
+
+    onerror = function(error) {
+        alert("Export result fail: " + error);
+    };
+
+    try {
+        tizen.filesystem.resolve('documents', onsuccess, onerror, "rw");
+    } catch (err) {
+        alert("Write file fail: " + err.message);
     }
 }
 
+function loadTests() {
+    $.ajax({
+        async : false,
+        type : "GET",
+        url : "../../subtestresult.xml",
+        dataType : "xml",
+        success : function(xml){
+            resultXML = xml;
+            $(xml).find("set").each(
+                function(){
+                    if($(this).attr("name") == MOUDLE_NAME){
+                        tests = $(this).find("testcase");
+                    }
+                }
+            );
+            loadTmpResult();
+        }
+    });
+}
+
+function loadTmpResult(){
+    successCallback = function(files) {
+        for(var i = 0; i < files.length; i++){
+            if (files[i].name == RESULT_FILE_NAME) {
+                if (confirm("Continue last test?")) {
+                    files[i].readAsText(
+                        function(xml){
+                            _mergeResult($(xml).find("set"));
+                            updateAppDecoration();
+                        }, function(err){
+                            console.log("read tmp result error: " + err.message);
+                        }, "UTF-8"
+                    );
+                    return;
+                }
+                else break;
+            }
+        }
+    };
+
+    onsuccess = function(dir) {
+        dir.listFiles(successCallback, onerror);
+    };
+
+    onerror = function(error) {
+        console.log(error);
+        updateAppDecoration();
+    };
+
+    try {
+        tizen.filesystem.resolve('documents', onsuccess, onerror, "rw");
+    } catch (err) {
+        console.log("Load tmp result fail: " + err.message);
+        updateAppDecoration();
+    }
+}
+
+function _mergeResult(tmpResult) {
+    tests.each(
+        function(index, item) {
+            tmpResult.each(
+                function(order1, tmpItem1){
+                    if($(tmpItem1).attr("name") == MOUDLE_NAME){
+                        $(tmpItem1).find("testcase").each(
+                            function(order, tmpItem){
+                                if ($(item).attr("id") === $(tmpItem).attr("id")) {
+                                    $(item).attr("result", $(tmpItem).attr("result"));
+                                }
+                            }
+                        );
+                    }
+                }
+            );
+        }
+    );
+}
+
+function updateAppDecoration() {
+    $(resultXML).find("set").each(
+        function(){
+            if($(this).attr("name") == MOUDLE_NAME){
+                $(this).find("testcase").each(
+                    function() {
+                        if($(this).attr("result") == "PASS"){
+                            $("#"+$(this).attr("id")).find("h2").css("color","green");
+                        }else if($(this).attr("result") == "FAIL"){
+                            $("#"+$(this).attr("id")).find("h2").css("color","red");
+                        }
+                    }
+                );
+            }
+        }
+    );
+    $("#cspList").listview( "refresh" );
+}
+
+function backAppsHome() {
+    window.close();
+}
+
 function successBackAppsHome() {
     window.close();
 }
index aeb018bde4111d210099df2efd35faf3c933a3cb..cda8b0e961cbe9d0b75cb2bf9c3c459a01f5988f 100644 (file)
@@ -41,6 +41,9 @@ var allId=new Array('wrt3lue021',
                     'wrt5pec119');
 
 var installedId = new Array();
+var resultXML, tests;
+var MOUDLE_NAME = "WRTSupport";
+var RESULT_FILE_NAME = "tct-behavior-child.wrts.result.xml";
 
 $(document).delegate("#main", "pageinit", function() {
     $("#wgtClean").bind("vclick", function() {
@@ -107,26 +110,162 @@ function goToApp(path) {
     window.open(path);
 }
 
+function recordResultToXML(test_name, result){
+    tests.each(
+        function() {
+            if($(this).attr('id') == test_name){
+                $(this).attr('result', result);
+            }
+        }
+    );
+}
+
 function initTests() {
+    loadTests();
     window.addEventListener('message', function(e) {
         console.log(e.data);
         var jsonData = eval("(" + e.data + ")");
         if(jsonData.length > 0){
-            if(jsonData[0].testname != "" && jsonData[0].result == "PASS"){
-                $("#"+jsonData[0].testname).find("h2").css("color","green");
-            } else {
-                $("#"+jsonData[0].testname).find("h2").css("color","red");
+            if(jsonData[0].testname != "" && jsonData[0].result != ""){
+                recordResultToXML(jsonData[0].testname, jsonData[0].result);
+                updateAppDecoration();
+                exportTmpResult();
             }
         }
     }, false);
 }
 
-function backAppsHome() {
-    if (confirm("Back to main menu will lost the sub result in this page, continue?")) {
-        window.close();
+function exportTmpResult() {
+    writeFile(RESULT_FILE_NAME, (new XMLSerializer()).serializeToString(resultXML), false);
+}
+
+function writeFile(filename, content, need_exit) {
+    successCallback = function(fs) {
+        fs.write(content);
+        fs.close();
+        if (need_exit)
+            exitTest();
+    };
+
+
+    onsuccess = function(dir) {
+        dir.deleteFile(dir.fullPath + "/" + filename);
+
+        file = dir.createFile(filename);
+        file.openStream("rw", successCallback, onerror, "UTF-8");
+    };
+
+    onerror = function(error) {
+        alert("Export result fail: " + error);
+    };
+
+    try {
+        tizen.filesystem.resolve('documents', onsuccess, onerror, "rw");
+    } catch (err) {
+        alert("Write file fail: " + err.message);
     }
 }
 
+function loadTests() {
+    $.ajax({
+        async : false,
+        type : "GET",
+        url : "../../subtestresult.xml",
+        dataType : "xml",
+        success : function(xml){
+            resultXML = xml;
+            $(xml).find("set").each(
+                function(){
+                    if($(this).attr("name") == MOUDLE_NAME){
+                        tests = $(this).find("testcase");
+                    }
+                }
+            );
+            loadTmpResult();
+        }
+    });
+}
+
+function loadTmpResult(){
+    successCallback = function(files) {
+        for(var i = 0; i < files.length; i++){
+            if (files[i].name == RESULT_FILE_NAME) {
+                if (confirm("Continue last test?")) {
+                    files[i].readAsText(
+                        function(xml){
+                            _mergeResult($(xml).find("set"));
+                            updateAppDecoration();
+                        }, function(err){
+                            console.log("read tmp result error: " + err.message);
+                        }, "UTF-8"
+                    );
+                    return;
+                }
+                else break;
+            }
+        }
+    };
+
+    onsuccess = function(dir) {
+        dir.listFiles(successCallback, onerror);
+    };
+
+    onerror = function(error) {
+        console.log(error);
+        updateAppDecoration();
+    };
+
+    try {
+        tizen.filesystem.resolve('documents', onsuccess, onerror, "rw");
+    } catch (err) {
+        console.log("Load tmp result fail: " + err.message);
+        updateAppDecoration();
+    }
+}
+
+function _mergeResult(tmpResult) {
+    tests.each(
+        function(index, item) {
+            tmpResult.each(
+                function(order1, tmpItem1){
+                    if($(tmpItem1).attr("name") == MOUDLE_NAME){
+                        $(tmpItem1).find("testcase").each(
+                            function(order, tmpItem){
+                                if ($(item).attr("id") === $(tmpItem).attr("id")) {
+                                    $(item).attr("result", $(tmpItem).attr("result"));
+                                }
+                            }
+                        );
+                    }
+                }
+            );
+        }
+    );
+}
+
+function updateAppDecoration() {
+    $(resultXML).find("set").each(
+        function(){
+            if($(this).attr("name") == MOUDLE_NAME){
+                $(this).find("testcase").each(
+                    function() {
+                        if($(this).attr("result") == "PASS"){
+                            $("#"+$(this).attr("id")).find("h2").css("color","green");
+                        }else if($(this).attr("result") == "FAIL"){
+                            $("#"+$(this).attr("id")).find("h2").css("color","red");
+                        }
+                    }
+                );
+            }
+        }
+    );
+    $("#cspList").listview( "refresh" );
+}
+
+function backAppsHome() {
+    window.close();
+}
+
 function successBackAppsHome() {
     window.close();
 }
index d18cb1935d8319ab5243c628076e3d8b6590d750..ff5d26f0f82140421a34fae919c524034bcc8440 100644 (file)
@@ -34,6 +34,9 @@ var allId=new Array('wrt4ars001',
                     'wrt4vmf013');
 
 var installedId = new Array();
+var resultXML, tests;
+var MOUDLE_NAME = "WRTUI";
+var RESULT_FILE_NAME = "tct-behavior-child.wrtui.result.xml";
 
 $(document).delegate("#main", "pageinit", function() {
     $("#wgtClean").bind("vclick", function() {
@@ -100,26 +103,162 @@ function goToApp(path) {
     window.open(path);
 }
 
+function recordResultToXML(test_name, result){
+    tests.each(
+        function() {
+            if($(this).attr('id') == test_name){
+                $(this).attr('result', result);
+            }
+        }
+    );
+}
+
 function initTests() {
+    loadTests();
     window.addEventListener('message', function(e) {
         console.log(e.data);
         var jsonData = eval("(" + e.data + ")");
         if(jsonData.length > 0){
-            if(jsonData[0].testname != "" && jsonData[0].result == "PASS"){
-                $("#"+jsonData[0].testname).find("h2").css("color","green");
-            } else {
-                $("#"+jsonData[0].testname).find("h2").css("color","red");
+            if(jsonData[0].testname != "" && jsonData[0].result != ""){
+                recordResultToXML(jsonData[0].testname, jsonData[0].result);
+                updateAppDecoration();
+                exportTmpResult();
             }
         }
     }, false);
 }
 
-function backAppsHome() {
-    if (confirm("Back to main menu will lost the sub result in this page, continue?")) {
-        window.close();
+function exportTmpResult() {
+    writeFile(RESULT_FILE_NAME, (new XMLSerializer()).serializeToString(resultXML), false);
+}
+
+function writeFile(filename, content, need_exit) {
+    successCallback = function(fs) {
+        fs.write(content);
+        fs.close();
+        if (need_exit)
+            exitTest();
+    };
+
+
+    onsuccess = function(dir) {
+        dir.deleteFile(dir.fullPath + "/" + filename);
+
+        file = dir.createFile(filename);
+        file.openStream("rw", successCallback, onerror, "UTF-8");
+    };
+
+    onerror = function(error) {
+        alert("Export result fail: " + error);
+    };
+
+    try {
+        tizen.filesystem.resolve('documents', onsuccess, onerror, "rw");
+    } catch (err) {
+        alert("Write file fail: " + err.message);
     }
 }
 
+function loadTests() {
+    $.ajax({
+        async : false,
+        type : "GET",
+        url : "../../subtestresult.xml",
+        dataType : "xml",
+        success : function(xml){
+            resultXML = xml;
+            $(xml).find("set").each(
+                function(){
+                    if($(this).attr("name") == MOUDLE_NAME){
+                        tests = $(this).find("testcase");
+                    }
+                }
+            );
+            loadTmpResult();
+        }
+    });
+}
+
+function loadTmpResult(){
+    successCallback = function(files) {
+        for(var i = 0; i < files.length; i++){
+            if (files[i].name == RESULT_FILE_NAME) {
+                if (confirm("Continue last test?")) {
+                    files[i].readAsText(
+                        function(xml){
+                            _mergeResult($(xml).find("set"));
+                            updateAppDecoration();
+                        }, function(err){
+                            console.log("read tmp result error: " + err.message);
+                        }, "UTF-8"
+                    );
+                    return;
+                }
+                else break;
+            }
+        }
+    };
+
+    onsuccess = function(dir) {
+        dir.listFiles(successCallback, onerror);
+    };
+
+    onerror = function(error) {
+        console.log(error);
+        updateAppDecoration();
+    };
+
+    try {
+        tizen.filesystem.resolve('documents', onsuccess, onerror, "rw");
+    } catch (err) {
+        console.log("Load tmp result fail: " + err.message);
+        updateAppDecoration();
+    }
+}
+
+function _mergeResult(tmpResult) {
+    tests.each(
+        function(index, item) {
+            tmpResult.each(
+                function(order1, tmpItem1){
+                    if($(tmpItem1).attr("name") == MOUDLE_NAME){
+                        $(tmpItem1).find("testcase").each(
+                            function(order, tmpItem){
+                                if ($(item).attr("id") === $(tmpItem).attr("id")) {
+                                    $(item).attr("result", $(tmpItem).attr("result"));
+                                }
+                            }
+                        );
+                    }
+                }
+            );
+        }
+    );
+}
+
+function updateAppDecoration() {
+    $(resultXML).find("set").each(
+        function(){
+            if($(this).attr("name") == MOUDLE_NAME){
+                $(this).find("testcase").each(
+                    function() {
+                        if($(this).attr("result") == "PASS"){
+                            $("#"+$(this).attr("id")).find("h2").css("color","green");
+                        }else if($(this).attr("result") == "FAIL"){
+                            $("#"+$(this).attr("id")).find("h2").css("color","red");
+                        }
+                    }
+                );
+            }
+        }
+    );
+    $("#cspList").listview( "refresh" );
+}
+
+function backAppsHome() {
+    window.close();
+}
+
 function successBackAppsHome() {
     window.close();
 }