UnitTest:JQM Unit TC helper has been added,TCs have been modified
authorhjnim.kim <hjnim.kim@samsung.com>
Wed, 28 Nov 2012 06:10:32 +0000 (15:10 +0900)
committerMinkyu Kang <mk7.kang@samsung.com>
Fri, 4 Jan 2013 11:35:13 +0000 (20:35 +0900)
JQM Tc helper and log module has been added.
If you want to use this module, navigate /web-ui-fw/tests/jqm-helper/ in emulator, target device.

Change-Id: I459970d152d445954bb6e0b701d14abe8aea95ab

32 files changed:
libs/js/jquery-mobile-1.2.0/tests/unit/button-markup/index.html
libs/js/jquery-mobile-1.2.0/tests/unit/button/index.html
libs/js/jquery-mobile-1.2.0/tests/unit/checkboxradio/index.html
libs/js/jquery-mobile-1.2.0/tests/unit/collapsible/index.html
libs/js/jquery-mobile-1.2.0/tests/unit/controlgroup/index.html
libs/js/jquery-mobile-1.2.0/tests/unit/core/index.html
libs/js/jquery-mobile-1.2.0/tests/unit/degrade-inputs/index.html
libs/js/jquery-mobile-1.2.0/tests/unit/dialog/index.html
libs/js/jquery-mobile-1.2.0/tests/unit/field-contain/index.html
libs/js/jquery-mobile-1.2.0/tests/unit/fixed-toolbar/index.html
libs/js/jquery-mobile-1.2.0/tests/unit/init/index.html
libs/js/jquery-mobile-1.2.0/tests/unit/kitchensink/index.html
libs/js/jquery-mobile-1.2.0/tests/unit/listview/index.html
libs/js/jquery-mobile-1.2.0/tests/unit/loader/index.html
libs/js/jquery-mobile-1.2.0/tests/unit/media/index.html
libs/js/jquery-mobile-1.2.0/tests/unit/navbar/index.html
libs/js/jquery-mobile-1.2.0/tests/unit/navigation/index.html
libs/js/jquery-mobile-1.2.0/tests/unit/page-sections/index.html
libs/js/jquery-mobile-1.2.0/tests/unit/page/index.html
libs/js/jquery-mobile-1.2.0/tests/unit/popup/index.html
libs/js/jquery-mobile-1.2.0/tests/unit/select/index.html
libs/js/jquery-mobile-1.2.0/tests/unit/slider/index.html
libs/js/jquery-mobile-1.2.0/tests/unit/support/index.html
libs/js/jquery-mobile-1.2.0/tests/unit/textinput/index.html
libs/js/jquery-mobile-1.2.0/tests/unit/widget/index.html
libs/js/jquery-mobile-1.2.0/tests/unit/zoom/index.html
tests/jqm-tchelper/index.html [new file with mode: 0644]
tests/jqm-tchelper/jquery.browser.js [new file with mode: 0644]
tests/jqm-tchelper/log.php [new file with mode: 0644]
tests/jqm-tchelper/result.php [new file with mode: 0644]
tests/jqm-tchelper/tizen.testHelper.js [new file with mode: 0644]
tests/unit-tests/runner.js

index ec27844..a86bb5f 100644 (file)
@@ -26,7 +26,7 @@
 
        <link rel="stylesheet"  href="../../../css/themes/default/jquery.mobile.css" />
        <link rel="stylesheet" href="../../../external/qunit.css"/>
-
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
        <script src="../swarminject.js"></script>
 </head>
 <body>
