function testScreenshots(title, name, config, files) {
      it(title, function(done) {
        var filenamesCalled = false;
        var testFolder = path.join(__dirname, 'assets', 'screenshots_' + name);

        var context = this;
        files.forEach(function(file) {
          context.files.push(path.join(testFolder, file));
        });
        this.dirs.push(testFolder);

        this.getCommand({ source: this.testfile, logger: testhelper.logger })
          .on('error', function(err, stdout, stderr) {
            testhelper.logError(err, stdout, stderr);
            assert.ok(!err);
          })
          .on('filenames', function(filenames) {
            filenamesCalled = true;
            filenames.length.should.equal(files.length);
            filenames.forEach(function(file, index) {
              file.should.equal(files[index]);
            });
          })
          .on('end', function() {
            filenamesCalled.should.equal(true);
            fs.readdir(testFolder, function(err, content) {
              var tnCount = 0;
              content.forEach(function(file) {
                if (file.indexOf('.png') > -1) {
                  tnCount++;
                }
              });
              tnCount.should.equal(files.length);
              files.forEach(function(file) {
                content.indexOf(file).should.not.equal(-1);
              });
              done();
            });
          })
          .takeScreenshots(config, testFolder);
      });
    }
**************************************************************

              IMPORTANT NOTE ABOUT PROCESSOR TESTS

 To ensure tests run reliably, you should do the following:
Any input file you use must be tested for existence before
   running the tests.  Use the 'prerequisite' function below and
   add any new file there.
FfmpegCommands should be created using 'this.getCommand(args)'
   in the test definition, not using 'new Ffmpegcommand(args)'.
   This enables ensuring the command is finished before starting
   the next test.
Any file your test is expected to create should have their full
   path pushed to the 'this.files' array in the test definition,
   and your test should *not* remove them on completion.  The
   cleanup hook will check all those files for existence and remove
   them.
Same thing with directories in the 'this.dirs' array.
If you use intervals or timeouts, please ensure they have been
   canceled (for intervals) or called (for timeouts) before
   calling the test 'done()' callback.

 Not abiding by those rules is BAD.  You have been warned :)
***************************************************************