Files
openlayers/old/test/spec/ol/style/rule.test.js
2013-11-20 11:39:21 +01:00

158 lines
4.3 KiB
JavaScript

goog.provide('ol.test.style.Rule');
describe('ol.style.Rule', function() {
describe('constructor', function() {
it('accepts a filter option', function() {
var rule = new ol.style.Rule({
filter: 'foo == "bar"'
});
expect(rule).to.be.a(ol.style.Rule);
});
it('accepts a minResolution option', function() {
var rule = new ol.style.Rule({
minResolution: 10
});
expect(rule).to.be.a(ol.style.Rule);
});
it('accepts a maxResolution option', function() {
var rule = new ol.style.Rule({
maxResolution: 100
});
expect(rule).to.be.a(ol.style.Rule);
});
});
describe('#applies()', function() {
var feature = new ol.Feature(),
rule;
it('returns true for a rule without filter', function() {
rule = new ol.style.Rule({});
expect(rule.applies(feature, 1)).to.be(true);
});
it('returns false when the filter evaluates to false', function() {
rule = new ol.style.Rule({
filter: new ol.expr.Literal(false)
});
expect(rule.applies(feature, 1)).to.be(false);
});
it('returns true when the filter evaluates to true', function() {
rule = new ol.style.Rule({
filter: new ol.expr.Literal(true)
});
expect(rule.applies(feature, 1)).to.be(true);
});
it('returns false when the resolution is less than min', function() {
rule = new ol.style.Rule({
minResolution: 10
});
expect(rule.applies(feature, 9)).to.be(false);
});
it('returns true when the resolution is greater than min', function() {
rule = new ol.style.Rule({
minResolution: 10
});
expect(rule.applies(feature, 11)).to.be(true);
});
it('returns true when the resolution is equal to min', function() {
rule = new ol.style.Rule({
minResolution: 10
});
expect(rule.applies(feature, 10)).to.be(true);
});
it('returns false if filter evaluates to false (with min res)', function() {
rule = new ol.style.Rule({
filter: new ol.expr.Literal(false),
minResolution: 10
});
expect(rule.applies(feature, 11)).to.be(false);
});
it('returns true if filter evaluates to true (with min res)', function() {
rule = new ol.style.Rule({
filter: new ol.expr.Literal(true),
minResolution: 10
});
expect(rule.applies(feature, 11)).to.be(true);
});
it('returns false when the resolution is greater than max', function() {
rule = new ol.style.Rule({
maxResolution: 100
});
expect(rule.applies(feature, 101)).to.be(false);
});
it('returns true when the resolution is less than max', function() {
rule = new ol.style.Rule({
maxResolution: 100
});
expect(rule.applies(feature, 99)).to.be(true);
});
it('returns false when the resolution is equal to max', function() {
rule = new ol.style.Rule({
maxResolution: 100
});
expect(rule.applies(feature, 100)).to.be(false);
});
it('returns false if filter evaluates to false (with max res)', function() {
rule = new ol.style.Rule({
filter: new ol.expr.Literal(false),
maxResolution: 100
});
expect(rule.applies(feature, 99)).to.be(false);
});
it('returns true if filter evaluates to true (with max res)', function() {
rule = new ol.style.Rule({
filter: new ol.expr.Literal(true),
maxResolution: 100
});
expect(rule.applies(feature, 99)).to.be(true);
});
it('returns true if resolution is between min and max', function() {
rule = new ol.style.Rule({
minResolution: 10,
maxResolution: 100
});
expect(rule.applies(feature, 55)).to.be(true);
});
it('returns false if resolution is greater than min and max', function() {
rule = new ol.style.Rule({
minResolution: 10,
maxResolution: 100
});
expect(rule.applies(feature, 1000)).to.be(false);
});
it('returns false if resolution is less than min and max', function() {
rule = new ol.style.Rule({
minResolution: 10,
maxResolution: 100
});
expect(rule.applies(feature, 5)).to.be(false);
});
});
});
goog.require('ol.Feature');
goog.require('ol.expr.Literal');
goog.require('ol.style.Rule');