added jstore path
[bookreader.git] / BookReaderIA / test / unit / Search.js
1 // Tests for Search
2
3 // Depends on common.js
4
5 module("Search");
6
7 // Holds search text
8 var gSearchText = '';
9
10 // Build search URL
11 function searchURL(bookReader, term, callback) {
12     var url = 'http://' + bookReader.server
13                + '/BookReader/flipbook_search_br.php?url='+escape(bookReader.bookPath + '_djvu.xml')
14                +'&term='+escape(term)+'&format=XML&callback=' + callback;
15     return url;
16 }
17
18 // Search, results to xmlCallback(txtData, textstatus) or errorCallback
19 function search(searchURL, xmlCallback, errorCallback) {
20     $.ajax({
21         type: 'GET',
22         dataType: 'script',
23         url: searchURL,
24         success: xmlCallback,
25         error: errorCallback
26     }); 
27 }
28
29 function setSearchText(txtData) {
30     gSearchText = txtData;
31 }
32
33 function locateTest(title, identifier, book) {
34     asyncTest("JSLocate for " + identifier, function() {
35         expect(2);
36         var locateURL = jsLocateURL(identifier, book);
37         
38         $.ajax({
39             url: locateURL,
40             dataType: 'script',
41             complete: function() {
42                 try {
43                     equals(typeof(br) != 'undefined', true, 'br is not undefined');
44                     equals(br.bookTitle, title, 'Title');
45                 } catch (e) {
46                 }
47                 start();
48             }
49         });
50     });
51 };
52
53 function searchXMLTest(bookReader, term, expected) {
54     asyncTest("XML search results for " + term, function() {
55         expect(1);
56         setSearchText(undefined);
57         var searchDataURL = searchURL(br, term, 'setSearchText');
58         
59         $.ajax({
60             type: 'GET',
61             url: searchDataURL,
62             dataType: 'script',            
63             complete: function() {
64                 equals(gSearchText, expected, "XML search results");
65                 start();
66             }
67         });
68     });
69 };
70
71 locateTest('The Zenith Yearbook, 1993 High Point University', 'TheZenithYearbook1993HighPointUniversity', 'THE_ZENITH_1993');
72 var cassidyExpected = '<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/css" href="blank.css"?><SEARCH><PAGE file="THE_ZENITH_1993_0021.djvu" width="2700" height="3451"><CONTEXT> Carr Mike </CONTEXT><WORD coords="1350,2937,1493,2903,2932">Cassidy</WORD><CONTEXT>  Mhari Cattell  Seniors </CONTEXT></PAGE></SEARCH>';
73 searchXMLTest(this.br, 'cassidy', cassidyExpected);
74
75 locateTest('A Nestable Tapered Column Concept for Large Space Structures', 'ANestableTaperedColumnConceptForLargeSpaceStructures', '19760022270_1976022270');
76 var nasaExpected = '<?xml version=\"1.0\" encoding=\"utf-8\"?><?xml-stylesheet type=\"text/css\" href=\"blank.css\"?><SEARCH><PAGE file=\"19760022270_1976022270_0001.djvu\" width=\"2504\" height=\"3112\"><CONTEXT> the Space </CONTEXT><WORD coords=\"1894,1738,2062,1700,1736\">Shuttle</WORD><CONTEXT>  and that nestable, tapered columns easily </CONTEXT></PAGE><PAGE file=\"19760022270_1976022270_0002.djvu\" width=\"2481\" height=\"3104\"><CONTEXT> for Space </CONTEXT><WORD coords=\"308,2896,479,2859,2895\">Shuttle</WORD><CONTEXT>  to be achieved and thereby minimize the </CONTEXT></PAGE><PAGE file=\"19760022270_1976022270_0003.djvu\" width=\"2468\" height=\"3099\"><CONTEXT> with Space </CONTEXT><WORD coords=\"1924,1137,2093,1100,1136\">Shuttle</WORD><CONTEXT>  to be achieved. All studies in </CONTEXT></PAGE><PAGE file=\"19760022270_1976022270_0004.djvu\" width=\"2475\" height=\"3099\"><CONTEXT> one Space </CONTEXT><WORD coords=\"881,1431,1048,1394,1430\">Shuttle</WORD><CONTEXT>  cargo bay, using various efficient structural </CONTEXT></PAGE><PAGE file=\"19760022270_1976022270_0007.djvu\" width=\"2488\" height=\"3114\"><CONTEXT> for Space </CONTEXT><WORD coords=\"1339,2376,1508,2340,2375\">Shuttle</WORD><CONTEXT>  with very efficient lightweight, structural components.</CONTEXT></PAGE><PAGE file=\"19760022270_1976022270_0008.djvu\" width=\"2488\" height=\"3102\"><CONTEXT> requires fewer </CONTEXT><WORD coords=\"1853,1687,2023,1650,1686\">shuttle</WORD><CONTEXT>  flights. Also it is shown that </CONTEXT></PAGE><PAGE file=\"19760022270_1976022270_0009.djvu\" width=\"2497\" height=\"3108\"><CONTEXT> for Space </CONTEXT><WORD coords=\"1953,1607,2121,1569,1605\">Shuttle</WORD><CONTEXT>  to offload cargos of men and/or </CONTEXT></PAGE><PAGE file=\"19760022270_1976022270_0010.djvu\" width=\"2459\" height=\"3078\"><CONTEXT> the Space </CONTEXT><WORD coords=\"1688,1063,1864,1022,1062\">Shuttle</WORD><CONTEXT>  and that nestable tapered columns easily eliminate </CONTEXT></PAGE><PAGE file=\"19760022270_1976022270_0014.djvu\" width=\"2464\" height=\"3081\"><CONTEXT> * </CONTEXT><WORD coords=\"335,1088,493,1052,1087\">Shuttle</WORD><CONTEXT>  Limit S o IS u u V </CONTEXT></PAGE><PAGE file=\"19760022270_1976022270_0015.djvu\" width=\"2460\" height=\"3087\"><CONTEXT> Number of </CONTEXT><WORD coords=\"870,2793,1040,2754,2792\">shuttle</WORD><CONTEXT>  flights required for placing a tetrahedral truss </CONTEXT></PAGE></SEARCH>';
77 searchXMLTest(this.br, 'shuttle', nasaExpected);
78