Refactored vendor methods to it's own module

This commit is contained in:
Gregers Gram Rygg
2012-06-25 13:44:35 +02:00
parent b394b93723
commit 58a83b0d17
7 changed files with 257 additions and 174 deletions
-81
View File
@@ -1110,87 +1110,6 @@
t.eq(OpenLayers.Util.getFormattedLonLat(-181, "lon"), "179°00'00\"E", "crossing dateline from the west results in correct east coordinate");
t.eq(OpenLayers.Util.getFormattedLonLat(181, "lon"), "179°00'00\"W", "crossing dateline from the east results in correct west coordinate");
}
/**
* Test vendor prefixing
*/
function test_vendor_prefixes(t) {
t.plan(17);
var o = {}, err;
var orgCreateElement = document.createElement;
// wrap document.createElement to control property values
document.createElement = function(type) {
var el = orgCreateElement.call(document, type);
// Since o is an object we can change prop for each test
if(o.prop) {
el.style[o.prop] = o.val;
}
return el;
};
function curryTestPrefix(type) {
return function(standardProp, expectedPrefix, msg) {
var prefixedProp, err, method = "getVendorPrefixed" + type;
try {
OpenLayers.Util[method]("clear cache");
prefixedProp = OpenLayers.Util[method](standardProp);
} catch(e) {
err = e;
}
if(!err) {
t.eq(prefixedProp, expectedPrefix, msg);
} else {
t.fail("Error when testing " + type.toUpperCase() + " vendor prefix: " + err.message);
}
};
}
var testDomPrefix = curryTestPrefix("Obj"),
testCssPrefix = curryTestPrefix("Css");
o.prop = "test";
o.val = "";
testDomPrefix("test", "test", "DOM vendor prefix - single word");
testCssPrefix("test", "test", "CSS vendor prefix - single word");
o.prop = "testMultiWord";
testDomPrefix("testMultiWord", "testMultiWord", "DOM vendor prefix - multiple words");
testCssPrefix("test-multi-word", "test-multi-word", "CSS vendor prefix - multiple words");
o.prop = "WebkitMultiWord";
testDomPrefix("multiWord", "WebkitMultiWord", "DOM vendor prefix - multiple words for WebKit");
testCssPrefix("multi-word", "-webkit-multi-word", "CSS vendor prefix - multiple words for WebKit");
o.prop = "MozMultiWord";
testDomPrefix("multiWord", "MozMultiWord", "DOM vendor prefix - multiple words for Mozilla");
testCssPrefix("multi-word", "-moz-multi-word", "CSS vendor prefix - multiple words for Mozilla");
o.prop = "OMultiWord";
testDomPrefix("multiWord", "OMultiWord", "DOM vendor prefix - multiple words for Opera");
testCssPrefix("multi-word", "-o-multi-word", "CSS vendor prefix - multiple words for Opera");
o.prop = "msMultiWord";
testDomPrefix("multiWord", "msMultiWord", "DOM vendor prefix - multiple words for Internet Explorer");
testCssPrefix("multi-word", "-ms-multi-word", "CSS vendor prefix - multiple words for Internet Explorer");
// test vendor prefix on object
OpenLayers.Util.getVendorPrefixedObj({}, "clear cache");
t.eq( OpenLayers.Util.getVendorPrefixedObj( { "test": true }, "test" ), "test", "Standard object property");
OpenLayers.Util.getVendorPrefixedObj({}, "clear cache");
t.eq( OpenLayers.Util.getVendorPrefixedObj( { "oTest": true }, "test" ), "oTest", "Standard object property");
OpenLayers.Util.getVendorPrefixedObj({}, "clear cache");
t.eq( OpenLayers.Util.getVendorPrefixedObj( { "msTest": true }, "test" ), "msTest", "Standard object property");
OpenLayers.Util.getVendorPrefixedObj({}, "clear cache");
t.eq( OpenLayers.Util.getVendorPrefixedObj( { "mozTest": true }, "test" ), "mozTest", "Standard object property");
OpenLayers.Util.getVendorPrefixedObj({}, "clear cache");
t.eq( OpenLayers.Util.getVendorPrefixedObj( { "webkitTest": true }, "test" ), "webkitTest", "Standard object property");
// unwrap document.createElement
document.createElement = orgCreateElement;
}
/**
* To test that we can safely call OpenLayers.Util.extend with an Event