mirror of
https://github.com/publiclab/image-sequencer.git
synced 2025-12-13 20:00:05 +01:00
Additional Testing
This commit is contained in:
@@ -7,7 +7,9 @@ node_js:
|
|||||||
- '8'
|
- '8'
|
||||||
env:
|
env:
|
||||||
- CXX=g++-4.8
|
- CXX=g++-4.8
|
||||||
script: npm test
|
script:
|
||||||
|
- npm test
|
||||||
|
- grunt build
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
sources:
|
sources:
|
||||||
|
|||||||
16
dist/image-sequencer.js
vendored
16
dist/image-sequencer.js
vendored
@@ -34810,15 +34810,15 @@ ImageSequencer = function ImageSequencer(options) {
|
|||||||
// else if (options.imageUrl) loadImage(imageUrl);
|
// else if (options.imageUrl) loadImage(imageUrl);
|
||||||
|
|
||||||
function addSteps(){
|
function addSteps(){
|
||||||
thiss = (this.name == "ImageSequencer")?this:this.sequencer;
|
const this_ = (this.name == "ImageSequencer")?this:this.sequencer;
|
||||||
args = (this.name == "ImageSequencer")?[]:[this.images];
|
args = (this.name == "ImageSequencer")?[]:[this.images];
|
||||||
json_q = {};
|
json_q = {};
|
||||||
for(arg in arguments){args.push(copy(arguments[arg]));}
|
for(arg in arguments){args.push(copy(arguments[arg]));}
|
||||||
json_q = formatInput.call(thiss,args,"+");
|
json_q = formatInput.call(this_,args,"+");
|
||||||
|
|
||||||
for (i in json_q)
|
for (i in json_q)
|
||||||
for (j in json_q[i])
|
for (j in json_q[i])
|
||||||
require("./AddStep")(thiss,i,json_q[i][j].name,json_q[i][j].o);
|
require("./AddStep")(this_,i,json_q[i][j].name,json_q[i][j].o);
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -34834,7 +34834,7 @@ ImageSequencer = function ImageSequencer(options) {
|
|||||||
|
|
||||||
function removeSteps(image,index) {
|
function removeSteps(image,index) {
|
||||||
run = {};
|
run = {};
|
||||||
this_ = (this.name == "ImageSequencer")?this:this.sequencer;
|
const this_ = (this.name == "ImageSequencer")?this:this.sequencer;
|
||||||
args = (this.name == "ImageSequencer")?[]:[this.images];
|
args = (this.name == "ImageSequencer")?[]:[this.images];
|
||||||
for(arg in arguments) args.push(copy(arguments[arg]));
|
for(arg in arguments) args.push(copy(arguments[arg]));
|
||||||
json_q = formatInput.call(this_,args,"-");
|
json_q = formatInput.call(this_,args,"-");
|
||||||
@@ -34851,7 +34851,7 @@ ImageSequencer = function ImageSequencer(options) {
|
|||||||
|
|
||||||
function insertSteps(image, index, name, o) {
|
function insertSteps(image, index, name, o) {
|
||||||
run = {};
|
run = {};
|
||||||
this_ = (this.name == "ImageSequencer")?this:this.sequencer;
|
const this_ = (this.name == "ImageSequencer")?this:this.sequencer;
|
||||||
args = (this.name == "ImageSequencer")?[]:[this.images];
|
args = (this.name == "ImageSequencer")?[]:[this.images];
|
||||||
for (arg in arguments) args.push(arguments[arg]);
|
for (arg in arguments) args.push(arguments[arg]);
|
||||||
|
|
||||||
@@ -34870,7 +34870,7 @@ ImageSequencer = function ImageSequencer(options) {
|
|||||||
|
|
||||||
function run(t_image,t_from) {
|
function run(t_image,t_from) {
|
||||||
log('\x1b[32m%s\x1b[0m',"Running the Sequencer!");
|
log('\x1b[32m%s\x1b[0m',"Running the Sequencer!");
|
||||||
this_ = (this.name == "ImageSequencer")?this:this.sequencer;
|
const this_ = (this.name == "ImageSequencer")?this:this.sequencer;
|
||||||
args = (this.name == "ImageSequencer")?[]:[this.images];
|
args = (this.name == "ImageSequencer")?[]:[this.images];
|
||||||
for (var arg in arguments) args.push(copy(arguments[arg]));
|
for (var arg in arguments) args.push(copy(arguments[arg]));
|
||||||
callback = function() {};
|
callback = function() {};
|
||||||
@@ -34909,7 +34909,7 @@ ImageSequencer = function ImageSequencer(options) {
|
|||||||
|
|
||||||
function replaceImage(selector,steps,options) {
|
function replaceImage(selector,steps,options) {
|
||||||
options = options || {};
|
options = options || {};
|
||||||
require('./ReplaceImage')(this,selector,steps);
|
return require('./ReplaceImage')(this,selector,steps);
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -35027,7 +35027,7 @@ module.exports = {
|
|||||||
|
|
||||||
},{"./modules/DoNothing":122,"./modules/DoNothingPix":123,"./modules/GreenChannel":124,"./modules/Invert":125,"./modules/NdviRed":126}],120:[function(require,module,exports){
|
},{"./modules/DoNothing":122,"./modules/DoNothingPix":123,"./modules/GreenChannel":124,"./modules/Invert":125,"./modules/NdviRed":126}],120:[function(require,module,exports){
|
||||||
function ReplaceImage(ref,selector,steps,options) {
|
function ReplaceImage(ref,selector,steps,options) {
|
||||||
if(!ref.options.inBrowser) return; // This isn't for Node.js
|
if(!ref.options.inBrowser) return false; // This isn't for Node.js
|
||||||
this_ = ref;
|
this_ = ref;
|
||||||
var input = document.querySelectorAll(selector);
|
var input = document.querySelectorAll(selector);
|
||||||
var images = [];
|
var images = [];
|
||||||
|
|||||||
@@ -48,15 +48,15 @@ ImageSequencer = function ImageSequencer(options) {
|
|||||||
// else if (options.imageUrl) loadImage(imageUrl);
|
// else if (options.imageUrl) loadImage(imageUrl);
|
||||||
|
|
||||||
function addSteps(){
|
function addSteps(){
|
||||||
thiss = (this.name == "ImageSequencer")?this:this.sequencer;
|
const this_ = (this.name == "ImageSequencer")?this:this.sequencer;
|
||||||
args = (this.name == "ImageSequencer")?[]:[this.images];
|
args = (this.name == "ImageSequencer")?[]:[this.images];
|
||||||
json_q = {};
|
json_q = {};
|
||||||
for(arg in arguments){args.push(copy(arguments[arg]));}
|
for(arg in arguments){args.push(copy(arguments[arg]));}
|
||||||
json_q = formatInput.call(thiss,args,"+");
|
json_q = formatInput.call(this_,args,"+");
|
||||||
|
|
||||||
for (i in json_q)
|
for (i in json_q)
|
||||||
for (j in json_q[i])
|
for (j in json_q[i])
|
||||||
require("./AddStep")(thiss,i,json_q[i][j].name,json_q[i][j].o);
|
require("./AddStep")(this_,i,json_q[i][j].name,json_q[i][j].o);
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -72,7 +72,7 @@ ImageSequencer = function ImageSequencer(options) {
|
|||||||
|
|
||||||
function removeSteps(image,index) {
|
function removeSteps(image,index) {
|
||||||
run = {};
|
run = {};
|
||||||
this_ = (this.name == "ImageSequencer")?this:this.sequencer;
|
const this_ = (this.name == "ImageSequencer")?this:this.sequencer;
|
||||||
args = (this.name == "ImageSequencer")?[]:[this.images];
|
args = (this.name == "ImageSequencer")?[]:[this.images];
|
||||||
for(arg in arguments) args.push(copy(arguments[arg]));
|
for(arg in arguments) args.push(copy(arguments[arg]));
|
||||||
json_q = formatInput.call(this_,args,"-");
|
json_q = formatInput.call(this_,args,"-");
|
||||||
@@ -89,7 +89,7 @@ ImageSequencer = function ImageSequencer(options) {
|
|||||||
|
|
||||||
function insertSteps(image, index, name, o) {
|
function insertSteps(image, index, name, o) {
|
||||||
run = {};
|
run = {};
|
||||||
this_ = (this.name == "ImageSequencer")?this:this.sequencer;
|
const this_ = (this.name == "ImageSequencer")?this:this.sequencer;
|
||||||
args = (this.name == "ImageSequencer")?[]:[this.images];
|
args = (this.name == "ImageSequencer")?[]:[this.images];
|
||||||
for (arg in arguments) args.push(arguments[arg]);
|
for (arg in arguments) args.push(arguments[arg]);
|
||||||
|
|
||||||
@@ -108,7 +108,7 @@ ImageSequencer = function ImageSequencer(options) {
|
|||||||
|
|
||||||
function run(t_image,t_from) {
|
function run(t_image,t_from) {
|
||||||
log('\x1b[32m%s\x1b[0m',"Running the Sequencer!");
|
log('\x1b[32m%s\x1b[0m',"Running the Sequencer!");
|
||||||
this_ = (this.name == "ImageSequencer")?this:this.sequencer;
|
const this_ = (this.name == "ImageSequencer")?this:this.sequencer;
|
||||||
args = (this.name == "ImageSequencer")?[]:[this.images];
|
args = (this.name == "ImageSequencer")?[]:[this.images];
|
||||||
for (var arg in arguments) args.push(copy(arguments[arg]));
|
for (var arg in arguments) args.push(copy(arguments[arg]));
|
||||||
callback = function() {};
|
callback = function() {};
|
||||||
@@ -147,7 +147,7 @@ ImageSequencer = function ImageSequencer(options) {
|
|||||||
|
|
||||||
function replaceImage(selector,steps,options) {
|
function replaceImage(selector,steps,options) {
|
||||||
options = options || {};
|
options = options || {};
|
||||||
require('./ReplaceImage')(this,selector,steps);
|
return require('./ReplaceImage')(this,selector,steps);
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
function ReplaceImage(ref,selector,steps,options) {
|
function ReplaceImage(ref,selector,steps,options) {
|
||||||
if(!ref.options.inBrowser) return; // This isn't for Node.js
|
if(!ref.options.inBrowser) return false; // This isn't for Node.js
|
||||||
this_ = ref;
|
this_ = ref;
|
||||||
var input = document.querySelectorAll(selector);
|
var input = document.querySelectorAll(selector);
|
||||||
var images = [];
|
var images = [];
|
||||||
|
|||||||
76
test/chain.js
Normal file
76
test/chain.js
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
var fs = require('fs');
|
||||||
|
var test = require('tape');
|
||||||
|
|
||||||
|
// We should only test headless code here.
|
||||||
|
// http://stackoverflow.com/questions/21358015/error-jquery-requires-a-window-with-a-document#25622933
|
||||||
|
|
||||||
|
require('../src/ImageSequencer.js');
|
||||||
|
|
||||||
|
var sequencer = ImageSequencer({ ui: "none" });
|
||||||
|
var red = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAQABADASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAf/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFQEBAQAAAAAAAAAAAAAAAAAABgj/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwCdABykX//Z";
|
||||||
|
|
||||||
|
test('loadImages/loadImage has a name generator.', function (t){
|
||||||
|
sequencer.loadImage(red);
|
||||||
|
t.equal(sequencer.images.image1.steps.length, 1, "It Does!");
|
||||||
|
t.end();
|
||||||
|
});
|
||||||
|
|
||||||
|
test('loadImages/loadImage returns a wrapper.', function (t){
|
||||||
|
var returnval = sequencer.loadImage(red);
|
||||||
|
t.equal(returnval.name,"ImageSequencer Wrapper", "It Does!");
|
||||||
|
t.equal(returnval.images[0],"image2");
|
||||||
|
t.end();
|
||||||
|
});
|
||||||
|
|
||||||
|
test('addSteps is two-way chainable.', function (t){
|
||||||
|
var returnval = sequencer.loadImage(red).addSteps('invert');
|
||||||
|
t.equal(returnval.name,"ImageSequencer Wrapper");
|
||||||
|
t.equal(returnval.images[0],"image3");
|
||||||
|
t.equal(sequencer.images.image3.steps.length,2);
|
||||||
|
t.equal(sequencer.images.image3.steps[1].options.name,"invert");
|
||||||
|
t.equal(sequencer.images.image2.steps.length,1);
|
||||||
|
t.equal(sequencer.images.image1.steps.length,1);
|
||||||
|
t.end();
|
||||||
|
});
|
||||||
|
|
||||||
|
test('addSteps is two-way chainable without loadImages.', function (t){
|
||||||
|
var returnval = sequencer.addSteps("image3","ndvi-red");
|
||||||
|
t.equal(returnval.name,"ImageSequencer");
|
||||||
|
t.equal(sequencer.images.image3.steps.length,3);
|
||||||
|
t.equal(sequencer.images.image3.steps[2].options.name,"ndvi-red");
|
||||||
|
t.end();
|
||||||
|
});
|
||||||
|
|
||||||
|
test('removeSteps is two-way chainable.', function (t){
|
||||||
|
var returnval = sequencer.loadImage(red).addSteps('invert').removeSteps(1);
|
||||||
|
t.equal(returnval.name,"ImageSequencer Wrapper");
|
||||||
|
t.equal(returnval.images[0],"image4");
|
||||||
|
t.equal(sequencer.images.image4.steps.length,1);
|
||||||
|
t.end();
|
||||||
|
});
|
||||||
|
|
||||||
|
test('removeSteps is two-way chainable without loadImages.', function (t){
|
||||||
|
var returnval = sequencer.removeSteps("image3",1);
|
||||||
|
t.equal(returnval.name,"ImageSequencer");
|
||||||
|
t.equal(sequencer.images.image3.steps.length,2);
|
||||||
|
t.end();
|
||||||
|
});
|
||||||
|
|
||||||
|
test('insertSteps is two-way chainable.', function (t){
|
||||||
|
var returnval = sequencer.loadImage(red).insertSteps(1,'invert');
|
||||||
|
t.equal(returnval.name,"ImageSequencer Wrapper");
|
||||||
|
t.equal(returnval.images[0],"image5");
|
||||||
|
t.equal(sequencer.images.image5.steps.length,2);
|
||||||
|
t.equal(sequencer.images.image5.steps[1].options.name,"invert");
|
||||||
|
t.end();
|
||||||
|
});
|
||||||
|
|
||||||
|
test('insertSteps is two-way chainable without loadImages.', function (t){
|
||||||
|
var returnval = sequencer.insertSteps("image5",1,"ndvi-red");
|
||||||
|
t.equal(returnval.name,"ImageSequencer");
|
||||||
|
t.equal(sequencer.images.image5.steps.length,3);
|
||||||
|
t.equal(sequencer.images.image5.steps[1].options.name,"ndvi-red");
|
||||||
|
t.end();
|
||||||
|
});
|
||||||
@@ -9,18 +9,37 @@ var test = require('tape');
|
|||||||
require('../src/ImageSequencer.js');
|
require('../src/ImageSequencer.js');
|
||||||
|
|
||||||
var sequencer = ImageSequencer({ ui: "none" });
|
var sequencer = ImageSequencer({ ui: "none" });
|
||||||
|
var red = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAQABADASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAf/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFQEBAQAAAAAAAAAAAAAAAAAABgj/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwCdABykX//Z";
|
||||||
|
|
||||||
test('Image Sequencer has tests', function (t) {
|
test('Image Sequencer has tests', function (t) {
|
||||||
t.equal(true, true);
|
t.equal(true, true);
|
||||||
t.end();
|
t.end();
|
||||||
});
|
});
|
||||||
|
|
||||||
test('loadImages loads an image and creates a step.', function (t){
|
test('loadImages loads a DataURL image and creates a step.', function (t){
|
||||||
sequencer.loadImages('test','examples/red.jpg');
|
sequencer.loadImages('test',red);
|
||||||
t.equal(sequencer.images.test.steps.length, 1, "It Does!");
|
t.equal(sequencer.images.test.steps.length, 1, "It Does!");
|
||||||
t.end();
|
t.end();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('loadImages loads a PATH image and creates a step. (NodeJS)', function (t){
|
||||||
|
if(sequencer.options.inBrowser){
|
||||||
|
t.equal("not applicable","not applicable");
|
||||||
|
t.end();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sequencer.loadImages(red);
|
||||||
|
t.equal(sequencer.images.test.steps.length, 1, "It Does!");
|
||||||
|
t.end();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
test('loadImage works too.', function (t){
|
||||||
|
sequencer.loadImage('test2',red);
|
||||||
|
t.equal(sequencer.images.test2.steps.length, 1, "It Does!");
|
||||||
|
t.end();
|
||||||
|
});
|
||||||
|
|
||||||
test('addSteps("image","name") adds a step', function (t) {
|
test('addSteps("image","name") adds a step', function (t) {
|
||||||
sequencer.addSteps('test','do-nothing');
|
sequencer.addSteps('test','do-nothing');
|
||||||
t.equal(sequencer.images.test.steps[1].options.name, "do-nothing");
|
t.equal(sequencer.images.test.steps[1].options.name, "do-nothing");
|
||||||
@@ -104,9 +123,15 @@ test('insertSteps({image: {index: index, name: "module", o: options} }) inserts
|
|||||||
});
|
});
|
||||||
|
|
||||||
test('run() runs the sequencer and returns output to callback', function (t) {
|
test('run() runs the sequencer and returns output to callback', function (t) {
|
||||||
sequencer.run(function(out){
|
sequencer.run('test',function(out){
|
||||||
t.equal(typeof(sequencer.images.test.steps[sequencer.images.test.steps.length - 1].output), "object", "It Does!");
|
t.equal(typeof(sequencer.images.test.steps[sequencer.images.test.steps.length - 1].output), "object", "It Does!");
|
||||||
t.equal(out,sequencer.images.test.steps[sequencer.images.test.steps.length - 1].output.src, "It Does!");
|
t.equal(out,sequencer.images.test.steps[sequencer.images.test.steps.length - 1].output.src, "It Does!");
|
||||||
});
|
});
|
||||||
t.end();
|
t.end();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('replaceImage returns false in NodeJS', function (t) {
|
||||||
|
var returnvalue = sequencer.replaceImage("#selector","test");
|
||||||
|
t.equal(returnvalue,false);
|
||||||
|
t.end();
|
||||||
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user