r829 - in branches: 1.7/tests experimental/tests

r829 - in branches: 1.7/tests experimental/tests


Author: paul.bakaus
Date: Thu Oct 23 06:45:37 2008
New Revision: 829
Added:
branches/experimental/tests/autocomplete.html
branches/experimental/tests/autocomplete.js
Removed:
branches/1.7/tests/autocomplete.html
branches/1.7/tests/autocomplete.js
Modified:
branches/experimental/tests/ (props changed)
Log:
autocomplete: moved autocomplete from 1.7 to experimental
Added: branches/experimental/tests/autocomplete.html
==============================================================================
--- (empty file)
+++ branches/experimental/tests/autocomplete.html    Thu Oct 23 06:45:37 2008
@@ -0,0 +1,29 @@
+<!doctype html>
+<html lang="en">
+<head>
+
+    <link rel="stylesheet" href="qunit/testsuite.css" type="text/css"
media="screen">
+
+    <script type="text/javascript"
src="../../../trunk/jquery-1.2.6.js"></script>
+    <script type="text/javascript"
src="../../../trunk/ui/ui.core.js"></script>
+    <script type="text/javascript" src="../ui.autocomplete.js"></script>
+    
+    <script type="text/javascript" src="qunit/testrunner.js"></script>
+    <script type="text/javascript" src="simulate/jquery.simulate.js"></script>
+
+    <script type="text/javascript" src="autocomplete.js"></script>
+
+</head>
+
+<body>
+<h1>jQuery - Autocomplete Test Suite</h1>
+<div id="main" style="display: none">
+    
+    <input type="text" name="autocomplete" value="" id="autocomplete">
+    
+</div>
+
+<ol id="tests"></ol>
+</body>
+
+</html>
Added: branches/experimental/tests/autocomplete.js
==============================================================================
--- (empty file)
+++ branches/experimental/tests/autocomplete.js    Thu Oct 23 06:45:37 2008
@@ -0,0 +1,116 @@
+test("init", function() {
+    expect(6);
+
+    el = $("#autocomplete").autocomplete();
+    ok(true, '.autocomplete() called on element');
+
+    $([]).autocomplete();
+    ok(true, '.autocomplete() called on empty collection');
+
+    $("<input/>").autocomplete();
+    ok(true, '.autocomplete() called on disconnected DOMElement');
+
+    $("<input/>").autocomplete().autocomplete("foo");
+    ok(true, 'arbitrary method called after init');
+
+    $("<input/>").autocomplete().data("foo.autocomplete");
+    ok(true, 'arbitrary option getter after init');
+
+    $("<input/>").autocomplete().data("foo.autocomplete", "bar");
+    ok(true, 'arbitrary option setter after init');
+});
+
+test("destroy", function() {
+    expect(6);
+
+    $("#autocomplete").autocomplete().autocomplete("destroy");
+    ok(true, '.autocomplete("destroy") called on element');
+
+    $([]).autocomplete().autocomplete("destroy");
+    ok(true, '.autocomplete("destroy") called on empty collection');
+
+    $("<input/>").autocomplete().autocomplete("destroy");
+    ok(true, '.autocomplete("destroy") called on disconnected DOMElement');
+
+    $("<input/>").autocomplete().autocomplete("destroy").autocomplete("foo");
+    ok(true, 'arbitrary method called after destroy');
+
+    
$("<input/>").autocomplete().autocomplete("destroy").data("foo.autocomplete");
+    ok(true, 'arbitrary option getter after destroy');
+
+    
$("<input/>").autocomplete().autocomplete("destroy").data("foo.autocomplete", "bar");
+    ok(true, 'arbitrary option setter after destroy');
+});
+
+test("re-attach", function() {
+    expect(2);
+
+    el =
$("#autocomplete").autocomplete().autocomplete("destroy").autocomplete();
+    ok(true, '.autocomplete().autocomplete("destroy").autocomplete() called
on element');
+
+    $('<input
id="autocomplete_dis">').autocomplete().autocomplete("destroy").autocomplete().remove();
+    ok(true, '.autocomplete().autocomplete("destroy").autocomplete() called
on disconnected element');
+
+});
+
+test("disable", function() {
+    expect(1);
+
+    $("#autocomplete").autocomplete().autocomplete("disable");
+    ok(true, '.autocomplete("disable") called on element');
+
+});
+
+test("enable", function() {
+    expect(1);
+
+    
$("#autocomplete").autocomplete().autocomplete("disable").autocomplete("enable");
+    ok(true, '.autocomplete("enable") called on element');
+
+});
+
+test("defaults", function() {
+    expect(19);
+    el = $("#autocomplete").autocomplete();
+
+    var formatItem = function (row) { return row[0]; }.toString();
+    var highlight = function (value, term) { return value.replace(new
RegExp("(?![^&;]+;)(?!<[^<>]*)(" +
term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1")
+ ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<strong>$1</strong>"); }.toString();
+    
+    equals(el.data("minChars.autocomplete"), 1, "minChars");
+    equals(el.data("delay.autocomplete"), 10, "delay");
+    equals(el.data("cacheLength.autocomplete"), 10, "cacheLength");
+    equals(el.data("matchSubset.autocomplete"), true, "matchSubset");
+    equals(el.data("matchCase.autocomplete"), false, "matchCase");
+    equals(el.data("matchContains.autocomplete"), false, "matchContains");
+    equals(el.data("mustMatch.autocomplete"), false, "mustMatch");
+    equals(el.data("selectFirst.autocomplete"), true, "selectFirst");
+    equals(el.data("formatItem.autocomplete"), formatItem, "formatItem");
+    equals(el.data("formatMatch.autocomplete"), formatItem, "formatMatch");
+    equals(el.data("formatResult.autocomplete"), undefined, "formatResult");
+    equals(el.data("multiple.autocomplete"), false, "multiple");
+    
equals(el.data("multipleSeparator.autocomplete"), ", ", "multipleSeparator");
+    equals(el.data("width.autocomplete"), "", "width");
+    equals(el.data("autoFill.autocomplete"), false, "autoFill");
+    equals(el.data("max.autocomplete"), 150, "max");
+    equals(el.data("highlight.autocomplete"), highlight, "highlight");
+    equals(el.data("scroll.autocomplete"), true, "scroll");
+    equals(el.data("scrollHeight.autocomplete"), 180, "scrollHeight");
+    
+});
+
+test("set defaults on init", function() {
+    expect(2);
+    el = $("#autocomplete").autocomplete({ scroll: false });
+
+    equals(el.data("scroll.autocomplete"), false, "scroll");
+    equals(el.data("max.autocomplete"), 10, "max");
+
+});
+
+test("highlighter", function() {
+    equals(
$.ui.autocomplete.defaults.highlight("Peter", "Pe"), "<strong>Pe</strong>ter"
);
+    equals( $.ui.autocomplete.defaults.highlight("Peter
<em>&lt;Pan&gt;</em>", "Pe"), "<strong>Pe</strong>ter <em>&lt;Pan&gt;</em>"
);
+    equals( $.ui.autocomplete.defaults.highlight("Peter
<em>&lt;Pan&gt;</em>", "a"), "Peter <em>&lt;P<strong>a</strong>n&gt;</em>"
);
+    equals( $.ui.autocomplete.defaults.highlight("Peter
<em>(&lt;Pan&gt;)</em>", "(&lt;P"), "Peter
<em><strong>(&lt;P</strong>an&gt;)</em>" );
+});
+