Best Python code snippet using yandex-tank
image_filters.js
Source:image_filters.js
1(function() {2 function getAbsolutePath(path) {3 var isAbsolute = /^https?:/.test(path);4 if (isAbsolute) return path;5 var imgEl = _createImageElement();6 imgEl.src = path;7 var src = imgEl.src;8 imgEl = null;9 return src;10 }11 var IMG_SRC = fabric.isLikelyNode ? (__dirname + '/../fixtures/test_image.gif') : getAbsolutePath('../fixtures/test_image.gif'),12 IMG_WIDTH = 276,13 IMG_HEIGHT = 110;14 // var REFERENCE_IMG_OBJECT = {15 // 'type': 'image',16 // 'originX': 'left',17 // 'originY': 'top',18 // 'left': 0,19 // 'top': 0,20 // 'width': IMG_WIDTH, // node-canvas doesn't seem to allow setting width/height on image objects21 // 'height': IMG_HEIGHT, // or does it now?22 // 'fill': 'rgb(0,0,0)',23 // 'stroke': null,24 // 'strokeWidth': 1,25 // 'strokeDashArray': null,26 // 'strokeLineCap': 'butt',27 // 'strokeLineJoin': 'miter',28 // 'strokeMiterLimit': 10,29 // 'scaleX': 1,30 // 'scaleY': 1,31 // 'angle': 0,32 // 'flipX': false,33 // 'flipY': false,34 // 'opacity': 1,35 // 'src': fabric.isLikelyNode ? undefined : IMG_SRC,36 // 'selectable': true,37 // 'hasControls': true,38 // 'hasBorders': true,39 // 'hasRotatingPoint': true,40 // 'transparentCorners': true,41 // 'perPixelTargetFind': false,42 // 'shadow': null,43 // 'visible': true,44 // 'clipTo': null,45 // 'filters': []46 // };47 function _createImageElement() {48 return fabric.isLikelyNode ? new (require('canvas').Image)() : fabric.document.createElement('img');49 }50 function _createImageObject(width, height, callback) {51 var elImage = _createImageElement();52 elImage.width = width;53 elImage.height = height;54 setSrc(elImage, IMG_SRC, function() {55 callback(new fabric.Image(elImage));56 });57 }58 function createImageObject(callback) {59 return _createImageObject(IMG_WIDTH, IMG_HEIGHT, callback);60 }61 function setSrc(img, src, callback) {62 if (fabric.isLikelyNode) {63 require('fs').readFile(src, function(err, imgData) {64 if (err) throw err;65 img.src = imgData;66 callback && callback();67 });68 }69 else {70 img.src = src;71 callback && callback();72 }73 }74 QUnit.module('fabric.Image.filters.Brightness');75 test('constructor', function() {76 ok(fabric.Image.filters.Brightness);77 var filter = new fabric.Image.filters.Brightness();78 ok(filter instanceof fabric.Image.filters.Brightness, 'should inherit from fabric.Image.filters.Brightness');79 });80 test('properties', function() {81 var filter = new fabric.Image.filters.Brightness();82 equal(filter.type, 'Brightness');83 equal(filter.brightness, 0);84 var filter2 = new fabric.Image.filters.Brightness({brightness: 30});85 equal(filter2.brightness, 30);86 });87 test('applyTo', function() {88 var filter = new fabric.Image.filters.Brightness();89 ok(typeof filter.applyTo == 'function');90 });91 test('toObject', function() {92 var filter = new fabric.Image.filters.Brightness();93 ok(typeof filter.toObject == 'function');94 var object = filter.toObject();95 equal(JSON.stringify(object), '{"type":"Brightness","brightness":0}');96 filter.brightness = 100;97 object = filter.toObject();98 equal(JSON.stringify(object), '{"type":"Brightness","brightness":100}');99 });100 test('toJSON', function() {101 var filter = new fabric.Image.filters.Brightness();102 ok(typeof filter.toJSON == 'function');103 var json = filter.toJSON();104 equal(JSON.stringify(json), '{"type":"Brightness","brightness":0}');105 filter.brightness = 100;106 json = filter.toJSON();107 equal(JSON.stringify(json), '{"type":"Brightness","brightness":100}');108 });109 test('fromObject', function() {110 var filter = new fabric.Image.filters.Brightness();111 var object = filter.toObject();112 deepEqual(fabric.Image.filters.Brightness.fromObject(object), filter);113 });114 QUnit.module('fabric.Image.filters.Convolute');115 test('constructor', function() {116 ok(fabric.Image.filters.Convolute);117 var filter = new fabric.Image.filters.Convolute();118 ok(filter instanceof fabric.Image.filters.Convolute, 'should inherit from fabric.Image.filters.Convolute');119 });120 test('properties', function() {121 var filter = new fabric.Image.filters.Convolute();122 equal(filter.type, 'Convolute');123 equal(filter.opaque, undefined);124 deepEqual(filter.matrix, [0,0,0,0,1,0,0,0,0]);125 var filter2 = new fabric.Image.filters.Convolute({opaque: 0.5, matrix: [1,-1,1,0,1,0,0,0,0]});126 equal(filter2.opaque, 0.5);127 deepEqual(filter2.matrix, [1,-1,1,0,1,0,0,0,0]);128 });129 test('applyTo', function() {130 var filter = new fabric.Image.filters.Convolute();131 ok(typeof filter.applyTo == 'function');132 });133 test('toObject', function() {134 var filter = new fabric.Image.filters.Convolute({opaque: 1});135 ok(typeof filter.toObject == 'function');136 var object = filter.toObject();137 equal(JSON.stringify(object), '{"type":"Convolute","opaque":1,"matrix":[0,0,0,0,1,0,0,0,0]}');138 });139 test('toJSON', function() {140 var filter = new fabric.Image.filters.Convolute({opaque: 1});141 ok(typeof filter.toJSON == 'function');142 var json = filter.toJSON();143 equal(JSON.stringify(json), '{"type":"Convolute","opaque":1,"matrix":[0,0,0,0,1,0,0,0,0]}');144 });145 test('fromObject', function() {146 var filter = new fabric.Image.filters.Convolute();147 var object = filter.toObject();148 deepEqual(fabric.Image.filters.Convolute.fromObject(object), filter);149 });150 QUnit.module('fabric.Image.filters.GradientTransparency');151 test('constructor', function() {152 ok(fabric.Image.filters.GradientTransparency);153 var filter = new fabric.Image.filters.GradientTransparency();154 ok(filter instanceof fabric.Image.filters.GradientTransparency, 'should inherit from fabric.Image.filters.GradientTransparency');155 });156 test('properties', function() {157 var filter = new fabric.Image.filters.GradientTransparency();158 equal(filter.type, 'GradientTransparency');159 equal(filter.threshold, 100);160 var filter2 = new fabric.Image.filters.GradientTransparency({threshold: 50});161 equal(filter2.threshold, 50);162 });163 test('applyTo', function() {164 var filter = new fabric.Image.filters.GradientTransparency();165 ok(typeof filter.applyTo == 'function');166 });167 test('toObject', function() {168 var filter = new fabric.Image.filters.GradientTransparency();169 ok(typeof filter.toObject == 'function');170 var object = filter.toObject();171 equal(JSON.stringify(object), '{"type":"GradientTransparency","threshold":100}');172 });173 test('toJSON', function() {174 var filter = new fabric.Image.filters.GradientTransparency();175 ok(typeof filter.toJSON == 'function');176 var json = filter.toJSON();177 equal(JSON.stringify(json), '{"type":"GradientTransparency","threshold":100}');178 });179 test('fromObject', function() {180 var filter = new fabric.Image.filters.GradientTransparency();181 var object = filter.toObject();182 deepEqual(fabric.Image.filters.GradientTransparency.fromObject(object), filter);183 });184 QUnit.module('fabric.Image.filters.Grayscale');185 test('constructor', function() {186 ok(fabric.Image.filters.Grayscale);187 var filter = new fabric.Image.filters.Grayscale();188 ok(filter instanceof fabric.Image.filters.Grayscale, 'should inherit from fabric.Image.filters.Grayscale');189 });190 test('properties', function() {191 var filter = new fabric.Image.filters.Grayscale();192 equal(filter.type, 'Grayscale');193 });194 test('applyTo', function() {195 var filter = new fabric.Image.filters.Grayscale();196 ok(typeof filter.applyTo == 'function');197 });198 test('toObject', function() {199 var filter = new fabric.Image.filters.Grayscale();200 ok(typeof filter.toObject == 'function');201 var object = filter.toObject();202 equal(JSON.stringify(object), '{"type":"Grayscale"}');203 });204 test('toJSON', function() {205 var filter = new fabric.Image.filters.Grayscale();206 ok(typeof filter.toJSON == 'function');207 var json = filter.toJSON();208 equal(JSON.stringify(json), '{"type":"Grayscale"}');209 });210 test('fromObject', function() {211 var filter = new fabric.Image.filters.Grayscale();212 var object = filter.toObject();213 deepEqual(fabric.Image.filters.Grayscale.fromObject(object), filter);214 });215 QUnit.module('fabric.Image.filters.Invert');216 test('constructor', function() {217 ok(fabric.Image.filters.Invert);218 var filter = new fabric.Image.filters.Invert();219 ok(filter instanceof fabric.Image.filters.Invert, 'should inherit from fabric.Image.filters.Invert');220 });221 test('properties', function() {222 var filter = new fabric.Image.filters.Invert();223 equal(filter.type, 'Invert');224 });225 test('applyTo', function() {226 var filter = new fabric.Image.filters.Invert();227 ok(typeof filter.applyTo == 'function');228 });229 test('toObject', function() {230 var filter = new fabric.Image.filters.Invert();231 ok(typeof filter.toObject == 'function');232 var object = filter.toObject();233 equal(JSON.stringify(object), '{"type":"Invert"}');234 });235 test('toJSON', function() {236 var filter = new fabric.Image.filters.Invert();237 ok(typeof filter.toJSON == 'function');238 var json = filter.toJSON();239 equal(JSON.stringify(json), '{"type":"Invert"}');240 });241 test('fromObject', function() {242 var filter = new fabric.Image.filters.Invert();243 var object = filter.toObject();244 deepEqual(fabric.Image.filters.Invert.fromObject(object), filter);245 });246 QUnit.module('fabric.Image.filters.Noise');247 test('constructor', function() {248 ok(fabric.Image.filters.Noise);249 var filter = new fabric.Image.filters.Noise();250 ok(filter instanceof fabric.Image.filters.Noise, 'should inherit from fabric.Image.filters.Noise');251 });252 test('properties', function() {253 var filter = new fabric.Image.filters.Noise();254 equal(filter.type, 'Noise');255 equal(filter.noise, 0);256 var filter2 = new fabric.Image.filters.Noise({noise: 200});257 equal(filter2.noise, 200);258 });259 test('applyTo', function() {260 var filter = new fabric.Image.filters.Noise();261 ok(typeof filter.applyTo == 'function');262 });263 test('toObject', function() {264 var filter = new fabric.Image.filters.Noise();265 ok(typeof filter.toObject == 'function');266 var object = filter.toObject();267 equal(JSON.stringify(object), '{"type":"Noise","noise":0}');268 filter.noise = 100;269 object = filter.toObject();270 equal(JSON.stringify(object), '{"type":"Noise","noise":100}');271 });272 test('toJSON', function() {273 var filter = new fabric.Image.filters.Noise();274 ok(typeof filter.toJSON == 'function');275 var json = filter.toJSON();276 equal(JSON.stringify(json), '{"type":"Noise","noise":0}');277 filter.noise = 100;278 json = filter.toJSON();279 equal(JSON.stringify(json), '{"type":"Noise","noise":100}');280 });281 test('fromObject', function() {282 var filter = new fabric.Image.filters.Noise();283 var object = filter.toObject();284 deepEqual(fabric.Image.filters.Noise.fromObject(object), filter);285 });286 QUnit.module('fabric.Image.filters.Pixelate');287 test('constructor', function() {288 ok(fabric.Image.filters.Pixelate);289 var filter = new fabric.Image.filters.Pixelate();290 ok(filter instanceof fabric.Image.filters.Pixelate, 'should inherit from fabric.Image.filters.Pixelate');291 });292 test('properties', function() {293 var filter = new fabric.Image.filters.Pixelate();294 equal(filter.type, 'Pixelate');295 equal(filter.blocksize, 4);296 var filter2 = new fabric.Image.filters.Pixelate({blocksize: 8});297 equal(filter2.blocksize, 8);298 });299 test('applyTo', function() {300 var filter = new fabric.Image.filters.Pixelate();301 ok(typeof filter.applyTo == 'function');302 });303 test('toObject', function() {304 var filter = new fabric.Image.filters.Pixelate();305 ok(typeof filter.toObject == 'function');306 var object = filter.toObject();307 equal(JSON.stringify(object), '{"type":"Pixelate","blocksize":4}');308 });309 test('toJSON', function() {310 var filter = new fabric.Image.filters.Pixelate();311 ok(typeof filter.toJSON == 'function');312 var json = filter.toJSON();313 equal(JSON.stringify(json), '{"type":"Pixelate","blocksize":4}');314 });315 test('fromObject', function() {316 var filter = new fabric.Image.filters.Pixelate();317 var object = filter.toObject();318 deepEqual(fabric.Image.filters.Pixelate.fromObject(object), filter);319 });320 QUnit.module('fabric.Image.filters.RemoveWhite');321 test('constructor', function() {322 ok(fabric.Image.filters.RemoveWhite);323 var filter = new fabric.Image.filters.RemoveWhite();324 ok(filter instanceof fabric.Image.filters.RemoveWhite, 'should inherit from fabric.Image.filters.RemoveWhite');325 });326 test('properties', function() {327 var filter = new fabric.Image.filters.RemoveWhite();328 equal(filter.type, 'RemoveWhite');329 equal(filter.threshold, 30);330 equal(filter.distance, 20);331 var filter2 = new fabric.Image.filters.RemoveWhite({threshold: 10, distance: 60});332 equal(filter2.threshold, 10);333 equal(filter2.distance, 60);334 });335 test('applyTo', function() {336 var filter = new fabric.Image.filters.RemoveWhite();337 ok(typeof filter.applyTo == 'function');338 });339 test('toObject', function() {340 var filter = new fabric.Image.filters.RemoveWhite();341 ok(typeof filter.toObject == 'function');342 var object = filter.toObject();343 equal(JSON.stringify(object), '{"type":"RemoveWhite","threshold":30,"distance":20}');344 });345 test('toJSON', function() {346 var filter = new fabric.Image.filters.RemoveWhite();347 ok(typeof filter.toJSON == 'function');348 var json = filter.toJSON();349 equal(JSON.stringify(json), '{"type":"RemoveWhite","threshold":30,"distance":20}');350 });351 test('fromObject', function() {352 var filter = new fabric.Image.filters.RemoveWhite();353 var object = filter.toObject();354 deepEqual(fabric.Image.filters.RemoveWhite.fromObject(object), filter);355 });356 QUnit.module('fabric.Image.filters.Sepia2');357 test('constructor', function() {358 ok(fabric.Image.filters.Sepia2);359 var filter = new fabric.Image.filters.Sepia2();360 ok(filter instanceof fabric.Image.filters.Sepia2, 'should inherit from fabric.Image.filters.Sepia2');361 });362 test('properties', function() {363 var filter = new fabric.Image.filters.Sepia2();364 equal(filter.type, 'Sepia2');365 });366 test('applyTo', function() {367 var filter = new fabric.Image.filters.Sepia2();368 ok(typeof filter.applyTo == 'function');369 });370 test('toObject', function() {371 var filter = new fabric.Image.filters.Sepia2();372 ok(typeof filter.toObject == 'function');373 var object = filter.toObject();374 equal(JSON.stringify(object), '{"type":"Sepia2"}');375 });376 test('toJSON', function() {377 var filter = new fabric.Image.filters.Sepia2();378 ok(typeof filter.toJSON == 'function');379 var json = filter.toJSON();380 equal(JSON.stringify(json), '{"type":"Sepia2"}');381 });382 test('fromObject', function() {383 var filter = new fabric.Image.filters.Sepia2();384 var object = filter.toObject();385 deepEqual(fabric.Image.filters.Sepia2.fromObject(object), filter);386 });387 QUnit.module('fabric.Image.filters.Sepia');388 test('constructor', function() {389 ok(fabric.Image.filters.Sepia);390 var filter = new fabric.Image.filters.Sepia();391 ok(filter instanceof fabric.Image.filters.Sepia, 'should inherit from fabric.Image.filters.Sepia');392 });393 test('properties', function() {394 var filter = new fabric.Image.filters.Sepia();395 equal(filter.type, 'Sepia');396 });397 test('applyTo', function() {398 var filter = new fabric.Image.filters.Sepia();399 ok(typeof filter.applyTo == 'function');400 });401 test('toObject', function() {402 var filter = new fabric.Image.filters.Sepia();403 ok(typeof filter.toObject == 'function');404 var object = filter.toObject();405 equal(JSON.stringify(object), '{"type":"Sepia"}');406 });407 test('toJSON', function() {408 var filter = new fabric.Image.filters.Sepia();409 ok(typeof filter.toJSON == 'function');410 var json = filter.toJSON();411 equal(JSON.stringify(json), '{"type":"Sepia"}');412 });413 test('fromObject', function() {414 var filter = new fabric.Image.filters.Sepia();415 var object = filter.toObject();416 deepEqual(fabric.Image.filters.Sepia.fromObject(object), filter);417 });418 QUnit.module('fabric.Image.filters.Tint');419 test('constructor', function() {420 ok(fabric.Image.filters.Tint);421 var filter = new fabric.Image.filters.Tint();422 ok(filter instanceof fabric.Image.filters.Tint, 'should inherit from fabric.Image.filters.Tint');423 });424 test('properties', function() {425 var filter = new fabric.Image.filters.Tint();426 equal(filter.type, 'Tint');427 equal(filter.color, '#000000');428 equal(filter.opacity, 1);429 var filter2 = new fabric.Image.filters.Tint({color: 'rgba(0,0,255,0.5)', opacity: 0.2});430 equal(filter2.color, 'rgba(0,0,255,0.5)');431 equal(filter2.opacity, 0.2);432 var filter3 = new fabric.Image.filters.Tint({color: 'rgba(0,0,255,0.5)'});433 equal(filter3.color, 'rgba(0,0,255,0.5)');434 equal(filter3.opacity, 0.5);435 });436 test('applyTo', function() {437 var filter = new fabric.Image.filters.Tint();438 ok(typeof filter.applyTo == 'function');439 });440 test('toObject', function() {441 var filter = new fabric.Image.filters.Tint();442 ok(typeof filter.toObject == 'function');443 var object = filter.toObject();444 equal(JSON.stringify(object), '{"type":"Tint","color":"#000000","opacity":1}');445 filter.color = '#FF00FF';446 filter.opacity = 0.2;447 equal(JSON.stringify(filter.toObject()), '{"type":"Tint","color":"#FF00FF","opacity":0.2}');448 });449 test('toJSON', function() {450 var filter = new fabric.Image.filters.Tint();451 ok(typeof filter.toJSON == 'function');452 var json = filter.toJSON();453 equal(JSON.stringify(json), '{"type":"Tint","color":"#000000","opacity":1}');454 filter.color = '#FF00FF';455 filter.opacity = 0.2;456 equal(JSON.stringify(filter.toJSON()), '{"type":"Tint","color":"#FF00FF","opacity":0.2}');457 });458 test('fromObject', function() {459 var filter = new fabric.Image.filters.Tint();460 var object = filter.toObject();461 deepEqual(fabric.Image.filters.Tint.fromObject(object), filter);462 filter.color = '#FF0000';463 filter.opacity = 0.8;464 deepEqual(fabric.Image.filters.Tint.fromObject(filter.toObject()), filter);465 });466 QUnit.module('fabric.Image.filters.Mask');467 test('constructor', function() {468 ok(fabric.Image.filters.Mask);469 var filter = new fabric.Image.filters.Mask();470 ok(filter instanceof fabric.Image.filters.Mask, 'should inherit from fabric.Image.filters.Mask');471 });472 asyncTest('properties', function() {473 var filter = new fabric.Image.filters.Mask();474 equal(filter.type, 'Mask');475 equal(filter.mask, undefined);476 equal(filter.channel, 0);477 createImageObject(function(image) {478 var filter2 = new fabric.Image.filters.Mask({mask: image, channel: 2});479 equal(filter2.mask, image);480 equal(filter2.channel, 2);481 start();482 });483 });484 test('applyTo', function() {485 var filter = new fabric.Image.filters.Mask();486 ok(typeof filter.applyTo == 'function');487 });488 asyncTest('toObject', function() {489 createImageObject(function(image) {490 var filter = new fabric.Image.filters.Mask({mask: image});491 ok(typeof filter.toObject == 'function');492 var object = filter.toObject(),493 maskObj = object.mask;494 // workaround for node-canvas sometimes producing images with width/height and sometimes not495 if (maskObj.width === 0) {496 maskObj.width = IMG_WIDTH;497 }498 if (maskObj.height === 0) {499 maskObj.height = IMG_HEIGHT;500 }501 equal(JSON.stringify(object), '{"type":"Mask","mask":'+JSON.stringify(maskObj)+',"channel":0}');502 start();503 });504 });505 asyncTest('toJSON', function() {506 createImageObject(function(image) {507 var filter = new fabric.Image.filters.Mask({mask: image});508 ok(typeof filter.toJSON == 'function');509 var json = filter.toJSON(),510 maskObj = json.mask;511 // workaround for node-canvas sometimes producing images with width/height and sometimes not512 if (maskObj.width === 0) {513 maskObj.width = IMG_WIDTH;514 }515 if (maskObj.height === 0) {516 maskObj.height = IMG_HEIGHT;517 }518 equal(JSON.stringify(json), '{"type":"Mask","mask":'+JSON.stringify(maskObj)+',"channel":0}');519 start();520 });521 });522 QUnit.module('fabric.Image.filters.Resize');523 test('constructor', function() {524 ok(fabric.Image.filters.Resize);525 var filter = new fabric.Image.filters.Resize();526 ok(filter instanceof fabric.Image.filters.Resize, 'should inherit from fabric.Image.filters.Resize');527 });528 test('properties', function() {529 var filter = new fabric.Image.filters.Resize();530 equal(filter.type, 'Resize');531 equal(filter.resizeType, 'hermite');532 equal(filter.lanczosLobes, 3);533 equal(filter.scaleX, 0);534 equal(filter.scaleY, 0);535 var filter2 = new fabric.Image.filters.Resize({resizeType: 'bilinear', scaleX: 0.3, scaleY: 0.3});536 equal(filter2.resizeType, 'bilinear');537 equal(filter2.scaleX, 0.3);538 equal(filter2.scaleY, 0.3);539 });540 test('applyTo', function() {541 var filter = new fabric.Image.filters.Resize();542 ok(typeof filter.applyTo == 'function');543 });544 test('toObject', function() {545 var filter = new fabric.Image.filters.Resize();546 ok(typeof filter.toObject == 'function');547 var object = filter.toObject();548 equal(JSON.stringify(object), '{"type":"Resize","scaleX":0,"scaleY":0,"resizeType":"hermite","lanczosLobes":3}');549 filter.resizeType = 'bilinear';550 object = filter.toObject();551 equal(JSON.stringify(object), '{"type":"Resize","scaleX":0,"scaleY":0,"resizeType":"bilinear","lanczosLobes":3}');552 });553 test('fromObject', function() {554 var filter = new fabric.Image.filters.Resize();555 var object = filter.toObject();556 var fromObject = fabric.Image.filters.Resize.fromObject(object);557 deepEqual(fromObject, filter);558 ok(fromObject instanceof fabric.Image.filters.Resize, 'should inherit from fabric.Image.filters.Resize');559 filter.resizeType = 'bilinear';560 filter.scaleX = 0.8;561 filter.scaleY = 0.8;562 deepEqual(fabric.Image.filters.Resize.fromObject(filter.toObject()), filter);563 });564 // asyncTest('fromObject', function() {565 // createImageObject(function(image) {566 // var filter = new fabric.Image.filters.Mask({mask: image});567 // var object = filter.toObject();568 // fabric.Image.filters.Mask.fromObject(object, function(filterObj) {569 // deepEqual(filterObj, filter);570 // start();571 // });572 // });573 // });...
filter-property-parsing.js
Source:filter-property-parsing.js
1description("Test the parsing of the -webkit-filter property.");2function jsWrapperClass(node)3{4 if (!node)5 return "[null]";6 var string = Object.prototype.toString.apply(node);7 return string.substr(8, string.length - 9);8}9function shouldBeType(expression, className, prototypeName, constructorName)10{11 if (!prototypeName)12 prototypeName = className + "Prototype";13 if (!constructorName)14 constructorName = className + "Constructor";15 shouldBe("jsWrapperClass(" + expression + ")", "'" + className + "'");16 shouldBe("jsWrapperClass(" + expression + ".__proto__)", "'" + prototypeName + "'");17 shouldBe("jsWrapperClass(" + expression + ".constructor)", "'" + constructorName + "'");18}19// These have to be global for the test helpers to see them.20var stylesheet, cssRule, declaration, filterRule, subRule;21var styleElement = document.createElement("style");22document.head.appendChild(styleElement);23stylesheet = styleElement.sheet;24function testFilterRule(description, rule, expectedLength, expectedValue, expectedTypes, expectedTexts)25{26 debug("");27 debug(description + " : " + rule);28 stylesheet.insertRule("body { -webkit-filter: " + rule + "; }", 0);29 cssRule = stylesheet.cssRules.item(0);30 31 shouldBe("cssRule.type", "1");32 declaration = cssRule.style;33 shouldBe("declaration.length", "1");34 shouldBe("declaration.getPropertyValue('-webkit-filter')", "'" + expectedValue + "'");35 filterRule = declaration.getPropertyCSSValue('-webkit-filter');36 shouldBeType("filterRule", "CSSValueList");37 38 shouldBe("filterRule.length", "" + expectedLength); // shouldBe expects string arguments39 40 if (filterRule) {41 for (var i = 0; i < expectedLength; i++) {42 subRule = filterRule[i];43 shouldBe("subRule.operationType", expectedTypes[i]);44 shouldBe("subRule.cssText", "'" + expectedTexts[i] + "'");45 }46 }47}48testFilterRule("Basic reference",49 "url('#a')", 1, "url(\\'#a\\')",50 ["WebKitCSSFilterValue.CSS_FILTER_REFERENCE"],51 ["url(\\'#a\\')"]);52testFilterRule("Bare unquoted reference converting to quoted form",53 "url(#a)", 1, "url(\\'#a\\')",54 ["WebKitCSSFilterValue.CSS_FILTER_REFERENCE"],55 ["url(\\'#a\\')"]);56testFilterRule("Multiple references",57 "url('#a') url('#b')", 2, "url(\\'#a\\') url(\\'#b\\')",58 ["WebKitCSSFilterValue.CSS_FILTER_REFERENCE", "WebKitCSSFilterValue.CSS_FILTER_REFERENCE"],59 ["url(\\'#a\\')", "url(\\'#b\\')"]);60testFilterRule("Reference as 2nd value",61 "grayscale(1) url('#a')", 2, "grayscale(1) url(\\'#a\\')",62 ["WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE", "WebKitCSSFilterValue.CSS_FILTER_REFERENCE"],63 ["grayscale(1)", "url(\\'#a\\')"]);64testFilterRule("Integer value",65 "grayscale(1)", 1, "grayscale(1)",66 ["WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE"],67 ["grayscale(1)"]);68testFilterRule("Percentage value",69 "grayscale(50%)", 1, "grayscale(50%)",70 ["WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE"],71 ["grayscale(50%)"]);72testFilterRule("Float value converts to integer",73 "grayscale(1.0)", 1, "grayscale(1)",74 ["WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE"],75 ["grayscale(1)"]);76testFilterRule("Zero value",77 "grayscale(0)", 1, "grayscale(0)",78 ["WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE"],79 ["grayscale(0)"]);80testFilterRule("No values",81 "grayscale()", 1, "grayscale()",82 ["WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE"],83 ["grayscale()"]);84testFilterRule("Multiple values",85 "grayscale(0.5) grayscale(0.25)", 2, "grayscale(0.5) grayscale(0.25)",86 ["WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE", "WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE"],87 ["grayscale(0.5)", "grayscale(0.25)"]);88testFilterRule("Integer value",89 "sepia(1)", 1, "sepia(1)",90 ["WebKitCSSFilterValue.CSS_FILTER_SEPIA"],91 ["sepia(1)"]);92testFilterRule("Percentage value",93 "sepia(50%)", 1, "sepia(50%)",94 ["WebKitCSSFilterValue.CSS_FILTER_SEPIA"],95 ["sepia(50%)"]);96testFilterRule("Float value converts to integer",97 "sepia(1.0)", 1, "sepia(1)",98 ["WebKitCSSFilterValue.CSS_FILTER_SEPIA"],99 ["sepia(1)"]);100testFilterRule("Zero value",101 "sepia(0)", 1, "sepia(0)",102 ["WebKitCSSFilterValue.CSS_FILTER_SEPIA"],103 ["sepia(0)"]);104testFilterRule("No values",105 "sepia()", 1, "sepia()",106 ["WebKitCSSFilterValue.CSS_FILTER_SEPIA"],107 ["sepia()"]);108testFilterRule("Multiple values",109 "sepia(0.5) sepia(0.25)", 2, "sepia(0.5) sepia(0.25)",110 ["WebKitCSSFilterValue.CSS_FILTER_SEPIA", "WebKitCSSFilterValue.CSS_FILTER_SEPIA"],111 ["sepia(0.5)", "sepia(0.25)"]);112testFilterRule("Rule combinations",113 "sepia(0.5) grayscale(0.25)", 2, "sepia(0.5) grayscale(0.25)",114 ["WebKitCSSFilterValue.CSS_FILTER_SEPIA", "WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE"],115 ["sepia(0.5)", "grayscale(0.25)"]);116testFilterRule("Integer value",117 "saturate(1)", 1, "saturate(1)",118 ["WebKitCSSFilterValue.CSS_FILTER_SATURATE"],119 ["saturate(1)"]);120testFilterRule("Percentage value",121 "saturate(50%)", 1, "saturate(50%)",122 ["WebKitCSSFilterValue.CSS_FILTER_SATURATE"],123 ["saturate(50%)"]);124testFilterRule("Percentage value > 1",125 "saturate(250%)", 1, "saturate(250%)",126 ["WebKitCSSFilterValue.CSS_FILTER_SATURATE"],127 ["saturate(250%)"]);128testFilterRule("Float value converts to integer",129 "saturate(1.0)", 1, "saturate(1)",130 ["WebKitCSSFilterValue.CSS_FILTER_SATURATE"],131 ["saturate(1)"]);132testFilterRule("Input value > 1",133 "saturate(5.5)", 1, "saturate(5.5)",134 ["WebKitCSSFilterValue.CSS_FILTER_SATURATE"],135 ["saturate(5.5)"]);136testFilterRule("Zero value",137 "saturate(0)", 1, "saturate(0)",138 ["WebKitCSSFilterValue.CSS_FILTER_SATURATE"],139 ["saturate(0)"]);140testFilterRule("No values",141 "saturate()", 1, "saturate()",142 ["WebKitCSSFilterValue.CSS_FILTER_SATURATE"],143 ["saturate()"]);144testFilterRule("Multiple values",145 "saturate(0.5) saturate(0.25)", 2, "saturate(0.5) saturate(0.25)",146 ["WebKitCSSFilterValue.CSS_FILTER_SATURATE", "WebKitCSSFilterValue.CSS_FILTER_SATURATE"],147 ["saturate(0.5)", "saturate(0.25)"]);148testFilterRule("Rule combinations",149 "saturate(0.5) grayscale(0.25)", 2, "saturate(0.5) grayscale(0.25)",150 ["WebKitCSSFilterValue.CSS_FILTER_SATURATE", "WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE"],151 ["saturate(0.5)", "grayscale(0.25)"]);152testFilterRule("Degrees value as integer",153 "hue-rotate(10deg)", 1, "hue-rotate(10deg)",154 ["WebKitCSSFilterValue.CSS_FILTER_HUE_ROTATE"],155 ["hue-rotate(10deg)"]);156testFilterRule("Degrees float value converts to integer",157 "hue-rotate(10.0deg)", 1, "hue-rotate(10deg)",158 ["WebKitCSSFilterValue.CSS_FILTER_HUE_ROTATE"],159 ["hue-rotate(10deg)"]);160testFilterRule("Radians value",161 "hue-rotate(10rad)", 1, "hue-rotate(10rad)",162 ["WebKitCSSFilterValue.CSS_FILTER_HUE_ROTATE"],163 ["hue-rotate(10rad)"]);164testFilterRule("Gradians value",165 "hue-rotate(10grad)", 1, "hue-rotate(10grad)",166 ["WebKitCSSFilterValue.CSS_FILTER_HUE_ROTATE"],167 ["hue-rotate(10grad)"]);168testFilterRule("Turns value",169 "hue-rotate(0.5turn)", 1, "hue-rotate(0.5turn)",170 ["WebKitCSSFilterValue.CSS_FILTER_HUE_ROTATE"],171 ["hue-rotate(0.5turn)"]);172testFilterRule("Zero value",173 "hue-rotate(0)", 1, "hue-rotate(0deg)",174 ["WebKitCSSFilterValue.CSS_FILTER_HUE_ROTATE"],175 ["hue-rotate(0deg)"]);176testFilterRule("No values",177 "hue-rotate()", 1, "hue-rotate()",178 ["WebKitCSSFilterValue.CSS_FILTER_HUE_ROTATE"],179 ["hue-rotate()"]);180testFilterRule("Rule combinations",181 "hue-rotate(10deg) grayscale(0.25)", 2, "hue-rotate(10deg) grayscale(0.25)",182 ["WebKitCSSFilterValue.CSS_FILTER_HUE_ROTATE", "WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE"],183 ["hue-rotate(10deg)", "grayscale(0.25)"]);184testFilterRule("Integer value",185 "invert(1)", 1, "invert(1)",186 ["WebKitCSSFilterValue.CSS_FILTER_INVERT"],187 ["invert(1)"]);188testFilterRule("Percentage value",189 "invert(50%)", 1, "invert(50%)",190 ["WebKitCSSFilterValue.CSS_FILTER_INVERT"],191 ["invert(50%)"]);192testFilterRule("Float value converts to integer",193 "invert(1.0)", 1, "invert(1)",194 ["WebKitCSSFilterValue.CSS_FILTER_INVERT"],195 ["invert(1)"]);196testFilterRule("Zero value",197 "invert(0)", 1, "invert(0)",198 ["WebKitCSSFilterValue.CSS_FILTER_INVERT"],199 ["invert(0)"]);200testFilterRule("No values",201 "invert()", 1, "invert()",202 ["WebKitCSSFilterValue.CSS_FILTER_INVERT"],203 ["invert()"]);204testFilterRule("Multiple values",205 "invert(0.5) invert(0.25)", 2, "invert(0.5) invert(0.25)",206 ["WebKitCSSFilterValue.CSS_FILTER_INVERT", "WebKitCSSFilterValue.CSS_FILTER_INVERT"],207 ["invert(0.5)", "invert(0.25)"]);208testFilterRule("Rule combinations",209 "invert(0.5) grayscale(0.25)", 2, "invert(0.5) grayscale(0.25)",210 ["WebKitCSSFilterValue.CSS_FILTER_INVERT", "WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE"],211 ["invert(0.5)", "grayscale(0.25)"]);212testFilterRule("Integer value",213 "opacity(1)", 1, "opacity(1)",214 ["WebKitCSSFilterValue.CSS_FILTER_OPACITY"],215 ["opacity(1)"]);216testFilterRule("Percentage value",217 "opacity(50%)", 1, "opacity(50%)",218 ["WebKitCSSFilterValue.CSS_FILTER_OPACITY"],219 ["opacity(50%)"]);220testFilterRule("Float value converts to integer",221 "opacity(1.0)", 1, "opacity(1)",222 ["WebKitCSSFilterValue.CSS_FILTER_OPACITY"],223 ["opacity(1)"]);224testFilterRule("Zero value",225 "opacity(0)", 1, "opacity(0)",226 ["WebKitCSSFilterValue.CSS_FILTER_OPACITY"],227 ["opacity(0)"]);228testFilterRule("No values",229 "opacity()", 1, "opacity()",230 ["WebKitCSSFilterValue.CSS_FILTER_OPACITY"],231 ["opacity()"]);232testFilterRule("Multiple values",233 "opacity(0.5) opacity(0.25)", 2, "opacity(0.5) opacity(0.25)",234 ["WebKitCSSFilterValue.CSS_FILTER_OPACITY", "WebKitCSSFilterValue.CSS_FILTER_OPACITY"],235 ["opacity(0.5)", "opacity(0.25)"]);236testFilterRule("Rule combinations",237 "opacity(0.5) grayscale(0.25)", 2, "opacity(0.5) grayscale(0.25)",238 ["WebKitCSSFilterValue.CSS_FILTER_OPACITY", "WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE"],239 ["opacity(0.5)", "grayscale(0.25)"]);240testFilterRule("Integer value",241 "brightness(1)", 1, "brightness(1)",242 ["WebKitCSSFilterValue.CSS_FILTER_BRIGHTNESS"],243 ["brightness(1)"]);244testFilterRule("Percentage value",245 "brightness(50%)", 1, "brightness(50%)",246 ["WebKitCSSFilterValue.CSS_FILTER_BRIGHTNESS"],247 ["brightness(50%)"]);248testFilterRule("Float value converts to integer",249 "brightness(1.0)", 1, "brightness(1)",250 ["WebKitCSSFilterValue.CSS_FILTER_BRIGHTNESS"],251 ["brightness(1)"]);252testFilterRule("Zero value",253 "brightness(0)", 1, "brightness(0)",254 ["WebKitCSSFilterValue.CSS_FILTER_BRIGHTNESS"],255 ["brightness(0)"]);256testFilterRule("No values",257 "brightness()", 1, "brightness()",258 ["WebKitCSSFilterValue.CSS_FILTER_BRIGHTNESS"],259 ["brightness()"]);260testFilterRule("Multiple values",261 "brightness(0.5) brightness(0.25)", 2, "brightness(0.5) brightness(0.25)",262 ["WebKitCSSFilterValue.CSS_FILTER_BRIGHTNESS", "WebKitCSSFilterValue.CSS_FILTER_BRIGHTNESS"],263 ["brightness(0.5)", "brightness(0.25)"]);264testFilterRule("Rule combinations",265 "brightness(0.5) grayscale(0.25)", 2, "brightness(0.5) grayscale(0.25)",266 ["WebKitCSSFilterValue.CSS_FILTER_BRIGHTNESS", "WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE"],267 ["brightness(0.5)", "grayscale(0.25)"]);268testFilterRule("Rule combinations",269 "grayscale(0.25) brightness(0.5)", 2, "grayscale(0.25) brightness(0.5)",270 [ "WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE", "WebKitCSSFilterValue.CSS_FILTER_BRIGHTNESS"],271 ["grayscale(0.25)", "brightness(0.5)"]);272testFilterRule("Integer value",273 "contrast(1)", 1, "contrast(1)",274 ["WebKitCSSFilterValue.CSS_FILTER_CONTRAST"],275 ["contrast(1)"]);276testFilterRule("Percentage value",277 "contrast(50%)", 1, "contrast(50%)",278 ["WebKitCSSFilterValue.CSS_FILTER_CONTRAST"],279 ["contrast(50%)"]);280testFilterRule("Percentage value > 1",281 "contrast(250%)", 1, "contrast(250%)",282 ["WebKitCSSFilterValue.CSS_FILTER_CONTRAST"],283 ["contrast(250%)"]);284testFilterRule("Float value converts to integer",285 "contrast(1.0)", 1, "contrast(1)",286 ["WebKitCSSFilterValue.CSS_FILTER_CONTRAST"],287 ["contrast(1)"]);288testFilterRule("Zero value",289 "contrast(0)", 1, "contrast(0)",290 ["WebKitCSSFilterValue.CSS_FILTER_CONTRAST"],291 ["contrast(0)"]);292testFilterRule("No values",293 "contrast()", 1, "contrast()",294 ["WebKitCSSFilterValue.CSS_FILTER_CONTRAST"],295 ["contrast()"]);296testFilterRule("Value greater than one",297 "contrast(2)", 1, "contrast(2)",298 ["WebKitCSSFilterValue.CSS_FILTER_CONTRAST"],299 ["contrast(2)"]);300testFilterRule("Multiple values",301 "contrast(0.5) contrast(0.25)", 2, "contrast(0.5) contrast(0.25)",302 ["WebKitCSSFilterValue.CSS_FILTER_CONTRAST", "WebKitCSSFilterValue.CSS_FILTER_CONTRAST"],303 ["contrast(0.5)", "contrast(0.25)"]);304testFilterRule("Rule combinations",305 "contrast(0.5) grayscale(0.25)", 2, "contrast(0.5) grayscale(0.25)",306 ["WebKitCSSFilterValue.CSS_FILTER_CONTRAST", "WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE"],307 ["contrast(0.5)", "grayscale(0.25)"]);308testFilterRule("Rule combinations",309 "grayscale(0.25) contrast(0.5)", 2, "grayscale(0.25) contrast(0.5)",310 [ "WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE", "WebKitCSSFilterValue.CSS_FILTER_CONTRAST"],311 ["grayscale(0.25)", "contrast(0.5)"]);312testFilterRule("One zero to px",313 "blur(0)", 1, "blur(0px)",314 ["WebKitCSSFilterValue.CSS_FILTER_BLUR"],315 ["blur(0px)"]);316testFilterRule("One length",317 "blur(10px)", 1, "blur(10px)",318 ["WebKitCSSFilterValue.CSS_FILTER_BLUR"],319 ["blur(10px)"]);320testFilterRule("No values",321 "blur()", 1, "blur()",322 ["WebKitCSSFilterValue.CSS_FILTER_BLUR"],323 ["blur()"]);324testFilterRule("Color then three values",325 "drop-shadow(red 1px 2px 3px)", 1, "drop-shadow(red 1px 2px 3px)",326 ["WebKitCSSFilterValue.CSS_FILTER_DROP_SHADOW"],327 ["drop-shadow(red 1px 2px 3px)"]);328testFilterRule("Three values then color",329 "drop-shadow(1px 2px 3px red)", 1, "drop-shadow(red 1px 2px 3px)",330 ["WebKitCSSFilterValue.CSS_FILTER_DROP_SHADOW"],331 ["drop-shadow(red 1px 2px 3px)"]);332testFilterRule("Color then three values with zero length",333 "drop-shadow(#abc 0 0 0)", 1, "drop-shadow(rgb(170, 187, 204) 0px 0px 0px)",334 ["WebKitCSSFilterValue.CSS_FILTER_DROP_SHADOW"],335 ["drop-shadow(rgb(170, 187, 204) 0px 0px 0px)"]);336testFilterRule("Three values with zero length",337 "drop-shadow(0 0 0)", 1, "drop-shadow(0px 0px 0px)",338 ["WebKitCSSFilterValue.CSS_FILTER_DROP_SHADOW"],339 ["drop-shadow(0px 0px 0px)"]);340testFilterRule("Two values no color",341 "drop-shadow(1px 2px)", 1, "drop-shadow(1px 2px)",342 ["WebKitCSSFilterValue.CSS_FILTER_DROP_SHADOW"],343 ["drop-shadow(1px 2px)"]);344testFilterRule("Multiple operations",345 "grayscale(0.5) sepia(0.25) saturate(0.75) hue-rotate(35deg) invert(0.2) opacity(0.9) blur(5px) drop-shadow(green 1px 2px 3px)", 8,346 "grayscale(0.5) sepia(0.25) saturate(0.75) hue-rotate(35deg) invert(0.2) opacity(0.9) blur(5px) drop-shadow(green 1px 2px 3px)",347 [348 "WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE",349 "WebKitCSSFilterValue.CSS_FILTER_SEPIA",350 "WebKitCSSFilterValue.CSS_FILTER_SATURATE",351 "WebKitCSSFilterValue.CSS_FILTER_HUE_ROTATE",352 "WebKitCSSFilterValue.CSS_FILTER_INVERT",353 "WebKitCSSFilterValue.CSS_FILTER_OPACITY",354 "WebKitCSSFilterValue.CSS_FILTER_BLUR",355 "WebKitCSSFilterValue.CSS_FILTER_DROP_SHADOW"356 ],357 [358 "grayscale(0.5)",359 "sepia(0.25)",360 "saturate(0.75)",361 "hue-rotate(35deg)",362 "invert(0.2)",363 "opacity(0.9)",364 "blur(5px)",365 "drop-shadow(green 1px 2px 3px)"366 ]);...
filter-property-computed-style.js
Source:filter-property-computed-style.js
1description("Test the computed style of the -webkit-filter property.");2// These have to be global for the test helpers to see them.3var stylesheet, filterStyle, subRule;4var styleElement = document.createElement("style");5document.head.appendChild(styleElement);6stylesheet = styleElement.sheet;7function testComputedFilterRule(description, rule, expectedLength, expectedTypes, expectedTexts)8{9 debug("");10 debug(description + " : " + rule);11 stylesheet.insertRule("body { -webkit-filter: " + rule + "; }", 0);12 filterStyle = window.getComputedStyle(document.body).getPropertyCSSValue('-webkit-filter');13 shouldBe("filterStyle.length", "" + expectedLength);14 for (var i = 0; i < expectedLength; i++) {15 subRule = filterStyle[i];16 shouldBe("subRule.operationType", expectedTypes[i]);17 shouldBe("subRule.cssText", "'" + expectedTexts[i] + "'");18 }19 stylesheet.deleteRule(0);20}21testComputedFilterRule("Basic reference",22 "url('#a')", 1,23 ["WebKitCSSFilterValue.CSS_FILTER_REFERENCE"],24 ["url(\\'#a\\')"]);25testComputedFilterRule("Bare unquoted reference converting to quoted form",26 "url(#a)", 1,27 ["WebKitCSSFilterValue.CSS_FILTER_REFERENCE"],28 ["url(\\'#a\\')"]);29testComputedFilterRule("Multiple references",30 "url('#a') url('#b')", 2,31 ["WebKitCSSFilterValue.CSS_FILTER_REFERENCE", "WebKitCSSFilterValue.CSS_FILTER_REFERENCE"],32 ["url(\\'#a\\')", "url(\\'#b\\')"]);33testComputedFilterRule("Reference as 2nd value",34 "grayscale(1) url('#a')", 2,35 ["WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE", "WebKitCSSFilterValue.CSS_FILTER_REFERENCE"],36 ["grayscale(1)", "url(\\'#a\\')"]);37testComputedFilterRule("Integer value",38 "grayscale(1)", 1,39 ["WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE"],40 ["grayscale(1)"]);41testComputedFilterRule("Float value converts to integer",42 "grayscale(1.0)", 1,43 ["WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE"],44 ["grayscale(1)"]);45testComputedFilterRule("Zero value",46 "grayscale(0)", 1,47 ["WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE"],48 ["grayscale(0)"]);49testComputedFilterRule("No values",50 "grayscale()", 1,51 ["WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE"],52 ["grayscale(1)"]);53testComputedFilterRule("Multiple values",54 "grayscale(0.5) grayscale(0.25)", 2,55 ["WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE", "WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE"],56 ["grayscale(0.5)", "grayscale(0.25)"]);57testComputedFilterRule("Integer value",58 "sepia(1)", 1,59 ["WebKitCSSFilterValue.CSS_FILTER_SEPIA"],60 ["sepia(1)"]);61testComputedFilterRule("Float value converts to integer",62 "sepia(1.0)", 1,63 ["WebKitCSSFilterValue.CSS_FILTER_SEPIA"],64 ["sepia(1)"]);65testComputedFilterRule("Zero value",66 "sepia(0)", 1,67 ["WebKitCSSFilterValue.CSS_FILTER_SEPIA"],68 ["sepia(0)"]);69testComputedFilterRule("No values",70 "sepia()", 1,71 ["WebKitCSSFilterValue.CSS_FILTER_SEPIA"],72 ["sepia(1)"]);73testComputedFilterRule("Multiple values",74 "sepia(0.5) sepia(0.25)", 2,75 ["WebKitCSSFilterValue.CSS_FILTER_SEPIA", "WebKitCSSFilterValue.CSS_FILTER_SEPIA"],76 ["sepia(0.5)", "sepia(0.25)"]);77testComputedFilterRule("Rule combinations",78 "sepia(0.5) grayscale(0.25)", 2,79 ["WebKitCSSFilterValue.CSS_FILTER_SEPIA", "WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE"],80 ["sepia(0.5)", "grayscale(0.25)"]);81testComputedFilterRule("Integer value",82 "saturate(1)", 1,83 ["WebKitCSSFilterValue.CSS_FILTER_SATURATE"],84 ["saturate(1)"]);85testComputedFilterRule("Float value converts to integer",86 "saturate(1.0)", 1,87 ["WebKitCSSFilterValue.CSS_FILTER_SATURATE"],88 ["saturate(1)"]);89testComputedFilterRule("Zero value",90 "saturate(0)", 1,91 ["WebKitCSSFilterValue.CSS_FILTER_SATURATE"],92 ["saturate(0)"]);93testComputedFilterRule("No values",94 "saturate()", 1,95 ["WebKitCSSFilterValue.CSS_FILTER_SATURATE"],96 ["saturate(1)"]);97testComputedFilterRule("Multiple values",98 "saturate(0.5) saturate(0.25)", 2,99 ["WebKitCSSFilterValue.CSS_FILTER_SATURATE", "WebKitCSSFilterValue.CSS_FILTER_SATURATE"],100 ["saturate(0.5)", "saturate(0.25)"]);101testComputedFilterRule("Rule combinations",102 "saturate(0.5) grayscale(0.25)", 2,103 ["WebKitCSSFilterValue.CSS_FILTER_SATURATE", "WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE"],104 ["saturate(0.5)", "grayscale(0.25)"]);105testComputedFilterRule("Degrees value as integer",106 "hue-rotate(10deg)", 1,107 ["WebKitCSSFilterValue.CSS_FILTER_HUE_ROTATE"],108 ["hue-rotate(10deg)"]);109testComputedFilterRule("Degrees float value converts to integer",110 "hue-rotate(10.0deg)", 1,111 ["WebKitCSSFilterValue.CSS_FILTER_HUE_ROTATE"],112 ["hue-rotate(10deg)"]);113testComputedFilterRule("Radians value",114 "hue-rotate(10rad)", 1,115 ["WebKitCSSFilterValue.CSS_FILTER_HUE_ROTATE"],116 ["hue-rotate(572.9577951308232deg)"]);117testComputedFilterRule("Gradians value",118 "hue-rotate(10grad)", 1,119 ["WebKitCSSFilterValue.CSS_FILTER_HUE_ROTATE"],120 ["hue-rotate(9deg)"]);121testComputedFilterRule("Turns value",122 "hue-rotate(0.5turn)", 1,123 ["WebKitCSSFilterValue.CSS_FILTER_HUE_ROTATE"],124 ["hue-rotate(180deg)"]);125testComputedFilterRule("Zero value",126 "hue-rotate(0)", 1,127 ["WebKitCSSFilterValue.CSS_FILTER_HUE_ROTATE"],128 ["hue-rotate(0deg)"]);129testComputedFilterRule("No values",130 "hue-rotate()", 1,131 ["WebKitCSSFilterValue.CSS_FILTER_HUE_ROTATE"],132 ["hue-rotate(0deg)"]);133testComputedFilterRule("Rule combinations",134 "hue-rotate(10deg) grayscale(0.25)", 2,135 ["WebKitCSSFilterValue.CSS_FILTER_HUE_ROTATE", "WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE"],136 ["hue-rotate(10deg)", "grayscale(0.25)"]);137testComputedFilterRule("Integer value",138 "invert(1)", 1,139 ["WebKitCSSFilterValue.CSS_FILTER_INVERT"],140 ["invert(1)"]);141testComputedFilterRule("Float value converts to integer",142 "invert(1.0)", 1,143 ["WebKitCSSFilterValue.CSS_FILTER_INVERT"],144 ["invert(1)"]);145testComputedFilterRule("Zero value",146 "invert(0)", 1,147 ["WebKitCSSFilterValue.CSS_FILTER_INVERT"],148 ["invert(0)"]);149testComputedFilterRule("No values",150 "invert()", 1,151 ["WebKitCSSFilterValue.CSS_FILTER_INVERT"],152 ["invert(1)"]);153testComputedFilterRule("Multiple values",154 "invert(0.5) invert(0.25)", 2,155 ["WebKitCSSFilterValue.CSS_FILTER_INVERT", "WebKitCSSFilterValue.CSS_FILTER_INVERT"],156 ["invert(0.5)", "invert(0.25)"]);157testComputedFilterRule("Rule combinations",158 "invert(0.5) grayscale(0.25)", 2,159 ["WebKitCSSFilterValue.CSS_FILTER_INVERT", "WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE"],160 ["invert(0.5)", "grayscale(0.25)"]);161testComputedFilterRule("Integer value",162 "opacity(1)", 1,163 ["WebKitCSSFilterValue.CSS_FILTER_OPACITY"],164 ["opacity(1)"]);165testComputedFilterRule("Float value converts to integer",166 "opacity(1.0)", 1,167 ["WebKitCSSFilterValue.CSS_FILTER_OPACITY"],168 ["opacity(1)"]);169testComputedFilterRule("Zero value",170 "opacity(0)", 1,171 ["WebKitCSSFilterValue.CSS_FILTER_OPACITY"],172 ["opacity(0)"]);173testComputedFilterRule("No values",174 "opacity()", 1,175 ["WebKitCSSFilterValue.CSS_FILTER_OPACITY"],176 ["opacity(1)"]);177testComputedFilterRule("Multiple values",178 "opacity(0.5) opacity(0.25)", 2,179 ["WebKitCSSFilterValue.CSS_FILTER_OPACITY", "WebKitCSSFilterValue.CSS_FILTER_OPACITY"],180 ["opacity(0.5)", "opacity(0.25)"]);181testComputedFilterRule("Rule combinations",182 "opacity(0.5) grayscale(0.25)", 2,183 ["WebKitCSSFilterValue.CSS_FILTER_OPACITY", "WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE"],184 ["opacity(0.5)", "grayscale(0.25)"]);185testComputedFilterRule("Integer value",186 "brightness(1)", 1,187 ["WebKitCSSFilterValue.CSS_FILTER_BRIGHTNESS"],188 ["brightness(1)"]);189testComputedFilterRule("Float value converts to integer",190 "brightness(1.0)", 1,191 ["WebKitCSSFilterValue.CSS_FILTER_BRIGHTNESS"],192 ["brightness(1)"]);193testComputedFilterRule("Zero value",194 "brightness(0)", 1,195 ["WebKitCSSFilterValue.CSS_FILTER_BRIGHTNESS"],196 ["brightness(0)"]);197testComputedFilterRule("No values",198 "brightness()", 1,199 ["WebKitCSSFilterValue.CSS_FILTER_BRIGHTNESS"],200 ["brightness(0)"]);201testComputedFilterRule("Multiple values",202 "brightness(0.5) brightness(0.25)", 2,203 ["WebKitCSSFilterValue.CSS_FILTER_BRIGHTNESS", "WebKitCSSFilterValue.CSS_FILTER_BRIGHTNESS"],204 ["brightness(0.5)", "brightness(0.25)"]);205testComputedFilterRule("Rule combinations",206 "brightness(0.5) grayscale(0.25)", 2,207 ["WebKitCSSFilterValue.CSS_FILTER_BRIGHTNESS", "WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE"],208 ["brightness(0.5)", "grayscale(0.25)"]);209testComputedFilterRule("Integer value",210 "contrast(1)", 1,211 ["WebKitCSSFilterValue.CSS_FILTER_CONTRAST"],212 ["contrast(1)"]);213testComputedFilterRule("Value greater than 1",214 "contrast(2)", 1,215 ["WebKitCSSFilterValue.CSS_FILTER_CONTRAST"],216 ["contrast(2)"]);217testComputedFilterRule("Float value converts to integer",218 "contrast(1.0)", 1,219 ["WebKitCSSFilterValue.CSS_FILTER_CONTRAST"],220 ["contrast(1)"]);221testComputedFilterRule("Zero value",222 "contrast(0)", 1,223 ["WebKitCSSFilterValue.CSS_FILTER_CONTRAST"],224 ["contrast(0)"]);225testComputedFilterRule("No values",226 "contrast()", 1,227 ["WebKitCSSFilterValue.CSS_FILTER_CONTRAST"],228 ["contrast(1)"]);229testComputedFilterRule("Multiple values",230 "contrast(0.5) contrast(0.25)", 2,231 ["WebKitCSSFilterValue.CSS_FILTER_CONTRAST", "WebKitCSSFilterValue.CSS_FILTER_CONTRAST"],232 ["contrast(0.5)", "contrast(0.25)"]);233testComputedFilterRule("Rule combinations",234 "contrast(0.5) grayscale(0.25)", 2,235 ["WebKitCSSFilterValue.CSS_FILTER_CONTRAST", "WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE"],236 ["contrast(0.5)", "grayscale(0.25)"]);237testComputedFilterRule("One zero to px",238 "blur(0)", 1,239 ["WebKitCSSFilterValue.CSS_FILTER_BLUR"],240 ["blur(0px)"]);241testComputedFilterRule("One length",242 "blur(2em)", 1,243 ["WebKitCSSFilterValue.CSS_FILTER_BLUR"],244 ["blur(32px)"]);245testComputedFilterRule("One length",246 "blur(5px)", 1,247 ["WebKitCSSFilterValue.CSS_FILTER_BLUR"],248 ["blur(5px)"]);249testComputedFilterRule("No values",250 "blur()", 1,251 ["WebKitCSSFilterValue.CSS_FILTER_BLUR"],252 ["blur(0px)"]);253testComputedFilterRule("Color then three values",254 "drop-shadow(red 1px 2px 3px)", 1,255 ["WebKitCSSFilterValue.CSS_FILTER_DROP_SHADOW"],256 ["drop-shadow(rgb(255, 0, 0) 1px 2px 3px)"]);257testComputedFilterRule("Three values then color",258 "drop-shadow(1px 2px 3px red)", 1,259 ["WebKitCSSFilterValue.CSS_FILTER_DROP_SHADOW"],260 ["drop-shadow(rgb(255, 0, 0) 1px 2px 3px)"]);261testComputedFilterRule("Color then three values with zero length",262 "drop-shadow(#abc 0 0 0)", 1,263 ["WebKitCSSFilterValue.CSS_FILTER_DROP_SHADOW"],264 ["drop-shadow(rgb(170, 187, 204) 0px 0px 0px)"]);265testComputedFilterRule("Three values with zero length",266 "drop-shadow(0 0 0)", 1,267 ["WebKitCSSFilterValue.CSS_FILTER_DROP_SHADOW"],268 ["drop-shadow(rgba(0, 0, 0, 0) 0px 0px 0px)"]);269testComputedFilterRule("Two values no color",270 "drop-shadow(1px 2px)", 1,271 ["WebKitCSSFilterValue.CSS_FILTER_DROP_SHADOW"],272 ["drop-shadow(rgba(0, 0, 0, 0) 1px 2px 0px)"]);273testComputedFilterRule("Multiple operations",274 "grayscale(0.5) sepia(0.25) saturate(0.75) hue-rotate(35deg) invert(0.2) opacity(0.9) blur(5px)", 7,275 [276 "WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE",277 "WebKitCSSFilterValue.CSS_FILTER_SEPIA",278 "WebKitCSSFilterValue.CSS_FILTER_SATURATE",279 "WebKitCSSFilterValue.CSS_FILTER_HUE_ROTATE",280 "WebKitCSSFilterValue.CSS_FILTER_INVERT",281 "WebKitCSSFilterValue.CSS_FILTER_OPACITY",282 "WebKitCSSFilterValue.CSS_FILTER_BLUR",283 ],284 [285 "grayscale(0.5)",286 "sepia(0.25)",287 "saturate(0.75)",288 "hue-rotate(35deg)",289 "invert(0.2)",290 "opacity(0.9)",291 "blur(5px)"292 ]);293testComputedFilterRule("Percentage values",294 "grayscale(50%) sepia(25%) saturate(75%) invert(20%) opacity(90%) brightness(60%) contrast(30%)", 7,295 [296 "WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE",297 "WebKitCSSFilterValue.CSS_FILTER_SEPIA",298 "WebKitCSSFilterValue.CSS_FILTER_SATURATE",299 "WebKitCSSFilterValue.CSS_FILTER_INVERT",300 "WebKitCSSFilterValue.CSS_FILTER_OPACITY",301 "WebKitCSSFilterValue.CSS_FILTER_BRIGHTNESS",302 "WebKitCSSFilterValue.CSS_FILTER_CONTRAST"303 ],304 [305 "grayscale(0.5)",306 "sepia(0.25)",307 "saturate(0.75)",308 "invert(0.2)",309 "opacity(0.9)",310 "brightness(0.6)",311 "contrast(0.3)"312 ]);...
v1.js
Source:v1.js
1/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for 2 * full list of contributors). Published under the Clear BSD license. 3 * See http://svn.openlayers.org/trunk/openlayers/license.txt for the4 * full text of the license. */5/**6 * @requires OpenLayers/Format/Filter.js7 * @requires OpenLayers/Format/XML.js8 */9/**10 * Class: OpenLayers.Format.Filter.v111 * Superclass for Filter version 1 parsers.12 *13 * Inherits from:14 * - <OpenLayers.Format.XML>15 */16OpenLayers.Format.Filter.v1 = OpenLayers.Class(OpenLayers.Format.XML, {17 18 /**19 * Property: namespaces20 * {Object} Mapping of namespace aliases to namespace URIs.21 */22 namespaces: {23 ogc: "http://www.opengis.net/ogc",24 gml: "http://www.opengis.net/gml",25 xlink: "http://www.w3.org/1999/xlink",26 xsi: "http://www.w3.org/2001/XMLSchema-instance"27 },28 29 /**30 * Property: defaultPrefix31 */32 defaultPrefix: "ogc",33 /**34 * Property: schemaLocation35 * {String} Schema location for a particular minor version.36 */37 schemaLocation: null,38 39 /**40 * Constructor: OpenLayers.Format.Filter.v141 * Instances of this class are not created directly. Use the42 * <OpenLayers.Format.Filter> constructor instead.43 *44 * Parameters:45 * options - {Object} An optional object whose properties will be set on46 * this instance.47 */48 initialize: function(options) {49 OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);50 },51 52 /**53 * Method: read54 *55 * Parameters:56 * data - {DOMElement} A Filter document element.57 *58 * Returns:59 * {<OpenLayers.Filter>} A filter object.60 */61 read: function(data) {62 var obj = {};63 this.readers.ogc["Filter"].apply(this, [data, obj]);64 return obj.filter;65 },66 67 /**68 * Property: readers69 * Contains public functions, grouped by namespace prefix, that will70 * be applied when a namespaced node is found matching the function71 * name. The function will be applied in the scope of this parser72 * with two arguments: the node being read and a context object passed73 * from the parent.74 */75 readers: {76 "ogc": {77 "Filter": function(node, parent) {78 // Filters correspond to subclasses of OpenLayers.Filter.79 // Since they contain information we don't persist, we80 // create a temporary object and then pass on the filter81 // (ogc:Filter) to the parent obj.82 var obj = {83 fids: [],84 filters: []85 };86 this.readChildNodes(node, obj);87 if(obj.fids.length > 0) {88 parent.filter = new OpenLayers.Filter.FeatureId({89 fids: obj.fids90 });91 } else if(obj.filters.length > 0) {92 parent.filter = obj.filters[0];93 }94 },95 "FeatureId": function(node, obj) {96 var fid = node.getAttribute("fid");97 if(fid) {98 obj.fids.push(fid);99 }100 },101 "And": function(node, obj) {102 var filter = new OpenLayers.Filter.Logical({103 type: OpenLayers.Filter.Logical.AND104 });105 this.readChildNodes(node, filter);106 obj.filters.push(filter);107 },108 "Or": function(node, obj) {109 var filter = new OpenLayers.Filter.Logical({110 type: OpenLayers.Filter.Logical.OR111 });112 this.readChildNodes(node, filter);113 obj.filters.push(filter);114 },115 "Not": function(node, obj) {116 var filter = new OpenLayers.Filter.Logical({117 type: OpenLayers.Filter.Logical.NOT118 });119 this.readChildNodes(node, filter);120 obj.filters.push(filter);121 },122 "PropertyIsLessThan": function(node, obj) {123 var filter = new OpenLayers.Filter.Comparison({124 type: OpenLayers.Filter.Comparison.LESS_THAN125 });126 this.readChildNodes(node, filter);127 obj.filters.push(filter);128 },129 "PropertyIsGreaterThan": function(node, obj) {130 var filter = new OpenLayers.Filter.Comparison({131 type: OpenLayers.Filter.Comparison.GREATER_THAN132 });133 this.readChildNodes(node, filter);134 obj.filters.push(filter);135 },136 "PropertyIsLessThanOrEqualTo": function(node, obj) {137 var filter = new OpenLayers.Filter.Comparison({138 type: OpenLayers.Filter.Comparison.LESS_THAN_OR_EQUAL_TO139 });140 this.readChildNodes(node, filter);141 obj.filters.push(filter);142 },143 "PropertyIsGreaterThanOrEqualTo": function(node, obj) {144 var filter = new OpenLayers.Filter.Comparison({145 type: OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO146 });147 this.readChildNodes(node, filter);148 obj.filters.push(filter);149 },150 "PropertyIsBetween": function(node, obj) {151 var filter = new OpenLayers.Filter.Comparison({152 type: OpenLayers.Filter.Comparison.BETWEEN153 });154 this.readChildNodes(node, filter);155 obj.filters.push(filter);156 },157 "Literal": function(node, obj) {158 obj.value = OpenLayers.String.numericIf(159 this.getChildValue(node));160 },161 "PropertyName": function(node, filter) {162 filter.property = this.getChildValue(node);163 },164 "LowerBoundary": function(node, filter) {165 filter.lowerBoundary = OpenLayers.String.numericIf(166 this.readOgcExpression(node));167 },168 "UpperBoundary": function(node, filter) {169 filter.upperBoundary = OpenLayers.String.numericIf(170 this.readOgcExpression(node));171 },172 "Intersects": function(node, obj) {173 this.readSpatial(node, obj, OpenLayers.Filter.Spatial.INTERSECTS);174 },175 "Within": function(node, obj) {176 this.readSpatial(node, obj, OpenLayers.Filter.Spatial.WITHIN);177 },178 "Contains": function(node, obj) {179 this.readSpatial(node, obj, OpenLayers.Filter.Spatial.CONTAINS);180 },181 "DWithin": function(node, obj) {182 this.readSpatial(node, obj, OpenLayers.Filter.Spatial.DWITHIN);183 },184 "Distance": function(node, obj) {185 obj.distance = parseInt(this.getChildValue(node));186 obj.distanceUnits = node.getAttribute("units");187 }188 }189 },190 191 /**192 * Method: readSpatial193 *194 * Read a {<OpenLayers.Filter.Spatial>} filter.195 * 196 * Parameters:197 * node - {DOMElement} A DOM element that contains an ogc:expression.198 * obj - {Object} The target object.199 * type - {String} One of the OpenLayers.Filter.Spatial.* constants.200 *201 * Returns:202 * {<OpenLayers.Filter.Spatial>} The created filter.203 */204 readSpatial: function(node, obj, type) {205 var filter = new OpenLayers.Filter.Spatial({206 type: type207 });208 this.readChildNodes(node, filter);209 filter.value = filter.components[0];210 delete filter.components;211 obj.filters.push(filter);212 },213 /**214 * Method: readOgcExpression215 * Limited support for OGC expressions.216 *217 * Parameters:218 * node - {DOMElement} A DOM element that contains an ogc:expression.219 *220 * Returns:221 * {String} A value to be used in a symbolizer.222 */223 readOgcExpression: function(node) {224 var obj = {};225 this.readChildNodes(node, obj);226 var value = obj.value;227 if(value === undefined) {228 value = this.getChildValue(node);229 }230 return value;231 },232 /**233 * Method: write234 *235 * Parameters:236 * filter - {<OpenLayers.Filter>} A filter object.237 *238 * Returns:239 * {DOMElement} An ogc:Filter element.240 */241 write: function(filter) {242 return this.writers.ogc["Filter"].apply(this, [filter]);243 },244 245 /**246 * Property: writers247 * As a compliment to the readers property, this structure contains public248 * writing functions grouped by namespace alias and named like the249 * node names they produce.250 */251 writers: {252 "ogc": {253 "Filter": function(filter) {254 var node = this.createElementNSPlus("ogc:Filter");255 var sub = filter.CLASS_NAME.split(".").pop();256 if(sub == "FeatureId") {257 for(var i=0; i<filter.fids.length; ++i) {258 this.writeNode("FeatureId", filter.fids[i], node);259 }260 } else {261 this.writeNode(this.getFilterType(filter), filter, node);262 }263 return node;264 },265 "FeatureId": function(fid) {266 return this.createElementNSPlus("ogc:FeatureId", {267 attributes: {fid: fid}268 });269 },270 "And": function(filter) {271 var node = this.createElementNSPlus("ogc:And");272 var childFilter;273 for(var i=0; i<filter.filters.length; ++i) {274 childFilter = filter.filters[i];275 this.writeNode(276 this.getFilterType(childFilter), childFilter, node277 );278 }279 return node;280 },281 "Or": function(filter) {282 var node = this.createElementNSPlus("ogc:Or");283 var childFilter;284 for(var i=0; i<filter.filters.length; ++i) {285 childFilter = filter.filters[i];286 this.writeNode(287 this.getFilterType(childFilter), childFilter, node288 );289 }290 return node;291 },292 "Not": function(filter) {293 var node = this.createElementNSPlus("ogc:Not");294 var childFilter = filter.filters[0];295 this.writeNode(296 this.getFilterType(childFilter), childFilter, node297 );298 return node;299 },300 "PropertyIsLessThan": function(filter) {301 var node = this.createElementNSPlus("ogc:PropertyIsLessThan");302 // no ogc:expression handling for now303 this.writeNode("PropertyName", filter, node);304 this.writeNode("Literal", filter.value, node); 305 return node;306 },307 "PropertyIsGreaterThan": function(filter) {308 var node = this.createElementNSPlus("ogc:PropertyIsGreaterThan");309 // no ogc:expression handling for now310 this.writeNode("PropertyName", filter, node);311 this.writeNode("Literal", filter.value, node);312 return node;313 },314 "PropertyIsLessThanOrEqualTo": function(filter) {315 var node = this.createElementNSPlus("ogc:PropertyIsLessThanOrEqualTo");316 // no ogc:expression handling for now317 this.writeNode("PropertyName", filter, node);318 this.writeNode("Literal", filter.value, node);319 return node;320 },321 "PropertyIsGreaterThanOrEqualTo": function(filter) {322 var node = this.createElementNSPlus("ogc:PropertyIsGreaterThanOrEqualTo");323 // no ogc:expression handling for now324 this.writeNode("PropertyName", filter, node);325 this.writeNode("Literal", filter.value, node);326 return node;327 },328 "PropertyIsBetween": function(filter) {329 var node = this.createElementNSPlus("ogc:PropertyIsBetween");330 // no ogc:expression handling for now331 this.writeNode("PropertyName", filter, node);332 this.writeNode("LowerBoundary", filter, node);333 this.writeNode("UpperBoundary", filter, node);334 return node;335 },336 "PropertyName": function(filter) {337 // no ogc:expression handling for now338 return this.createElementNSPlus("ogc:PropertyName", {339 value: filter.property340 });341 },342 "Literal": function(value) {343 // no ogc:expression handling for now344 return this.createElementNSPlus("ogc:Literal", {345 value: value346 });347 },348 "LowerBoundary": function(filter) {349 // no ogc:expression handling for now350 var node = this.createElementNSPlus("ogc:LowerBoundary");351 this.writeNode("Literal", filter.lowerBoundary, node);352 return node;353 },354 "UpperBoundary": function(filter) {355 // no ogc:expression handling for now356 var node = this.createElementNSPlus("ogc:UpperBoundary");357 this.writeNode("Literal", filter.upperBoundary, node);358 return node;359 },360 "INTERSECTS": function(filter) {361 return this.writeSpatial(filter, "Intersects");362 },363 "WITHIN": function(filter) {364 return this.writeSpatial(filter, "Within");365 },366 "CONTAINS": function(filter) {367 return this.writeSpatial(filter, "Contains");368 },369 "DWITHIN": function(filter) {370 var node = this.writeSpatial(filter, "DWithin");371 this.writeNode("Distance", filter, node);372 return node;373 },374 "Distance": function(filter) {375 return this.createElementNSPlus("ogc:Distance", {376 attributes: {377 units: filter.distanceUnits378 },379 value: filter.distance380 });381 }382 }383 },384 /**385 * Method: getFilterType386 */387 getFilterType: function(filter) {388 var filterType = this.filterMap[filter.type];389 if(!filterType) {390 throw "Filter writing not supported for rule type: " + filter.type;391 }392 return filterType;393 },394 395 /**396 * Property: filterMap397 * {Object} Contains a member for each filter type. Values are node names398 * for corresponding OGC Filter child elements.399 */400 filterMap: {401 "&&": "And",402 "||": "Or",403 "!": "Not",404 "==": "PropertyIsEqualTo",405 "!=": "PropertyIsNotEqualTo",406 "<": "PropertyIsLessThan",407 ">": "PropertyIsGreaterThan",408 "<=": "PropertyIsLessThanOrEqualTo",409 ">=": "PropertyIsGreaterThanOrEqualTo",410 "..": "PropertyIsBetween",411 "~": "PropertyIsLike",412 "BBOX": "BBOX",413 "DWITHIN": "DWITHIN",414 "WITHIN": "WITHIN",415 "CONTAINS": "CONTAINS",416 "INTERSECTS": "INTERSECTS"417 },418 CLASS_NAME: "OpenLayers.Format.Filter.v1" ...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!