Additional Testing

This commit is contained in:
Chinmay Pandhare
2017-07-11 08:28:19 +05:30
parent fdf3d140ac
commit fca24f8f8f
6 changed files with 123 additions and 20 deletions

View File

@@ -7,7 +7,9 @@ node_js:
- '8'
env:
- CXX=g++-4.8
script: npm test
script:
- npm test
- grunt build
addons:
apt:
sources:

View File

@@ -34810,15 +34810,15 @@ ImageSequencer = function ImageSequencer(options) {
// else if (options.imageUrl) loadImage(imageUrl);
function addSteps(){
thiss = (this.name == "ImageSequencer")?this:this.sequencer;
const this_ = (this.name == "ImageSequencer")?this:this.sequencer;
args = (this.name == "ImageSequencer")?[]:[this.images];
json_q = {};
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 (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;
}
@@ -34834,7 +34834,7 @@ ImageSequencer = function ImageSequencer(options) {
function removeSteps(image,index) {
run = {};
this_ = (this.name == "ImageSequencer")?this:this.sequencer;
const this_ = (this.name == "ImageSequencer")?this:this.sequencer;
args = (this.name == "ImageSequencer")?[]:[this.images];
for(arg in arguments) args.push(copy(arguments[arg]));
json_q = formatInput.call(this_,args,"-");
@@ -34851,7 +34851,7 @@ ImageSequencer = function ImageSequencer(options) {
function insertSteps(image, index, name, o) {
run = {};
this_ = (this.name == "ImageSequencer")?this:this.sequencer;
const this_ = (this.name == "ImageSequencer")?this:this.sequencer;
args = (this.name == "ImageSequencer")?[]:[this.images];
for (arg in arguments) args.push(arguments[arg]);
@@ -34870,7 +34870,7 @@ ImageSequencer = function ImageSequencer(options) {
function run(t_image,t_from) {
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];
for (var arg in arguments) args.push(copy(arguments[arg]));
callback = function() {};
@@ -34909,7 +34909,7 @@ ImageSequencer = function ImageSequencer(options) {
function replaceImage(selector,steps,options) {
options = options || {};
require('./ReplaceImage')(this,selector,steps);
return require('./ReplaceImage')(this,selector,steps);
}
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){
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;
var input = document.querySelectorAll(selector);
var images = [];

View File

@@ -48,15 +48,15 @@ ImageSequencer = function ImageSequencer(options) {
// else if (options.imageUrl) loadImage(imageUrl);
function addSteps(){
thiss = (this.name == "ImageSequencer")?this:this.sequencer;
const this_ = (this.name == "ImageSequencer")?this:this.sequencer;
args = (this.name == "ImageSequencer")?[]:[this.images];
json_q = {};
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 (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;
}
@@ -72,7 +72,7 @@ ImageSequencer = function ImageSequencer(options) {
function removeSteps(image,index) {
run = {};
this_ = (this.name == "ImageSequencer")?this:this.sequencer;
const this_ = (this.name == "ImageSequencer")?this:this.sequencer;
args = (this.name == "ImageSequencer")?[]:[this.images];
for(arg in arguments) args.push(copy(arguments[arg]));
json_q = formatInput.call(this_,args,"-");
@@ -89,7 +89,7 @@ ImageSequencer = function ImageSequencer(options) {
function insertSteps(image, index, name, o) {
run = {};
this_ = (this.name == "ImageSequencer")?this:this.sequencer;
const this_ = (this.name == "ImageSequencer")?this:this.sequencer;
args = (this.name == "ImageSequencer")?[]:[this.images];
for (arg in arguments) args.push(arguments[arg]);
@@ -108,7 +108,7 @@ ImageSequencer = function ImageSequencer(options) {
function run(t_image,t_from) {
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];
for (var arg in arguments) args.push(copy(arguments[arg]));
callback = function() {};
@@ -147,7 +147,7 @@ ImageSequencer = function ImageSequencer(options) {
function replaceImage(selector,steps,options) {
options = options || {};
require('./ReplaceImage')(this,selector,steps);
return require('./ReplaceImage')(this,selector,steps);
}
return {

View File

@@ -1,5 +1,5 @@
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;
var input = document.querySelectorAll(selector);
var images = [];

76
test/chain.js Normal file
View 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();
});

View File

@@ -9,18 +9,37 @@ var test = require('tape');
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('Image Sequencer has tests', function (t) {
t.equal(true, true);
t.end();
});
test('loadImages loads an image and creates a step.', function (t){
sequencer.loadImages('test','examples/red.jpg');
test('loadImages loads a DataURL image and creates a step.', function (t){
sequencer.loadImages('test',red);
t.equal(sequencer.images.test.steps.length, 1, "It Does!");
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) {
sequencer.addSteps('test','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) {
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(out,sequencer.images.test.steps[sequencer.images.test.steps.length - 1].output.src, "It Does!");
});
t.end();
});
test('replaceImage returns false in NodeJS', function (t) {
var returnvalue = sequencer.replaceImage("#selector","test");
t.equal(returnvalue,false);
t.end();
});