From 7d730049d97fdf1e8023a9677cb1567e78b8954f Mon Sep 17 00:00:00 2001 From: Patrick Steele-Idem Date: Thu, 4 Feb 2016 20:52:00 -0700 Subject: [PATCH] Marko v3: Restored more of the tests from Marko v2 --- compiler/index.js | 5 +- compiler/taglib-lookup/index.js | 10 +-- taglibs/core/marko-taglib.json | 5 +- .../taglib-custom-attribute/marko-taglib.json | 5 ++ .../fixtures/taglib-duplicate/foo-renderer.js | 3 + .../taglib-duplicate/marko-taglib.json | 6 ++ .../taglib-duplicate/bar-renderer.js | 3 + .../taglib-duplicate/marko-taglib.json | 6 ++ .../marko-taglib.json | 7 ++ .../taglib-dynamic-attribute/renderer.js | 1 + test/fixtures/taglib-nested/foo-renderer.js | 3 + test/fixtures/taglib-nested/marko-taglib.json | 10 +++ .../taglib-shorthand/marko-taglib.json | 25 ++++++ .../taglib-transformers/bar-transformer.js | 3 + .../taglib-transformers/foo-transformer.js | 3 + .../taglib-transformers/marko-taglib.json | 18 ++++ test/taglib-loader-test.js | 4 +- test/taglib-lookup-test.js | 85 +++++++------------ 18 files changed, 137 insertions(+), 65 deletions(-) create mode 100644 test/fixtures/taglib-custom-attribute/marko-taglib.json create mode 100644 test/fixtures/taglib-duplicate/foo-renderer.js create mode 100644 test/fixtures/taglib-duplicate/marko-taglib.json create mode 100644 test/fixtures/taglib-duplicate/taglib-duplicate/bar-renderer.js create mode 100644 test/fixtures/taglib-duplicate/taglib-duplicate/marko-taglib.json create mode 100644 test/fixtures/taglib-dynamic-attribute/marko-taglib.json create mode 100644 test/fixtures/taglib-dynamic-attribute/renderer.js create mode 100644 test/fixtures/taglib-nested/foo-renderer.js create mode 100644 test/fixtures/taglib-nested/marko-taglib.json create mode 100644 test/fixtures/taglib-shorthand/marko-taglib.json create mode 100644 test/fixtures/taglib-transformers/bar-transformer.js create mode 100644 test/fixtures/taglib-transformers/foo-transformer.js create mode 100644 test/fixtures/taglib-transformers/marko-taglib.json diff --git a/compiler/index.js b/compiler/index.js index 29e47fcd3..17f642ee7 100644 --- a/compiler/index.js +++ b/compiler/index.js @@ -127,13 +127,16 @@ exports.createWalker = createWalker; exports.builder = Builder.DEFAULT_BUILDER; var taglibLookup = require('./taglib-lookup'); +exports.taglibLookup = taglibLookup; +exports.taglibLoader = require('./taglib-loader'); + taglibLookup.registerTaglib(require.resolve('../taglibs/core/marko-taglib.json')); taglibLookup.registerTaglib(require.resolve('../taglibs/layout/marko-taglib.json')); taglibLookup.registerTaglib(require.resolve('../taglibs/html/marko-taglib.json')); /* exports.Taglib = require('./Taglib'); -exports.loader = require('./taglib-loader'); + exports.lookup = require('./taglib-lookup'); exports.buildLookup = exports.lookup.buildLookup; exports.registerTaglib = exports.lookup.registerTaglib; diff --git a/compiler/taglib-lookup/index.js b/compiler/taglib-lookup/index.js index 12a5c77a8..2cc74642f 100644 --- a/compiler/taglib-lookup/index.js +++ b/compiler/taglib-lookup/index.js @@ -14,6 +14,9 @@ * limitations under the License. */ 'use strict'; +exports.registerTaglib = registerTaglib; +exports.buildLookup = buildLookup; +exports.clearCaches = clearCaches; var taglibLoader = require('../taglib-loader'); var taglibFinder = require('../taglib-finder'); @@ -74,9 +77,4 @@ function registerTaglib(taglib) { function clearCaches() { lookupCache = {}; -} - -exports.excludeDir = taglibFinder.excludeDir; -exports.registerTaglib = registerTaglib; -exports.buildLookup = buildLookup; -exports.clearCaches = clearCaches; \ No newline at end of file +} \ No newline at end of file diff --git a/taglibs/core/marko-taglib.json b/taglibs/core/marko-taglib.json index 6558f4cbe..b2904d01b 100644 --- a/taglibs/core/marko-taglib.json +++ b/taglibs/core/marko-taglib.json @@ -47,6 +47,9 @@ "@else-if": "argument", "@else": "argument", "@for": "argument", - "transformer": "./core-transformer" + "transformer": { + "path": "./core-transformer", + "priority": 0 + } } } \ No newline at end of file diff --git a/test/fixtures/taglib-custom-attribute/marko-taglib.json b/test/fixtures/taglib-custom-attribute/marko-taglib.json new file mode 100644 index 000000000..9acdd3ce6 --- /dev/null +++ b/test/fixtures/taglib-custom-attribute/marko-taglib.json @@ -0,0 +1,5 @@ +{ + "<*>": { + "@global-attribute": "boolean" + } +} \ No newline at end of file diff --git a/test/fixtures/taglib-duplicate/foo-renderer.js b/test/fixtures/taglib-duplicate/foo-renderer.js new file mode 100644 index 000000000..ddb02a748 --- /dev/null +++ b/test/fixtures/taglib-duplicate/foo-renderer.js @@ -0,0 +1,3 @@ +exports.render = function(input, out) { + +}; \ No newline at end of file diff --git a/test/fixtures/taglib-duplicate/marko-taglib.json b/test/fixtures/taglib-duplicate/marko-taglib.json new file mode 100644 index 000000000..abe89e11c --- /dev/null +++ b/test/fixtures/taglib-duplicate/marko-taglib.json @@ -0,0 +1,6 @@ +{ + "taglib-id": "taglib-duplicate", + "": { + "renderer": "./foo-renderer.js" + } +} \ No newline at end of file diff --git a/test/fixtures/taglib-duplicate/taglib-duplicate/bar-renderer.js b/test/fixtures/taglib-duplicate/taglib-duplicate/bar-renderer.js new file mode 100644 index 000000000..ddb02a748 --- /dev/null +++ b/test/fixtures/taglib-duplicate/taglib-duplicate/bar-renderer.js @@ -0,0 +1,3 @@ +exports.render = function(input, out) { + +}; \ No newline at end of file diff --git a/test/fixtures/taglib-duplicate/taglib-duplicate/marko-taglib.json b/test/fixtures/taglib-duplicate/taglib-duplicate/marko-taglib.json new file mode 100644 index 000000000..b9bd03fdf --- /dev/null +++ b/test/fixtures/taglib-duplicate/taglib-duplicate/marko-taglib.json @@ -0,0 +1,6 @@ +{ + "taglib-id": "taglib-duplicate", + "": { + "renderer": "./bar-renderer.js" + } +} \ No newline at end of file diff --git a/test/fixtures/taglib-dynamic-attribute/marko-taglib.json b/test/fixtures/taglib-dynamic-attribute/marko-taglib.json new file mode 100644 index 000000000..5a1c3270f --- /dev/null +++ b/test/fixtures/taglib-dynamic-attribute/marko-taglib.json @@ -0,0 +1,7 @@ +{ + "": { + "renderer": "./renderer.js", + "@foo": "string", + "@*": "boolean" + } +} \ No newline at end of file diff --git a/test/fixtures/taglib-dynamic-attribute/renderer.js b/test/fixtures/taglib-dynamic-attribute/renderer.js new file mode 100644 index 000000000..c3b42bc5b --- /dev/null +++ b/test/fixtures/taglib-dynamic-attribute/renderer.js @@ -0,0 +1 @@ +module.exports = function() {}; \ No newline at end of file diff --git a/test/fixtures/taglib-nested/foo-renderer.js b/test/fixtures/taglib-nested/foo-renderer.js new file mode 100644 index 000000000..7ba89a90b --- /dev/null +++ b/test/fixtures/taglib-nested/foo-renderer.js @@ -0,0 +1,3 @@ +exports.render = function(input, out) { + out.write('nested/a'); +}; \ No newline at end of file diff --git a/test/fixtures/taglib-nested/marko-taglib.json b/test/fixtures/taglib-nested/marko-taglib.json new file mode 100644 index 000000000..db511eda3 --- /dev/null +++ b/test/fixtures/taglib-nested/marko-taglib.json @@ -0,0 +1,10 @@ +{ + "tags": { + "nested-foo": { + "renderer": "./foo-renderer.js", + "attributes": { + "attr1": "string" + } + } + } +} \ No newline at end of file diff --git a/test/fixtures/taglib-shorthand/marko-taglib.json b/test/fixtures/taglib-shorthand/marko-taglib.json new file mode 100644 index 000000000..9fc49894f --- /dev/null +++ b/test/fixtures/taglib-shorthand/marko-taglib.json @@ -0,0 +1,25 @@ +{ + "": { + "@label