/[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

Contents of /trunk/html/test.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 27 - (show 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 <!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 function get_el(name) {
34 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 var passed_tests = 0;
43 var failed_tests = 0;
44 var test_failed = false;
45
46 var word_nr = -1; // first emement is word_nr++
47 var words = Array();
48 var total_words = null;
49
50 function msg_debug(msg) {
51 var e = document.createElement("span");
52 e.setAttribute('style', 'color: black;');
53 e.appendChild(document.createTextNode(msg));
54 test_div.appendChild(e);
55 test_div.appendChild(document.createElement("br"));
56 return;
57 }
58
59 function msg_error(msg) {
60 var e = document.createElement("span");
61 e.setAttribute('style', 'color: red;');
62 e.appendChild(document.createTextNode(msg));
63
64 test_div.appendChild(e);
65 test_div.appendChild(document.createElement("br"));
66
67 failed_tests++;
68 test_failed = true;
69 return true;
70 }
71
72 function msg_ok(msg) {
73 var e = document.createElement("span");
74 e.setAttribute('style', 'color: green;');
75 e.appendChild(document.createTextNode(msg));
76
77 test_div.appendChild(e);
78 test_div.appendChild(document.createElement("br"));
79
80 passed_tests++;
81 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 var i;
90
91 var word = words[word_nr];
92 var len = 0;
93 for (i in result) len++;
94 result.length = len;
95 len = 0;
96 for (i in test_data[word]) len++;
97
98 if (result.length == len) {
99 msg_ok("found "+result.length+" results");
100 } 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
104 for(i=result.length-1; i>=0; i--) {
105 var test_hit = i+": '"+
106 result[i].title+"' link: "+
107 result[i].link+" frequency: "+
108 result[i].frequency;
109
110 if ( test_data[ words[word_nr] ][ result[i].link ] != result[i].frequency ) {
111 msg_error("error in frequency "+i+": '"+words[word_nr]+"' "+test_data[ words[word_nr] ][ result[i].link ]+" != "+result[i].frequency);
112 msg_error("HIT "+test_hit);
113
114 } else {
115 msg_ok("OK frequency "+i+": '"+words[word_nr]+"' ["+result[i].frequency+"]");
116 }
117
118 }
119
120 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 // try next search
135 if (word_nr < words.length) do_search();
136
137 return true;
138 }
139
140 function do_test() {
141
142 test_div = document.createElement("div");
143 debug_div = document.createElement("div");
144
145 total_words = 0;
146
147 for (word in test_data) {
148 words[total_words] = word;
149 msg_debug("word "+total_words+": "+words[total_words]);
150 total_words++;
151 }
152
153 get_el('debug').appendChild(test_div);
154 get_el('debug').appendChild(debug_div);
155 do_search();
156 }
157
158
159 function do_search() {
160
161 word_nr++;
162
163 test_div = document.createElement("div");
164 debug_div = document.createElement("div");
165
166 if (word_nr < words.length && words[word_nr] != 'undefined') {
167
168 test_failed = false;
169
170 msg_debug("");
171 msg_debug("search "+word_nr+": "+words[word_nr]);
172
173 results = null;
174 doSearch('homer', words[word_nr], got_result);
175
176 } else {
177 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 }
182 }
183
184 </script>
185 </head>
186
187 <body onLoad="do_test();">
188
189 <div style="color: blue;">
190 This is test html for jsFind -- it might take a long time on slower
191 computers and/or browsers, so please be patient!
192 </div>
193
194 <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
202 <div id="debug" style="color: gray;">
203 </div>
204
205 </body>
206 </html>

  ViewVC Help
Powered by ViewVC 1.1.26