getCssMatrix.test.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. describe("getCssMatrix", function () {
  2. var stubMatrix = { a: 1, b: 1, c: 1, d: 1, e: 1, f: 1 };
  3. var oldWK=window.WebKitCSSMatrix;
  4. var oldMS=window.MSCSSMatrix;
  5. beforeEach(function () {
  6. $(document.body).append("<div id=\"moo\"></div>");
  7. });
  8. afterEach(function(){
  9. window.WebKitCSSMatrix=oldWK;
  10. window.MSCSSMatrix=oldMS;
  11. })
  12. it("should return a default matrix if no element argument passed and no matrix function", function () {
  13. window.WebKitCSSMatrix=null;
  14. var matrix = $.getCssMatrix();
  15. var expected = { a: 0, b: 0, c: 0, d: 0, e: 0, f: 0 };
  16. matrix.should.eql(expected);
  17. });
  18. it("should return a matrix from a *Matrix function if present and no element", function () {
  19. var matrix = $.getCssMatrix();
  20. matrix.should.eql(new WebKitCSSMatrix());
  21. });
  22. it("should use the MSCSSMatrix function if present", function () {
  23. var elt = document.getElementById("moo");
  24. var matrix = $.getCssMatrix(elt);
  25. var computedStyle = window.getComputedStyle(elt);
  26. var transform = computedStyle.webkitTransform ||
  27. computedStyle.transform ||
  28. computedStyle[$.feat.cssPrefix + "Transform"];
  29. matrix.should.eql(new WebKitCSSMatrix(transform));
  30. });
  31. it("should return a matrix hacked from the stylesheet", function () {
  32. window.WebKitCSSMatrix=null;
  33. $("#moo").cssTranslate("1px,1px");
  34. var ele=document.getElementById("moo");
  35. var matrix=$.getCssMatrix(ele);
  36. var expected = { a: 1, b: 0, c: 0, d: 1, e: 1, f: 1 };
  37. matrix.should.eql(expected);
  38. var matrix=$.getCssMatrix();
  39. var expected = { a: 0, b: 0, c: 0, d: 0, e: 0, f: 0};
  40. matrix.should.eql(expected);
  41. });
  42. });