serialize.test.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. require("./chai.helper");
  2. var domHelper = require("./dom.helper");
  3. describe("serialize", function () {
  4. beforeEach(function () {
  5. domHelper(
  6. "<form id=\"myform\" onsubmit=\"return false\">" +
  7. "<fieldset>" +
  8. "<input type=\"text\" id=\"name\" name=\"name\" value=\"af\">" +
  9. "<input id=\"available\" type=\"checkbox\" " +
  10. "name=\"available\" value=\"true\" checked>" +
  11. "<select id=\"version\" name=\"version\" multiple=\"multiple\">" +
  12. "<option id=\"option0.9.5\" value=\"0.9.5\">0.9.5</option>" +
  13. "<option id=\"option1.0\" value=\"1.0\">1.0</option>" +
  14. "<select>" +
  15. "<input type=\"submit\" value=\"Go\">" +
  16. "</fieldset>" +
  17. "</form>"
  18. );
  19. });
  20. it("should convert form elements into a querystring", function () {
  21. var expected = "name=af&available=true";
  22. var actual = $("#myform").serialize();
  23. actual.should.equal(expected);
  24. });
  25. it("should ignore unchecked checkboxes", function () {
  26. document.getElementById("available").checked = false;
  27. var expected = "name=af";
  28. var actual = $("#myform").serialize();
  29. actual.should.equal(expected);
  30. });
  31. it("should ignore disabled elements", function () {
  32. document.getElementById("name").disabled = true;
  33. var expected = "available=true";
  34. var actual = $("#myform").serialize();
  35. actual.should.equal(expected);
  36. });
  37. it("should serialize drop-down select with default option selected", function () {
  38. document.getElementById("version").removeAttribute("multiple");
  39. var expected = "name=af&available=true&version=0.9.5";
  40. var actual = $("#myform").serialize();
  41. actual.should.equal(expected);
  42. });
  43. it("should serialize select elements with option selected", function () {
  44. document.getElementById("option1.0").selected = true;
  45. var expected = "name=af&available=true&version=1.0";
  46. var actual = $("#myform").serialize();
  47. actual.should.equal(expected);
  48. });
  49. it("should serialize select elements with multiple options selected", function () {
  50. document.getElementById("option0.9.5").selected = true;
  51. document.getElementById("option1.0").selected = true;
  52. var expected = "name=af&available=true&version=0.9.5&version=1.0";
  53. var actual = $("#myform").serialize();
  54. actual.should.equal(expected);
  55. });
  56. });