index b0ebe4e..ddacb5b 100644 (file)
@@ -14,6 +14,7 @@
        <link rel="stylesheet"  href="../../../css/themes/default/jquery.mobile.css"/>
        <link rel="stylesheet" href="../../../external/qunit.css"/>
        <script src="../../../external/qunit.js"></script>
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
        <script>
                $.testHelper.asyncLoad([
                        [
index 7ad8334..527c28a 100644 (file)
@@ -26,6 +26,7 @@
        <link rel="stylesheet" href="../../../external/qunit.css"/>
 
        <script src="../swarminject.js"></script>
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
 </head>
 <body>
 
index 1492ded..999b99a 100644 (file)
@@ -27,6 +27,7 @@
        <link rel="stylesheet" href="../../../external/qunit.css"/>
 
        <script src="../swarminject.js"></script>
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
 </head>
 <body>
 
index 1b4b9c1..5d1c059 100644 (file)
@@ -27,6 +27,7 @@
        <link rel="stylesheet" href="../../../external/qunit.css"/>
 
        <script src="../swarminject.js"></script>
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
 </head>
 <body>
 
index 4cad369..2a37311 100644 (file)
@@ -26,6 +26,7 @@
        <link rel="stylesheet" href="../../../external/qunit.css"/>
 
        <script src="../swarminject.js"></script>
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
 </head>
 <body>
 
index a847f9a..4db1759 100644 (file)
@@ -21,6 +21,7 @@
        <link rel="stylesheet"  href="../../../css/themes/default/jquery.mobile.css"/>
        <link rel="stylesheet" href="../../../external/qunit.css"/>
        <script src="../swarminject.js"></script>
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
 </head>
 <body>
 
index d9ddd74..32a69f0 100644 (file)
@@ -34,6 +34,7 @@
        <link rel="stylesheet" href="../../../external/qunit.css"/>
 
        <script src="../swarminject.js"></script>
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
 </head>
 <body>
 
index 1be5157..645821c 100644 (file)
@@ -26,6 +26,7 @@
        <link rel="stylesheet" href="../../../external/qunit.css"/>
 
        <script src="../swarminject.js"></script>
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
 </head>
 <body>
 
index 0701d88..dcadb6f 100644 (file)
@@ -22,6 +22,7 @@
        <link rel="stylesheet" href="../../../external/qunit.css"/>
 
        <script src="../swarminject.js"></script>
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
 </head>
 <body>
 
index 6a6c07c..b36fff4 100644 (file)
@@ -17,6 +17,7 @@
        <link rel="stylesheet" href="../../../external/qunit.css"/>
 
        <script src="../swarminject.js"></script>
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
 </head>
 <body>
 
index 4307d42..11adf29 100644 (file)
@@ -23,6 +23,8 @@
        <link rel="stylesheet" href="../../../external/qunit.css"/>
 
        <script src="../swarminject.js"></script>
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
 </head>
 <body>
 
index 8d210fb..4e9d7c5 100644 (file)
@@ -34,6 +34,7 @@
        <link rel="stylesheet" href="../../../external/qunit.css"/>
 
        <script src="../swarminject.js"></script>
+
 </head>
 <body>
 
index 85a8d6f..fb96744 100644 (file)
@@ -14,6 +14,7 @@
        <link rel="stylesheet" href="../../../external/qunit.css"/>
 
        <script src="../swarminject.js"></script>
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
 </head>
 <body>
 
index 52c39a5..e722070 100644 (file)
@@ -25,6 +25,7 @@
        <link rel="stylesheet" href="../../../external/qunit.css"/>
 
        <script src="../swarminject.js"></script>
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
 </head>
 <body>
 
index 27fd46e..d7d4f55 100644 (file)
@@ -25,6 +25,7 @@
        <link rel="stylesheet"  href="../../../css/themes/default/jquery.mobile.css"/>
        <link rel="stylesheet" href="../../../external/qunit.css"/>
        <script src="../swarminject.js"></script>
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
 </head>
 <body>
 <h1 id="qunit-header">jQuery Mobile Navigation Test Suite</h1>
index 0c06073..f7131dc 100644 (file)
        <link rel="stylesheet"  href="../../../css/themes/default/jquery.mobile.css"/>
        <link rel="stylesheet" href="../../../external/qunit.css"/>
        <script src="../../../external/qunit.js"></script>
-
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
        <script type="text/javascript" src="navigation_paths.js"></script>
        <script src="../swarminject.js"></script>
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
 </head>
 <body>
 <div id="qunit"></div>
index d3850cf..34563cb 100644 (file)
@@ -28,6 +28,7 @@
        <link rel="stylesheet" href="../../../external/qunit.css"/>
 
        <script src="../swarminject.js"></script>
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
 </head>
 <body>
 
index ab85991..8565864 100644 (file)
@@ -25,6 +25,7 @@
        <link rel="stylesheet" href="../../../external/qunit.css"/>
 
        <script src="../swarminject.js"></script>
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
 </head>
 <body>
 
index ca573e7..4fc8147 100644 (file)
@@ -28,6 +28,7 @@
        </script>
 
        <script src="../swarminject.js"></script>
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
 </head>
 <body>
   <div id="qunit"></div>
index a288e2e..1365abf 100644 (file)
@@ -30,6 +30,7 @@
        <link rel="stylesheet" href="../../../external/qunit.css"/>
 
        <script src="../swarminject.js"></script>
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
 </head>
 <body>
 
index 9efff02..024289b 100644 (file)
@@ -27,6 +27,7 @@
        <link rel="stylesheet" href="../../../external/qunit.css"/>
 
        <script src="../swarminject.js"></script>
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
 </head>
 <body>
 
index dac7fb2..837cb3e 100644 (file)
@@ -26,6 +26,7 @@
        <link rel="stylesheet" href="../../../external/qunit.css"/>
 
        <script src="../swarminject.js"></script>
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
 </head>
 <body>
 
index 8d33a3c..f075974 100644 (file)
@@ -22,6 +22,7 @@
        <link rel="stylesheet" href="../../../external/qunit.css"/>
 
        <script src="../swarminject.js"></script>
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
 </head>
 <body>
 
index 70361f3..61ae215 100644 (file)
@@ -29,6 +29,7 @@
        <link rel="stylesheet" href="../../../external/qunit.css"/>
 
        <script src="../swarminject.js"></script>
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
 </head>
 <body>
 
index 84eb44a..d283ffb 100644 (file)
@@ -26,6 +26,7 @@
        <link rel="stylesheet" href="../../../external/qunit.css"/>
 
        <script src="../swarminject.js"></script>
+       <script src="../../../../../../tests/jqm-tchelper/tizen.testHelper.js"></script>
 </head>
 <body>
 
diff --git a/tests/jqm-tchelper/index.html b/tests/jqm-tchelper/index.html
new file mode 100644 (file)
index 0000000..339717c
--- /dev/null
@@ -0,0 +1,76 @@
+<html>
+       <head>
+               <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
+               <script type="text/javascript">
+                       function setCookie( cookieName, cookieValue, expireDate) {
+                                       var today = new Date();
+                                       today.setDate( today.getDate() + parseInt( expireDate ) );
+                                       document.cookie = cookieName + "=" + escape( cookieValue ) + "; path=/; expires=" + today.toGMTString() + ";";
+                       }
+                       function getCookie(name) {
+                               var cname = name + "=";
+                               var dc = document.cookie;
+                               if (dc.length > 0) {
+                                       begin = dc.indexOf(cname);
+                                       if (begin != -1) {
+                                               begin += cname.length;
+                                               end = dc.indexOf(";", begin);
+                                       if (end == -1) {
+                                               end = dc.length;
+                                       }
+                                       return unescape(dc.substring(begin, end));
+                                       }
+                               }
+                               return null;
+                       }
+                       var Save = function() {
+                               setCookie("OS",$("#OS").val() , 365 );
+                               setCookie("Browser",$("#Browser").val() , 365 );
+                               setCookie("Version",$("#Version").val() , 365 );
+                       }
+               </script>
+               <script type="text/javascript" src="../../libs/js/jquery-1.7.1.js"></script>
+               <script type="text/javascript" src="jquery.browser.js"></script>
+               <script type="text/javascript">
+                       $(document).ready( function() {
+                               if(getCookie("OS") != null ) {
+                                       $("#OS").val(getCookie("OS"));
+                               }else{
+                                       $("#OS").val(BrowserDetect.OS);
+                               }
+                               if(getCookie("Browser") != null){
+                                       $("#Browser").val(getCookie("Browser"));
+                               }else{
+                                       $("#Browser").val(BrowserDetect.browser);
+                               }
+                               if(getCookie("Version") != null){
+                                       $("#Version").val(getCookie("Version"));
+                               }else{ 
+                                       $("#Version").val(BrowserDetect.version);
+                               }
+                       });
+                       var startPage = function( jqm ) {
+                               if ( jqm ) {
+                                       location.href = "../../libs/js/jquery-mobile-1.2.0/tests/unit/button/";
+                               } else {
+                                       location.href = "../unit-tests/";
+                               }
+                       };
+                       var movePage = function ( module ) {
+                               location.href = "../../libs/js/jquery-mobile-1.2.0/tests/unit/" + module;
+                       };
+               </script>
+       </head>
+       <body>
+               <div style="font-size:30px;">
+                       <div style="color:black">OS : <input type="text" name="OS" id="OS" value=""  style="font-size:30px;width:60%;text-align:center"></div>
+                       <div style="color:black">Browser : <input type="text" name="Browser" id="Browser" style="font-size:30px;width:60%;text-align:center" value=""></div>
+                       <div style="color:black">Version : <input type="text" name="Version" id="Version" style="font-size:30px;width:60%;text-align:center" value=""></div>
+                       <input type="button" value="Save" style="font-size:30px"  onclick="Save()">
+               </div>
+               <input type="button" value="WebUIFW_Start" style="font-size:30px" onclick="startPage( false )">
+               <input type="button" value="JQMTC_Start" style="font-size:30px" onclick="startPage( true )">
+               <input type="button" value="JQMTC_Listview_Start" style="font-size:30px" onclick="movePage( 'listview' )">
+               <input type="button" value="JQMTC_Event_Start" style="font-size:30px" onclick="movePage( 'event' )">
+       </body>
+</html>        
\ No newline at end of file
diff --git a/tests/jqm-tchelper/jquery.browser.js b/tests/jqm-tchelper/jquery.browser.js
new file mode 100644 (file)
index 0000000..7da0faa
--- /dev/null
@@ -0,0 +1,117 @@
+var BrowserDetect = {
+       init: function () {
+               this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
+               this.version = this.searchVersion(navigator.userAgent)
+                       || this.searchVersion(navigator.appVersion)
+                       || "an unknown version";
+               this.OS = this.searchString(this.dataOS) || "an unknown OS";
+       },
+       searchString: function (data) {
+               for (var i=0;i<data.length;i++) {
+                       var dataString = data[i].string;
+                       var dataProp = data[i].prop;
+                       this.versionSearchString = data[i].versionSearch || data[i].identity;
+                       if (dataString) {
+                               if (dataString.indexOf(data[i].subString) != -1)
+                                       return data[i].identity;
+                       }
+                       else if (dataProp)
+                               return data[i].identity;
+               }
+       },
+       searchVersion: function (dataString) {
+               var index = dataString.indexOf(this.versionSearchString);
+               if (index == -1) return;
+               return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
+       },
+       dataBrowser: [
+               {
+                       string: navigator.userAgent,
+                       subString: "Chrome",
+                       identity: "Chrome"
+               },
+               {       string: navigator.userAgent,
+                       subString: "OmniWeb",
+                       versionSearch: "OmniWeb/",
+                       identity: "OmniWeb"
+               },
+               {
+                       string: navigator.vendor,
+                       subString: "Apple",
+                       identity: "Safari",
+                       versionSearch: "Version"
+               },
+               {
+                       prop: window.opera,
+                       identity: "Opera",
+                       versionSearch: "Version"
+               },
+               {
+                       string: navigator.vendor,
+                       subString: "iCab",
+                       identity: "iCab"
+               },
+               {
+                       string: navigator.vendor,
+                       subString: "KDE",
+                       identity: "Konqueror"
+               },
+               {
+                       string: navigator.userAgent,
+                       subString: "Firefox",
+                       identity: "Firefox"
+               },
+               {
+                       string: navigator.vendor,
+                       subString: "Camino",
+                       identity: "Camino"
+               },
+               {               // for newer Netscapes (6+)
+                       string: navigator.userAgent,
+                       subString: "Netscape",
+                       identity: "Netscape"
+               },
+               {
+                       string: navigator.userAgent,
+                       subString: "MSIE",
+                       identity: "Explorer",
+                       versionSearch: "MSIE"
+               },
+               {
+                       string: navigator.userAgent,
+                       subString: "Gecko",
+                       identity: "Mozilla",
+                       versionSearch: "rv"
+               },
+               {               // for older Netscapes (4-)
+                       string: navigator.userAgent,
+                       subString: "Mozilla",
+                       identity: "Netscape",
+                       versionSearch: "Mozilla"
+               }
+       ],
+       dataOS : [
+               {
+                       string: navigator.platform,
+                       subString: "Win",
+                       identity: "Windows"
+               },
+               {
+                       string: navigator.platform,
+                       subString: "Mac",
+                       identity: "Mac"
+               },
+               {
+                          string: navigator.userAgent,
+                          subString: "iPhone",
+                          identity: "iPhone/iPod"
+           },
+               {
+                       string: navigator.platform,
+                       subString: "Linux",
+                       identity: "Linux"
+               }
+       ]
+
+};
+BrowserDetect.init();
\ No newline at end of file
diff --git a/tests/jqm-tchelper/log.php b/tests/jqm-tchelper/log.php
new file mode 100644 (file)
index 0000000..69a36ef
--- /dev/null
@@ -0,0 +1,84 @@
+<?php
+error_reporting(E_ALL);
+define ("BASE_PATH",".");
+define ("FILES_DIR","logfiles");
+
+class SevFile {
+
+       private $basePath = BASE_PATH;
+       private $filesDir = FILES_DIR;
+       private $fileName ;
+       private $filePath;
+       private $fileHandle;
+
+       public function __construct($fileName) {
+           $this->fileName = $fileName;
+           $this->filePath = $this->basePath . DIRECTORY_SEPARATOR . $this->filesDir . DIRECTORY_SEPARATOR;
+       }
+       public function createFile($writeMode) {
+           if($this->fileHandle = fopen($this->filePath . $this->fileName, $writeMode)) {
+                       return true;
+           }
+               return false;
+       }
+
+       public function closeFile(){
+           fclose($this->fileHandle);
+       }
+
+       public function writeToFile($dataToInsert) {
+           self::createFile('w');
+           if(fwrite($this->fileHandle , $dataToInsert)) {
+                return true;
+           }
+           self::closeFile();
+           return false;
+       }
+       public function appendToFile($dataToInsert){
+               self::createFile('a');
+               if(fwrite($this->fileHandle , $dataToInsert)) {
+               return true;
+               }
+               self::closeFile();
+               return false;
+       }
+
+       public function readFromFile($bytesToRead = 0){
+               self::createFile('r');
+               if($bytesToRead > 0) {
+                       if($result = fread($this->fileHandle , $bytesToRead)) {
+                               return $result;
+                       }
+               } else {
+               if($result = fread($this->fileHandle , filesize($this->filePath . $this->fileName))) {
+                       return $result;
+                       }
+               }
+               self::closeFile();
+               return false;
+       }
+}
+
+?>
+
+<?
+       if( $_POST["obj"] &&
+               $_POST["currentTest"] )
+       {
+               $obj = $_POST["obj"];
+               $file = new SevFile("log.txt");
+               $file->appendToFile( $_POST["currentTest"]."|". $obj["result"] ."|". $obj["actual"] ."|". $obj["expected"] ."|". $obj["message"] ."|". $obj["source"] ."\n" );
+               $file->closeFile();
+               echo  $_POST["currentTest"]."|". $obj["result"] ."|". $obj["actual"] ."|". $obj["expected"] ."|". $obj["message"] ."|". $obj["source"];
+       }else{
+               echo "nofile";
+       }
+
+       if( $_REQUEST["reset"] )
+       {
+               $file = new SevFile("log.txt");
+               $file->writeToFile("");
+               $file->closeFile();
+               echo "reset";
+       }
+?>
\ No newline at end of file
diff --git a/tests/jqm-tchelper/result.php b/tests/jqm-tchelper/result.php
new file mode 100644 (file)
index 0000000..8da23ef
--- /dev/null
@@ -0,0 +1,86 @@
+<?php
+       $testname = $_REQUEST["testname"];
+       $t = $_REQUEST["t"];
+       $p = $_REQUEST["p"];
+       $f = $_REQUEST["f"];
+       $r = $_REQUEST["r"];
+?>
+<html>
+       <head>
+               <script type="text/javascript" src="../../libs/js/jquery-1.7.1.js"></script>
+               <script>
+                       function getCookie(name) {
+                               var cname = name + "=";
+                               var dc = document.cookie;
+                               if (dc.length > 0) {
+                                       begin = dc.indexOf(cname);
+                                       if (begin != -1) {
+                                               begin += cname.length;
+                                               end = dc.indexOf(";", begin);
+                                       if (end == -1) end = dc.length;
+                                       return unescape(dc.substring(begin, end));
+                                       }
+                               }
+                               return null;
+                       }
+                       $(document).ready( function() {
+                               $("#os").text( getCookie("OS") );
+                               $("#browser").text( getCookie("Browser") );
+                               $("#version").text( getCookie("Version") );
+                       });
+               </script>
+       </head>
+       <body>
+               <h1>Test Report</h1>
+               <div>
+                       <table style="width:50%;font-size:20px">
+                               <tr style="background:lightgray">
+                                       <td colspan="2">Device Information<td>
+                               </tr>
+                               <tr>
+                                       <td>Operation System</td>
+                                       <td><span id="os"></span></td>
+                               </tr>
+                               <tr>
+                                       <td>Browser Information</td>
+                                       <td><span id="browser"></span></td>
+                               </tr>
+                               <tr>
+                                       <td>Versions</td>
+                                       <td><span id="version"></span></td>
+                               </tr>
+                       </table>
+               </div>
+               <br>
+               <br>
+               <div>
+                       <table style="width:50%;font-size:20px">
+                               <tr style="background:lightgray">
+                                       <td colspan="2">Test summary<td>
+                               </tr>
+                               <!--
+                               <tr>
+                                       <td>Test name</td>
+                                       <td><span><?=$testname?></span></td>
+                               </tr>
+                               -->
+                               <tr>
+                                       <td>Tests total</td>
+                                       <td><span><?=$t?></span></td>
+                               </tr>
+                               <tr>
+                                       <td>Tests Passed</td>
+                                       <td><span><?=$p?></span></td>
+                               </tr>
+                               <tr>
+                                       <td>Tests Failed</td>
+                                       <td><span><?=$f?></span></td>
+                               </tr>
+                               <tr>
+                                       <td>Time(m seconds)</td>
+                                       <td><span><?=$r?></span></td>
+                               </tr>
+                       </table>
+               </div>
+       </body>
+</html>
\ No newline at end of file
diff --git a/tests/jqm-tchelper/tizen.testHelper.js b/tests/jqm-tchelper/tizen.testHelper.js
new file mode 100644 (file)
index 0000000..3fa5667
--- /dev/null
@@ -0,0 +1,151 @@
+/*
+ *     Goal
+ *             - Run button/index.html -> buttonMarkup/index.html automatically in one browser
+ *             - Summarize result of each test suite
+ *                     - pass current summary data by GET variables
+ *                     - Get current summary data by parsing URL to get those GET variables
+ *
+ *     Issues
+ *             - Some testcases may change URL during test
+ *     It is a not complete versionc. Optimization, refactoring is needed
+ */
+( function ( ) {
+
+       var QueryString = function () {
+               var query_string = {},
+                       vars,
+                       pair,
+                       arr,
+                       query = window.location.search.substring(1);
+
+               vars = query.split("&");
+
+               for (var i = 0 ; i < vars.length ; i++)
+               {
+                       pair = vars[i].split("=");
+                       if (typeof query_string[pair[0]] === "undefined")
+                       {
+                               query_string[pair[0]] = pair[1];
+                       }
+                       else if (typeof query_string[pair[0]] === "string")
+                       {
+                               arr = [ query_string[pair[0]], pair[1] ];
+                               query_string[pair[0]] = arr;
+                       } else {
+                               query_string[pair[0]].push(pair[1]);
+                       }
+               }
+               return query_string;
+       } ();
+/*
+       except : listview, event
+*/
+       var tests = [
+               "button",
+               "button-markup",
+               "navigation",
+               "zoom",
+               "checkboxradio",
+               "collapsible",
+               "controlgroup",
+               "core",
+               "degrade-inputs",
+               "dialog",
+               "field-contain",
+               "fixed-toolbar",
+               "init",
+               "loader",
+               "textinput",
+               "support",
+               "media",
+               "kitchensink",
+               "navbar",
+               "page",
+               "page-sections",
+               "select",
+               "slider",
+               "widget"
+       ],
+
+               passCount, failCount, totalCount, runtime,
+               currenTest,
+               url;
+
+       function getCurrentURL ( ) {
+               return window.location.href;
+       }
+       function getURLParameter(name) {
+    return decodeURI(
+        (RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1]
+    );
+}
+       url = getCurrentURL( );
+
+       ( function parseURL ( url ) {
+               // TODO
+               var loc,
+                       dir;
+               passCount = ( typeof QueryString.p === "undefined" ) ? 0 : parseInt( QueryString.p );
+               failCount = ( typeof QueryString.f === "undefined" ) ? 0 : parseInt( QueryString.f );
+               totalCount = ( typeof QueryString.t === "undefined" ) ? 0 : parseInt( QueryString.t );
+               runTime = ( typeof QueryString.r === "undefined" ) ? 0 : parseInt( QueryString.r );
+
+               loc = window.location.pathname;
+               dirs = loc.substring(0, loc.lastIndexOf('/')).split('/');
+               currentTest = dirs[dirs.length-1];
+       } ( url ) );
+       QUnit.log = function( obj ) {
+               var tempUrl = url;
+               if( obj.result ) {
+                       if ( tempUrl.indexOf("?")>-1 ) {
+                               tempUrl = tempUrl.substr(0,tempUrl.indexOf("?"));
+                       }
+                       $.post( tempUrl + "../../../../../../tests/jqm-tchelper/log.php", { currentTest : currentTest, obj : obj } , function(){});
+               }
+       };
+       QUnit.done = function ( details ) {
+               var nextTestURL;
+
+               function getNextTestURL( currentTest, passCount, failCount, totalCount , runTime ) {
+                       var i = 0,
+                               nextUrl = "",
+                               updir = "../";
+                       for( i = 0 ; i < tests.length ; i++ )
+                       {
+                               if( tests[i] == currentTest )
+                               {
+                                       break;
+                               }
+                       }
+
+                       if( tests.length -1 == i ||
+                               currentTest === "listview" ||
+                               currentTest === "event" )
+                       {
+                               //Goto result Page
+                               nextUrl ="../../../../../../tests/jqm-tchelper/result.php"  + "?" + "p=" + passCount + "&f=" + failCount + "&t=" + totalCount + "&r=" + runTime;
+                       }else{
+                               if( currentTest === "navigation"  )
+                               {
+                                       updir += "../../";
+                               }
+                               nextUrl = updir +  tests[i + 1] +"/?" + "p=" + passCount + "&f=" + failCount + "&t=" + totalCount + "&r=" + runTime;
+                       }
+
+                       return nextUrl;
+               }
+               function gotoURL( url ) {
+                       window.location.href = url;
+                       return;
+               }
+
+               passCount += details.passed;
+               failCount += details.failed;
+               totalCount +=  details.total;
+               runTime += details.runtime;
+
+               nextTestURL = getNextTestURL( currentTest, passCount, failCount, totalCount ,runTime );
+               gotoURL( nextTestURL );
+
+       };
+} () );
index 7ea8d94..6381612 100644 (file)
@@ -85,6 +85,10 @@ $(document).ready(function() {
                this.config.autostart = false;
        };
 
+       QUnit.done = function( details ) {
+               location.href = "../jqm-tchelper/result.php?t=" + details.total + "&p=" + details.passed + "&f=" + details.failed + "&r=" + details.runtime;
+       };
+
        // get the test directories
        new Runner().exec(TESTS);
 });