/[jsFind]/trunk/html/test.html
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /trunk/html/test.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 27 - (hide annotations)
Thu Oct 7 22:43:49 2004 UTC (19 years, 7 months ago) by dpavlin
File MIME type: text/html
File size: 5258 byte(s)
re-wrote test to create output with document.createElement, much better
output, print just failed tests and some statistics (more verbose output of
correct tests can be turned on by uncommenting one line)

1 dpavlin 20 <!DOCTYPE html PUBLIC
2     "-//W3C//DTD XHTML 1.0 Strict//EN"
3     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4     <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5     <head>
6     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
7     <title>jsFind Test page</title>
8     <script src="js/search.js" type="text/javascript"></script>
9     <script src="test_data.js" type="text/javascript"></script>
10     <script type="text/javascript">
11    
12     /*
13     var test_data = {
14     'by': {
15     '33': 1,
16     '28': 1,
17     '7': 2,
18     '91': 1,
19     '78': 2,
20     '8': 1,
21     '1': 2,
22     '16': 1,
23     '23': 1,
24     '100': 1,
25     '65': 1
26     },
27     'voice.': {
28     '80': 1
29     }
30     };
31     */
32    
33 dpavlin 27 function get_el(name) {
34 dpavlin 20 var div = document.getElementById(name);
35     if (! div) alert("can't find div "+name);
36     return div;
37     }
38    
39     var test_div = null;
40    
41    
42 dpavlin 27 var passed_tests = 0;
43     var failed_tests = 0;
44 dpavlin 20 var test_failed = false;
45    
46     var word_nr = -1; // first emement is word_nr++
47     var words = Array();
48 dpavlin 27 var total_words = null;
49 dpavlin 20
50 dpavlin 25 function msg_debug(msg) {
51 dpavlin 27 var e = document.createElement("span");
52     e.setAttribute('style', 'color: black;');
53     e.appendChild(document.createTextNode(msg));
54     test_div.appendChild(e);
55 dpavlin 25 test_div.appendChild(document.createElement("br"));
56 dpavlin 20 return;
57     }
58    
59     function msg_error(msg) {
60 dpavlin 25 var e = document.createElement("span");
61 dpavlin 27 e.setAttribute('style', 'color: red;');
62 dpavlin 25 e.appendChild(document.createTextNode(msg));
63    
64     test_div.appendChild(e);
65     test_div.appendChild(document.createElement("br"));
66    
67 dpavlin 27 failed_tests++;
68 dpavlin 20 test_failed = true;
69     return true;
70     }
71    
72     function msg_ok(msg) {
73 dpavlin 25 var e = document.createElement("span");
74 dpavlin 27 e.setAttribute('style', 'color: green;');
75 dpavlin 25 e.appendChild(document.createTextNode(msg));
76    
77     test_div.appendChild(e);
78     test_div.appendChild(document.createElement("br"));
79    
80 dpavlin 27 passed_tests++;
81 dpavlin 20 return true;
82     }
83    
84     function got_result(result) {
85     if (result.length < 0) {
86     msg_error("no results for word "+words[word_nr]);
87     }
88    
89 dpavlin 27 var i;
90    
91 dpavlin 20 var word = words[word_nr];
92 dpavlin 21 var len = 0;
93 dpavlin 27 for (i in result) len++;
94 dpavlin 25 result.length = len;
95 dpavlin 27 len = 0;
96     for (i in test_data[word]) len++;
97 dpavlin 20
98 dpavlin 21 if (result.length == len) {
99 dpavlin 27 msg_ok("found "+result.length+" results");
100 dpavlin 21 } else if ( result.length > len )
101     msg_error("too much results "+result.length+" > "+len)
102     else msg_error("too fiew results "+result.length+" < "+len);
103 dpavlin 20
104 dpavlin 27 for(i=result.length-1; i>=0; i--) {
105 dpavlin 25 var test_hit = i+": '"+
106     result[i].title+"' link: "+
107     result[i].link+" frequency: "+
108 dpavlin 20 result[i].frequency;
109    
110     if ( test_data[ words[word_nr] ][ result[i].link ] != result[i].frequency ) {
111 dpavlin 27 msg_error("error in frequency "+i+": '"+words[word_nr]+"' "+test_data[ words[word_nr] ][ result[i].link ]+" != "+result[i].frequency);
112 dpavlin 25 msg_error("HIT "+test_hit);
113 dpavlin 20
114     } else {
115 dpavlin 27 msg_ok("OK frequency "+i+": '"+words[word_nr]+"' ["+result[i].frequency+"]");
116 dpavlin 20 }
117    
118     }
119    
120 dpavlin 27 if (test_failed) {
121     get_el('debug').appendChild(test_div);
122     get_el('debug').appendChild(debug_div);
123     } else {
124     // uncomment this to show also passed tests
125     //get_el('debug').appendChild(test_div);
126     }
127    
128     get_el('nr_words').value = word_nr;
129     get_el('nr_tests').value = passed_tests + test_failed;
130     get_el('nr_passed').value = passed_tests;
131     get_el('nr_failed').value = failed_tests;
132     get_el('completed').value = (word_nr * 100 / total_words).toPrecision(4);
133    
134 dpavlin 20 // try next search
135     if (word_nr < words.length) do_search();
136    
137     return true;
138     }
139    
140     function do_test() {
141    
142 dpavlin 27 test_div = document.createElement("div");
143     debug_div = document.createElement("div");
144 dpavlin 20
145 dpavlin 27 total_words = 0;
146 dpavlin 20
147     for (word in test_data) {
148 dpavlin 27 words[total_words] = word;
149     msg_debug("word "+total_words+": "+words[total_words]);
150     total_words++;
151 dpavlin 20 }
152    
153 dpavlin 27 get_el('debug').appendChild(test_div);
154     get_el('debug').appendChild(debug_div);
155 dpavlin 20 do_search();
156     }
157    
158    
159     function do_search() {
160    
161     word_nr++;
162    
163 dpavlin 27 test_div = document.createElement("div");
164     debug_div = document.createElement("div");
165    
166 dpavlin 20 if (word_nr < words.length && words[word_nr] != 'undefined') {
167    
168     test_failed = false;
169    
170 dpavlin 27 msg_debug("");
171     msg_debug("search "+word_nr+": "+words[word_nr]);
172 dpavlin 20
173 dpavlin 25 results = null;
174 dpavlin 21 doSearch('homer', words[word_nr], got_result);
175 dpavlin 20
176     } else {
177 dpavlin 27 msg_debug("");
178     msg_debug("tested "+word_nr+" words, "+passed_tests+" test passed, "+failed_tests+" test failed.");
179     get_el('debug').appendChild(test_div);
180     get_el('debug').appendChild(debug_div);
181 dpavlin 20 }
182     }
183    
184     </script>
185     </head>
186    
187     <body onLoad="do_test();">
188    
189     <div style="color: blue;">
190 dpavlin 27 This is test html for jsFind -- it might take a long time on slower
191     computers and/or browsers, so please be patient!
192 dpavlin 20 </div>
193    
194 dpavlin 27 <form>
195     Words:<input type="text" id="nr_words" size="4" value="0" />
196     &nbsp;Tests:<input type="text" id="nr_tests" size="4" value="0" />
197     &nbsp;Passed:<input type="text" id="nr_passed" size="4" value="0" />
198     &nbsp;Failed:<input type="text" id="nr_failed" size="4" value="0" />
199     &nbsp;Completed:<input type="text" id="completed" size="4" value="0" />%
200     </form>
201 dpavlin 20
202     <div id="debug" style="color: gray;">
203     </div>
204    
205     </body>
206     </html>

  ViewVC Help
Powered by ViewVC 1.1.26