/embedding/test/test_nsFind.html

http://github.com/zpao/v8monkey · HTML · 127 lines · 96 code · 28 blank · 3 comment · 0 complexity · 3361cf6910eb512fdedd9f4dc293f0af MD5 · raw file

  1. <!DOCTYPE HTML>
  2. <html>
  3. <!--
  4. https://bugzilla.mozilla.org/show_bug.cgi?id=450048
  5. -->
  6. <head>
  7. <title>Test for nsFind::Find()</title>
  8. <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
  9. <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
  10. </head>
  11. <body>
  12. <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=450048">Mozilla Bug 450048</a>
  13. <p id="display">This is the text to search i<b>n&shy;t</b>o</p>
  14. <div id="content" style="display: none">
  15. </div>
  16. <pre id="test">
  17. <script type="application/javascript">
  18. /** Test for Bug 450048 **/
  19. // Check nsFind class and its nsIFind interface.
  20. netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
  21. var rf = Components.classes["@mozilla.org/embedcomp/rangefind;1"]
  22. .getService(Components.interfaces.nsIFind);
  23. var display = window.document.getElementById("display");
  24. var searchRange = window.document.createRange();
  25. searchRange.setStart(display, 0);
  26. searchRange.setEnd(display, display.childNodes.length);
  27. var startPt = searchRange;
  28. var endPt = searchRange;
  29. // Check |null| detection on |aPatText| parameter.
  30. try {
  31. rf.Find(null, searchRange, startPt, endPt);
  32. ok(false, "Missing NS_ERROR_NULL_POINTER exception");
  33. } catch (e if (e instanceof Components.interfaces.nsIException &&
  34. e.result == Components.results.NS_ERROR_NULL_POINTER)) {
  35. ok(true, null);
  36. }
  37. // Check |null| detection on |aSearchRange| parameter.
  38. try {
  39. rf.Find("", null, startPt, endPt);
  40. ok(false, "Missing NS_ERROR_ILLEGAL_VALUE exception");
  41. } catch (e if (e instanceof Components.interfaces.nsIException &&
  42. e.result == Components.results.NS_ERROR_ILLEGAL_VALUE)) {
  43. ok(true, null);
  44. }
  45. // Check |null| detection on |aStartPoint| parameter.
  46. try {
  47. rf.Find("", searchRange, null, endPt);
  48. ok(false, "Missing NS_ERROR_ILLEGAL_VALUE exception");
  49. } catch (e if (e instanceof Components.interfaces.nsIException &&
  50. e.result == Components.results.NS_ERROR_ILLEGAL_VALUE)) {
  51. ok(true, null);
  52. }
  53. // Check |null| detection on |aEndPoint| parameter.
  54. try {
  55. rf.Find("", searchRange, startPt, null);
  56. ok(false, "Missing NS_ERROR_ILLEGAL_VALUE exception");
  57. } catch (e if (e instanceof Components.interfaces.nsIException &&
  58. e.result == Components.results.NS_ERROR_ILLEGAL_VALUE)) {
  59. ok(true, null);
  60. }
  61. var searchValue, retRange;
  62. rf.findBackwards = false;
  63. rf.caseSensitive = false;
  64. searchValue = "TexT";
  65. retRange = rf.Find(searchValue, searchRange, startPt, endPt);
  66. ok(retRange, "\"" + searchValue + "\" not found (not caseSensitive)");
  67. rf.caseSensitive = true;
  68. // searchValue = "TexT";
  69. retRange = rf.Find(searchValue, searchRange, startPt, endPt);
  70. ok(!retRange, "\"" + searchValue + "\" found (caseSensitive)");
  71. searchValue = "text";
  72. retRange = rf.Find(searchValue, searchRange, startPt, endPt);
  73. ok(retRange, "\"" + searchValue + "\" not found");
  74. // Matches |i<b>n&shy;t</b>o|.
  75. searchValue = "into";
  76. retRange = rf.Find(searchValue, searchRange, startPt, endPt);
  77. ok(retRange, "\"" + searchValue + "\" not found");
  78. // Matches inside |search|.
  79. searchValue = "ear";
  80. retRange = rf.Find(searchValue, searchRange, startPt, endPt);
  81. ok(retRange, "\"" + searchValue + "\" not found");
  82. // Set new start point (to end of last search).
  83. startPt = retRange.endContainer.ownerDocument.createRange();
  84. startPt.setStart(retRange.endContainer, retRange.endOffset);
  85. startPt.setEnd(retRange.endContainer, retRange.endOffset);
  86. searchValue = "t";
  87. retRange = rf.Find(searchValue, searchRange, startPt, endPt);
  88. ok(retRange, "\"" + searchValue + "\" not found (forward)");
  89. searchValue = "the";
  90. retRange = rf.Find(searchValue, searchRange, startPt, endPt);
  91. ok(!retRange, "\"" + searchValue + "\" found (forward)");
  92. rf.findBackwards = true;
  93. // searchValue = "the";
  94. retRange = rf.Find(searchValue, searchRange, startPt, endPt);
  95. ok(retRange, "\"" + searchValue + "\" not found (backward)");
  96. </script>
  97. </pre>
  98. </body>
  99. </html>