CSS3_workarounds_spec.js 1.41 KB
Newer Older
1 2 3
describe("CSS3 workarounds", function() {
	describe("pointer-events", function() {
		beforeEach(function() {
4
			var html = "<a href='#' class='is-disabled'>What wondrous life in this I lead</a>";
5 6 7 8 9 10 11 12 13 14 15 16
			setFixtures(html);
		});

		it("should not prevent default when pointerEvents is supported", function() {
			// In case this test suite is being run in a browser where
			// 'pointerEvents' is not supported, mock out document.body.style
			// so that it includes 'pointerEvents'
			var mockBodyStyle = document.body.style;
			if (!("pointerEvents" in mockBodyStyle)) {
				mockBodyStyle["pointerEvents"] = "";
			};

17 18 19 20
			pointerEventsNone(".is-disabled", mockBodyStyle);
			spyOnEvent(".is-disabled", "click");
			$(".is-disabled").click();
			expect("click").not.toHaveBeenPreventedOn(".is-disabled");
21 22 23 24 25 26 27 28 29 30 31 32 33
		});

		it("should prevent default when pointerEvents is not Supported", function() {
			// mock document.body.style so it does not include 'pointerEvents'
			var mockBodyStyle = {},
			    bodyStyleKeys = Object.keys(document.body.style);
			for (var index = 0; index < bodyStyleKeys.length; index++) {
				var key = bodyStyleKeys[index];
				if (key !== "pointerEvents") {
					mockBodyStyle[key] = document.body.style[key];
				};
			};

34 35 36 37
			pointerEventsNone(".is-disabled", mockBodyStyle);
			spyOnEvent(".is-disabled", "click");
			$(".is-disabled").click();
			expect("click").toHaveBeenPreventedOn(".is-disabled");
38 39 40
		});
	});
});