var assert = require(“assert”); var file = require('../file-system'); var fs = require('fs'); var path = require('path');

function getPath(filepath) {

return path.join(__dirname, filepath);

}

describe('copy file async', function() {

before(function() {
  file.writeFileSync(getPath('var/copy-file/index.html'), 1);
});

});

describe('copy file', function() {

before(function() {
  file.writeFileSync(getPath('var/copy-file/index.html'), 1);
});

describe('copy file async', function() {
  it('only copy', function(done) {
    var oldpath = getPath('var/copy-file/index.html');
    var newpath = getPath('var/copy-file/dest/index.async.dest.html');

    file.copyFile(oldpath, newpath, {
      process: function() {
        return 2;
      },
      done: function() {
        var contents = file.readFileSync(newpath, { encoding: 'utf8' });
        assert.equal(2, contents);
        assert.equal(true, file.existsSync(newpath));
        done();
      }
    });
  });

  it('copy image', function(done) {
    var oldpath = getPath('test.png');
    var newpath = getPath('var/copy-file/test.async.dest.png');

    file.copyFile(oldpath, newpath, {
      done: function() {
        assert.equal(file.readFileSync(oldpath).length, file.readFileSync(newpath).length);
        done();
      }
    });
  });
});

describe('copy file sync', function() {
  it('only copy', function() {
    var oldpath = getPath('var/copy-file/index.html');
    var newpath = getPath('var/copy-file/dest/index.dest.html');

    file.copyFileSync(oldpath, newpath);
    assert.equal(true, file.existsSync(newpath));
  });

  it('copy with process', function() {
    var oldpath = getPath('var/copy-file/index.html');
    var newpath = getPath('var/copy-file/dest/index.dest.html');

    file.copyFileSync(oldpath, newpath, {
      process: function(contents) {
        return 2;
      }
    });

    var contents = file.readFileSync(newpath, { encoding: 'utf8' });

    assert.equal(2, contents);
  });

  it('copy image', function() {
    var oldpath = getPath('test.png');
    var newpath = getPath('var/copy-file/test.dest.png');

    file.copyFileSync(oldpath, newpath);
    assert.equal(file.readFileSync(oldpath).length, file.readFileSync(newpath).length);
  });
});

after(function() {
  file.rmdirSync(getPath('var/copy-file'));
});

});