Home | History | Annotate | Download | only in mozilla
      1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
      2 <html>
      3   <head>
      4     <title>Core JavaScript Tests</title>
      5 
      6     <script language="JavaScript">
      7       function selectAll (suite, testDir)
      8       {
      9 	  if (typeof suite == "undefined")
     10 	      for (var suite in suites)
     11 		  setAllDirs (suite, true);
     12 	  else if (typeof testDir == "undefined")
     13 	      setAllDirs (suite, true);
     14 	  else
     15 	      setAllTests (suite, testDir, true);
     16 	  updateTotals();
     17       }
     18 
     19       function selectNone (suite, testDir)
     20       {
     21 	  
     22 	  if (typeof suite == "undefined")
     23 	      for (var suite in suites)
     24 		  setAllDirs (suite, false);
     25 	  else if (typeof testDir == "undefined")
     26 	      setAllDirs (suite, false);
     27 	  else
     28 	      setAllTests (suite, testDir, false);
     29 	  updateTotals();	
     30       }
     31 
     32       function setAllDirs (suite, value)
     33       {
     34 	  var dir;
     35 	  for (dir in suites[suite].testDirs)
     36 	      setAllTests (suite, dir, value);
     37 
     38       }
     39 
     40       function setAllTests (suite, testDir, value)
     41       {
     42 	  var test, radioName;
     43 	  
     44 	  for (test in suites[suite].testDirs[testDir].tests)
     45 	  {
     46 	      radioName = suites[suite].testDirs[testDir].tests[test];
     47 	      document.forms["testCases"].elements[radioName].checked = value;
     48 	  }
     49 
     50       }
     51 
     52       function createList ()
     53       {
     54 	  var suite, testDir, test, radioName;
     55 	  var elements = document.forms["testCases"].elements;
     56 
     57 	  var win = window.open ("about:blank", "other_window");
     58 	  win.document.open();
     59 	  win.document.write ("<pre>\n");
     60 	  
     61 	  win.document.write ("# Created " + new Date() + "\n");
     62 
     63 	  for (suite in suites)
     64 	      win.document.write ("# " + suite + ": " + 
     65 				  elements["SUMMARY_" + suite].value + "\n");
     66 	  win.document.write ("# TOTAL: " + elements["TOTAL"].value + "\n");
     67 
     68 	  for (suite in suites)
     69 	      for (testDir in suites[suite].testDirs)
     70 		  for (test in suites[suite].testDirs[testDir].tests)
     71 		  {  
     72 		      radioName = suites[suite].testDirs[testDir].tests[test];
     73 		      if (elements[radioName].checked)
     74 			  win.document.write (suite + "/" + testDir + "/" + 
     75 					      elements[radioName].value + "\n");
     76 		  }
     77 	  
     78 	  win.document.close();
     79 
     80       }
     81 
     82       function onRadioClick (name)
     83       {
     84 	  var radio = document.forms["testCases"].elements[name];
     85 	  radio.checked = !radio.checked;
     86 	  setTimeout ("updateTotals();", 100);
     87 	  return false;
     88       }
     89     
     90       function updateTotals()
     91       {
     92 	  var suite, testDir, test, radioName, selected, available, pct;
     93 	  var totalAvailable = 0, totalSelected = 0;
     94 	  
     95 	  var elements = document.forms["testCases"].elements;
     96 
     97 	  for (suite in suites)
     98 	  {
     99 	      selected = available = 0;
    100 	      for (testDir in suites[suite].testDirs)
    101 		  for (test in suites[suite].testDirs[testDir].tests)
    102 		  {  
    103 		      available++
    104 		      radioName = suites[suite].testDirs[testDir].tests[test];
    105 		      if (elements[radioName].checked)
    106 			  selected++;
    107 		  }
    108 	      totalSelected += selected;
    109 	      totalAvailable += available;
    110 	      pct = parseInt((selected / available) * 100);
    111 	      if (isNaN(pct))
    112 		  pct = 0;
    113 	      
    114 	      elements["SUMMARY_" + suite].value = selected + "/" + available +
    115                   " (" + pct + "%) selected";
    116 	  }
    117 
    118 	  pct = parseInt((totalSelected / totalAvailable) * 100);
    119 	  if (isNaN(pct))
    120 	      pct = 0;
    121 	      
    122 	  elements["TOTAL"].value = totalSelected + "/" + totalAvailable + " (" +
    123 	      pct + "%) selected";
    124 
    125       }
    126     
    127     </script>
    128 
    129   </head>
    130 
    131   <body bgcolor="white" onLoad="updateTotals()">
    132     <a name='top_of_page'></a>
    133     <h1>Core JavaScript Tests</h1>
    134 
    135     <form name="testCases">
    136     <input type='button' value='Export Test List' onClick='createList();'>
    137     <input type='button' value='Import Test List' 
    138       onClick='window.open("importList.html", "other_window");'>
    139