4 https://bugzilla.mozilla.org/show_bug.cgi?id=450048
7 <title>Test for nsFind::Find()
</title>
8 <script type=
"application/javascript" src=
"/MochiKit/MochiKit.js"></script>
9 <script type=
"application/javascript" src=
"/tests/SimpleTest/SimpleTest.js"></script>
10 <link rel=
"stylesheet" type=
"text/css" href=
"/tests/SimpleTest/test.css"/>
13 <a target=
"_blank" href=
"https://bugzilla.mozilla.org/show_bug.cgi?id=450048">Mozilla Bug
450048</a>
14 <p id=
"display">This is the text to search i
<b>n
­t
</b>o
</p>
15 <div id=
"content" style=
"display: none">
19 <script type=
"application/javascript">
21 /** Test for Bug
450048 **/
23 // Check nsFind class and its nsIFind interface.
25 netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
27 var rf = Components.classes[
"@mozilla.org/embedcomp/rangefind;1"]
28 .getService(Components.interfaces.nsIFind);
30 var display = window.document.getElementById(
"display");
31 var searchRange = window.document.createRange();
32 searchRange.setStart(display,
0);
33 searchRange.setEnd(display, display.childNodes.length);
34 var startPt = searchRange;
35 var endPt = searchRange;
37 // Check |null| detection on |aPatText| parameter.
39 rf.Find(null, searchRange, startPt, endPt);
41 ok(false,
"Missing NS_ERROR_NULL_POINTER exception");
42 } catch (e if (e instanceof Components.interfaces.nsIException &&
43 e.result == Components.results.NS_ERROR_NULL_POINTER)) {
47 // Check |null| detection on |aSearchRange| parameter.
49 rf.Find(
"", null, startPt, endPt);
51 ok(false,
"Missing NS_ERROR_ILLEGAL_VALUE exception");
52 } catch (e if (e instanceof Components.interfaces.nsIException &&
53 e.result == Components.results.NS_ERROR_ILLEGAL_VALUE)) {
57 // Check |null| detection on |aStartPoint| parameter.
59 rf.Find(
"", searchRange, null, endPt);
61 ok(false,
"Missing NS_ERROR_ILLEGAL_VALUE exception");
62 } catch (e if (e instanceof Components.interfaces.nsIException &&
63 e.result == Components.results.NS_ERROR_ILLEGAL_VALUE)) {
67 // Check |null| detection on |aEndPoint| parameter.
69 rf.Find(
"", searchRange, startPt, null);
71 ok(false,
"Missing NS_ERROR_ILLEGAL_VALUE exception");
72 } catch (e if (e instanceof Components.interfaces.nsIException &&
73 e.result == Components.results.NS_ERROR_ILLEGAL_VALUE)) {
77 var searchValue, retRange;
79 rf.findBackwards = false;
81 rf.caseSensitive = false;
84 retRange = rf.Find(searchValue, searchRange, startPt, endPt);
85 ok(retRange,
"\"" + searchValue + "\
" not found (not caseSensitive)");
87 rf.caseSensitive = true;
89 // searchValue =
"TexT";
90 retRange = rf.Find(searchValue, searchRange, startPt, endPt);
91 ok(!retRange,
"\"" + searchValue + "\
" found (caseSensitive)");
94 retRange = rf.Find(searchValue, searchRange, startPt, endPt);
95 ok(retRange,
"\"" + searchValue + "\
" not found");
97 // Matches |i
<b>n
­t
</b>o|.
99 retRange = rf.Find(searchValue, searchRange, startPt, endPt);
100 ok(retRange,
"\"" + searchValue + "\
" not found");
102 // Matches inside |search|.
104 retRange = rf.Find(searchValue, searchRange, startPt, endPt);
105 ok(retRange,
"\"" + searchValue + "\
" not found");
107 // Set new start point (to end of last search).
108 startPt = retRange.endContainer.ownerDocument.createRange();
109 startPt.setStart(retRange.endContainer, retRange.endOffset);
110 startPt.setEnd(retRange.endContainer, retRange.endOffset);
113 retRange = rf.Find(searchValue, searchRange, startPt, endPt);
114 ok(retRange,
"\"" + searchValue + "\
" not found (forward)");
117 retRange = rf.Find(searchValue, searchRange, startPt, endPt);
118 ok(!retRange,
"\"" + searchValue + "\
" found (forward)");
120 rf.findBackwards = true;
122 // searchValue =
"the";
123 retRange = rf.Find(searchValue, searchRange, startPt, endPt);
124 ok(retRange,
"\"" + searchValue + "\
" not found (backward)");