From: yuhanx.xu Date: Mon, 9 Sep 2013 06:10:29 +0000 (+0800) Subject: Fix TTS-1854 by adding code to save the children TCs result X-Git-Tag: 2.2.1_release~59 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3b27ec3e546396639ce49d5a85daebe09fa2556b;p=test%2Ftct%2Fweb%2Fbehavior.git Fix TTS-1854 by adding code to save the children TCs result Signed-off-by: yuhanx.xu --- diff --git a/packaging/behavior.spec b/packaging/behavior.spec index 116666e..e80be80 100644 --- a/packaging/behavior.spec +++ b/packaging/behavior.spec @@ -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 index 0000000..dcd74c4 --- /dev/null +++ b/subtestresult.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tct-behavior-tests.spec b/tct-behavior-tests.spec index 1bc8765..6eb70d1 100644 --- a/tct-behavior-tests.spec +++ b/tct-behavior-tests.spec @@ -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 diff --git a/tests/CSP/js/main.js b/tests/CSP/js/main.js index 2eda1d6..b0621d8 100644 --- a/tests/CSP/js/main.js +++ b/tests/CSP/js/main.js @@ -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(); } diff --git a/tests/ConfigurationExtension/js/main.js b/tests/ConfigurationExtension/js/main.js index f556950..a1c1c96 100644 --- a/tests/ConfigurationExtension/js/main.js +++ b/tests/ConfigurationExtension/js/main.js @@ -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(); } diff --git a/tests/PackageManagement/js/main.js b/tests/PackageManagement/js/main.js index 43f6a21..b8ca278 100644 --- a/tests/PackageManagement/js/main.js +++ b/tests/PackageManagement/js/main.js @@ -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(); } diff --git a/tests/Stability/js/main.js b/tests/Stability/js/main.js index baea19e..4538615 100644 --- a/tests/Stability/js/main.js +++ b/tests/Stability/js/main.js @@ -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(); } diff --git a/tests/WRTSupport/js/main.js b/tests/WRTSupport/js/main.js index aeb018b..cda8b0e 100644 --- a/tests/WRTSupport/js/main.js +++ b/tests/WRTSupport/js/main.js @@ -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(); } diff --git a/tests/WRTUI/js/main.js b/tests/WRTUI/js/main.js index d18cb19..ff5d26f 100644 --- a/tests/WRTUI/js/main.js +++ b/tests/WRTUI/js/main.js @@ -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(); }