158 lines
4.3 KiB
JavaScript
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');
|