2014-04-15 11:10:47 -04:00
|
|
|
/*
|
|
|
|
* Paper.js - The Swiss Army Knife of Vector Graphics Scripting.
|
|
|
|
* http://paperjs.org/
|
|
|
|
*
|
|
|
|
* Copyright (c) 2011 - 2014, Juerg Lehni & Jonathan Puckey
|
|
|
|
* http://scratchdisk.com/ & http://jonathanpuckey.com/
|
|
|
|
*
|
|
|
|
* Distributed under the MIT license. See LICENSE file for details.
|
|
|
|
*
|
|
|
|
* All rights reserved.
|
|
|
|
*/
|
|
|
|
|
|
|
|
module('Getting and Matching Items');
|
|
|
|
|
|
|
|
test('Item#getItems()', function() {
|
2014-08-16 13:24:54 -04:00
|
|
|
var group = new Group([new Path({ selected: true }), new Raster()]);
|
|
|
|
equals(function() {
|
|
|
|
var items = group.getItems({
|
|
|
|
type: 'path'
|
|
|
|
});
|
|
|
|
return items.length == 1;
|
|
|
|
}, true);
|
|
|
|
|
|
|
|
equals(function() {
|
|
|
|
var items = group.getItems({
|
|
|
|
selected: true
|
|
|
|
});
|
|
|
|
return items.length == 1;
|
|
|
|
}, true);
|
2014-04-15 11:10:47 -04:00
|
|
|
});
|
|
|
|
|
|
|
|
test('Item#matches()', function() {
|
2014-08-16 13:24:54 -04:00
|
|
|
var path = new Path();
|
|
|
|
equals(function() {
|
|
|
|
return path.matches({
|
|
|
|
visible: false
|
|
|
|
});
|
|
|
|
}, false);
|
|
|
|
|
|
|
|
equals(function() {
|
|
|
|
return path.matches({
|
|
|
|
visible: true
|
|
|
|
});
|
|
|
|
}, true);
|
2014-04-15 11:10:47 -04:00
|
|
|
});
|
|
|
|
|
|
|
|
test('Project#getItems()', function() {
|
2014-08-16 13:24:54 -04:00
|
|
|
equals(function() {
|
|
|
|
var matches = paper.project.getItems({
|
|
|
|
type: 'layer'
|
|
|
|
});
|
|
|
|
return matches.length == 1 && matches[0] == paper.project.activeLayer;
|
|
|
|
}, true);
|
|
|
|
|
|
|
|
equals(function() {
|
|
|
|
var matches = paper.project.getItems({
|
|
|
|
'class': Item
|
|
|
|
});
|
|
|
|
return matches.length == 1 && matches[0] == paper.project.activeLayer;
|
|
|
|
}, true);
|
|
|
|
|
|
|
|
var path = new Path();
|
|
|
|
equals(function() {
|
|
|
|
var matches = paper.project.getItems({
|
|
|
|
type: 'path'
|
|
|
|
});
|
|
|
|
return matches.length == 1 && matches[0] == path;
|
|
|
|
}, true);
|
|
|
|
|
|
|
|
equals(function() {
|
|
|
|
var matches = paper.project.getItems({
|
|
|
|
'constructor': Path
|
|
|
|
});
|
|
|
|
return matches.length == 1 && matches[0] === path;
|
|
|
|
}, true);
|
|
|
|
|
|
|
|
|
|
|
|
var group = new Group();
|
|
|
|
equals(function() {
|
|
|
|
var matches = paper.project.getItems({
|
|
|
|
type: 'group'
|
|
|
|
});
|
|
|
|
return matches.length == 1 && matches[0] === group
|
|
|
|
}, true);
|
|
|
|
|
|
|
|
var raster = new Raster();
|
|
|
|
equals(function() {
|
|
|
|
var matches = paper.project.getItems({
|
|
|
|
type: 'raster'
|
|
|
|
});
|
|
|
|
return matches.length == 1 && matches[0] === raster
|
|
|
|
}, true);
|
|
|
|
|
|
|
|
equals(function() {
|
|
|
|
return paper.project.getItems({
|
|
|
|
selected: true
|
|
|
|
}).length;
|
|
|
|
}, 0);
|
|
|
|
|
|
|
|
equals(function() {
|
|
|
|
raster.selected = true;
|
|
|
|
return paper.project.getItems({
|
|
|
|
selected: true
|
|
|
|
}).length;
|
|
|
|
}, 2);
|
|
|
|
|
|
|
|
equals(function() {
|
|
|
|
raster.selected = true;
|
|
|
|
return paper.project.getItems({
|
|
|
|
selected: true,
|
|
|
|
type: 'raster'
|
|
|
|
}).length;
|
|
|
|
}, 1);
|
2014-04-15 11:10:47 -04:00
|
|
|
});
|
|
|
|
|
|
|
|
test('Project#getItems() with compare function', function() {
|
2014-08-16 13:24:54 -04:00
|
|
|
var firstPath = new Path();
|
|
|
|
var path = new Path({
|
|
|
|
opacity: 0.5
|
|
|
|
});
|
|
|
|
|
|
|
|
equals(function() {
|
|
|
|
var items = paper.project.getItems({
|
|
|
|
opacity: function(value) {
|
|
|
|
return value < 1
|
|
|
|
}
|
|
|
|
});
|
|
|
|
return items.length == 1 && items[0] == path;
|
|
|
|
}, true);
|
2014-04-15 11:10:47 -04:00
|
|
|
});
|
|
|
|
|
|
|
|
test('Project#getItems() with specific property value', function() {
|
2014-08-16 13:24:54 -04:00
|
|
|
var path = new Path();
|
|
|
|
var decoyPath = new Path({
|
|
|
|
opacity: 0.5
|
|
|
|
});
|
|
|
|
|
|
|
|
equals(function() {
|
|
|
|
var items = paper.project.getItems({
|
|
|
|
opacity: 1,
|
|
|
|
type: 'path'
|
|
|
|
});
|
|
|
|
return items.length == 1 && items[0] == path;
|
|
|
|
}, true);
|
2014-04-15 11:10:47 -04:00
|
|
|
});
|
|
|
|
|
|
|
|
test('Project#getItems() with color', function() {
|
2014-08-16 13:24:54 -04:00
|
|
|
var path = new Path({
|
|
|
|
fillColor: 'red'
|
|
|
|
});
|
|
|
|
|
|
|
|
var decoyPath = new Path({
|
|
|
|
fillColor: 'black'
|
|
|
|
});
|
|
|
|
|
|
|
|
equals(function() {
|
|
|
|
var items = paper.project.getItems({
|
|
|
|
fillColor: 'red',
|
|
|
|
type: 'path'
|
|
|
|
});
|
|
|
|
return items.length == 1 && items[0] == path;
|
|
|
|
}, true);
|
2014-04-15 11:10:47 -04:00
|
|
|
});
|
|
|
|
|
|
|
|
test('Project#getItems() with regex function', function() {
|
2014-08-16 13:24:54 -04:00
|
|
|
var decoyPath = new Path({
|
|
|
|
name: 'stop'
|
|
|
|
});
|
|
|
|
|
|
|
|
var decoyPath2 = new Path({
|
|
|
|
name: 'pause'
|
|
|
|
});
|
|
|
|
|
|
|
|
var path = new Path({
|
|
|
|
name: 'starting'
|
|
|
|
});
|
|
|
|
|
|
|
|
equals(function() {
|
|
|
|
var items = paper.project.getItems({
|
|
|
|
name: /^start/g
|
|
|
|
});
|
|
|
|
return items.length == 1 && items[0] == path;
|
|
|
|
}, true);
|
|
|
|
|
|
|
|
equals(function() {
|
|
|
|
var items = paper.project.getItems({
|
|
|
|
name: /^st/g
|
|
|
|
});
|
|
|
|
return items.length == 2;
|
|
|
|
}, true);
|
2014-04-15 11:10:47 -04:00
|
|
|
});
|