grunt-php2html
Version:
Frontend HTML generation with PHP
129 lines (98 loc) • 4.5 kB
JavaScript
;
const path = require('path');
const grunt = require('grunt');
/*
======== A Handy Little Nodeunit Reference ========
https://github.com/caolan/nodeunit
Test methods:
test.expect(numAssertions)
test.done()
Test assertions:
test.ok(value, [message])
test.equal(actual, expected, [message])
test.notEqual(actual, expected, [message])
test.deepEqual(actual, expected, [message])
test.notDeepEqual(actual, expected, [message])
test.strictEqual(actual, expected, [message])
test.notStrictEqual(actual, expected, [message])
test.throws(block, [error], [message])
test.doesNotThrow(block, [error], [message])
test.ifError(value)
*/
exports.php2html = {
setUp(done) {
// Setup here if necessary
done();
},
default(test) {
test.expect(2);
let actual = grunt.file.read('tmp/default/fixtures/index.html').replace(/[\s\r\n]/gm, '');
let expected = grunt.file.read('test/expected/index-replace.html').replace(/[\s\r\n]/gm, '');
test.equal(actual, expected, 'should show HTML content with test H1');
actual = grunt.file.read('tmp/default/some-other-fixtures/info.html').replace(/[\s\r\n]/gm, '');
expected = grunt.file.read('test/expected/info.html').replace(/[\s\r\n]/gm, '');
test.equal(actual, expected, 'should show HTML content');
test.done();
},
'dest-as-target'(test) {
test.expect(2);
let actual = grunt.file.read('tmp/dest-as-target/index.html').replace(/[\s\r\n]/gm, '');
let expected = grunt.file.read('test/expected/index.html').replace(/[\s\r\n]/gm, '');
test.equal(actual, expected, 'should show HTML content with test H1');
actual = grunt.file.read('tmp/dest-as-target/info.html').replace(/[\s\r\n]/gm, '');
expected = grunt.file.read('test/expected/info.html').replace(/[\s\r\n]/gm, '');
test.equal(actual, expected, 'should show HTML content');
test.done();
},
'first-error'(test) {
test.expect(2);
test.equal(grunt.file.exists('tmp/only-index/error.html'), false, 'file should NOT be created on error.');
test.equal(grunt.file.exists('tmp/only-index/index.html'), true, 'index file should be created even if first processed file is gets error');
test.done();
},
'first-error-nohalt'(test) {
test.expect(1);
test.equal(grunt.file.exists('tmp/nohalt/error.html'), true, 'file should be created on error.');
test.done();
},
'first-error-ignored'(test) {
test.expect(2);
test.equal(grunt.file.exists('tmp/only-index/error-ignored.html'), true, 'file should be created when error is ignored.');
const actual = grunt.file.read('tmp/only-index/error-ignored.html').replace(/[\s\r\n]/gm, '');
const expected = grunt.file.read('test/expected/error-ignored.html').replace(/[\s\r\n]/gm, '');
test.equal(actual, expected, 'it should output expected html');
test.done();
},
processTest(test) {
test.expect(1);
const actual = grunt.file.read('tmp/processTest/index.html');
const expected = ':-)';
test.equal(actual, expected, 'should show :-)');
test.done();
},
environment(test) {
const docrootfix = process.platform === 'win32' ? '\\' : '';
test.expect(6);
test.equal(grunt.file.read('tmp/test/env/DOCUMENT_ROOT.html'), process.cwd() + docrootfix, 'DOCUMENT_ROOT should be cwd()');
test.equal(grunt.file.read('tmp/test/env/PHP_SELF.html'), '/test/env/PHP_SELF.php', 'PHP_SELF should be relative script path');
test.equal(grunt.file.read('tmp/test/env/REQUEST_URI.html'), '/test/env/REQUEST_URI.php', 'REQUEST_URI should be relative script path');
test.equal(grunt.file.read('tmp/test/env/SCRIPT_NAME.html'), '/test/env/SCRIPT_NAME.php', 'SCRIPT_NAME should be relative script path');
test.equal(grunt.file.read('tmp/test/env/SCRIPT_FILENAME.html'), path.join(process.cwd(), 'test/env/SCRIPT_FILENAME.php'), 'SCRIPT_FILENAME should be absolute script path');
test.equal(grunt.file.read('tmp/test/env/SERVER_NAME.html'), 'mydomain.com', 'SERVER_NAME should be mydomain.com');
test.done();
},
getData(test) {
const expected = grunt.file.read('test/expected/get.html').replace(/[\s\t\r\n]+/gm, '');
const actual = grunt.file.read('tmp/data/get.html').replace(/[\s\t\r\n]+/gm, '');
test.expect(1);
test.equal(actual, expected, 'Should output data from query string');
test.done();
},
router(test) {
const expected = '/myroute';
const actual = grunt.file.read('tmp/router/myroute.html').replace(/[\s\t\r\n]+/gm, '');
test.expect(1);
test.equal(actual, expected, 'Should output request uri passed to router');
test.done();
}
};