From acb772c6cb796605a12d8845dba1602ec737b7fa Mon Sep 17 00:00:00 2001 From: David Greenspan Date: Wed, 28 May 2014 15:50:06 -0700 Subject: [PATCH] =?UTF-8?q?Fix=20some=20usages=20of=20.extend(=E2=80=A6)?= =?UTF-8?q?=20in=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit rename newblaze.js to template.js --- packages/spacebars-tests/template_tests.js | 18 +++++++-- packages/templating/templating_tests.js | 44 +++++++++++++--------- packages/ui/package.js | 2 +- packages/ui/{newblaze.js => template.js} | 4 ++ 4 files changed, 46 insertions(+), 22 deletions(-) rename packages/ui/{newblaze.js => template.js} (95%) diff --git a/packages/spacebars-tests/template_tests.js b/packages/spacebars-tests/template_tests.js index 6c2bbea1c6..39b3c9c045 100644 --- a/packages/spacebars-tests/template_tests.js +++ b/packages/spacebars-tests/template_tests.js @@ -1,6 +1,16 @@ -var renderToDiv = function (comp) { +var renderToDiv = function (comp, optData) { var div = document.createElement("DIV"); - Blaze.renderComponent(comp, div); + if (optData == null) { + Blaze.renderComponent(comp, div); + } else { + var constructor = + (typeof comp === 'function' ? comp : comp.constructor); + Blaze.render(function () { + return Blaze.With(optData, function () { + return new constructor; + }); + }).attach(div); + } return div; }; @@ -223,7 +233,7 @@ Tinytest.add("spacebars-tests - template_tests - inclusion dotted args", functio return { baz: this.symbol + R.get() }; }; - var div = renderToDiv(tmpl.extend({data: {symbol:'%'}})); + var div = renderToDiv(tmpl, {symbol:'%'}); test.equal(initCount, 1); test.equal(canonicalizeHtml(div.innerHTML), '[%david]'); @@ -249,7 +259,7 @@ Tinytest.add("spacebars-tests - template_tests - inclusion slashed args", functi return { baz: this.symbol + R.get() }; }; - var div = renderToDiv(tmpl.extend({data: {symbol:'%'}})); + var div = renderToDiv(tmpl, {symbol:'%'}); test.equal(initCount, 1); test.equal(canonicalizeHtml(div.innerHTML), '[%david]'); }); diff --git a/packages/templating/templating_tests.js b/packages/templating/templating_tests.js index e2939a5764..07e24fddea 100644 --- a/packages/templating/templating_tests.js +++ b/packages/templating/templating_tests.js @@ -1,7 +1,17 @@ // render and put in the document -var renderToDiv = function (comp) { +var renderToDiv = function (comp, optData) { var div = document.createElement("DIV"); - Blaze.renderComponent(comp, div); + if (optData == null) { + Blaze.renderComponent(comp, div); + } else { + var constructor = + (typeof comp === 'function' ? comp : comp.constructor); + Blaze.render(function () { + return Blaze.With(optData, function () { + return new constructor; + }); + }).attach(div); + } return div; }; @@ -62,7 +72,7 @@ Tinytest.add("templating - table assembly", function(test) { c.insert({bar:'a'}); c.insert({bar:'b'}); c.insert({bar:'c'}); - var onscreen = renderToDiv(Template.test_table_each.extend({data: {foo: c.find()}})); + var onscreen = renderToDiv(Template.test_table_each, {foo: c.find()}); table = childWithTag(onscreen, "TABLE"); test.equal(table.rows.length, 3, table.parentNode.innerHTML); @@ -90,8 +100,8 @@ Tinytest.add("templating - event handler this", function(test) { }); var event_buf = []; - var containerDiv = renderToDiv(Template.test_event_data_with.extend({data: - Template.test_event_data_with.ONE})); + var containerDiv = renderToDiv(Template.test_event_data_with, + Template.test_event_data_with.ONE); var cleanupDiv = addToBody(containerDiv); var divs = containerDiv.getElementsByTagName("div"); @@ -180,7 +190,7 @@ Tinytest.add("templating - safestring", function(test) { var obj = {fooprop: "
", barprop: new Spacebars.SafeString("
")}; var html = canonicalizeHtml( - renderToDiv(Template.test_safestring_a.extend({data: obj})).innerHTML); + renderToDiv(Template.test_safestring_a, obj).innerHTML); test.equal(html, "<br>


"+ @@ -258,7 +268,7 @@ Tinytest.add("templating - helpers and dots", function(test) { var html; html = canonicalizeHtml( - renderToDiv(Template.test_helpers_a.extend({data: dataObj})).innerHTML); + renderToDiv(Template.test_helpers_a, dataObj).innerHTML); test.equal(html.match(/\S+/g), [ 'platypus=bill', // helpers on Template object take first priority 'watermelon=seeds', // global helpers take second priority @@ -268,7 +278,7 @@ Tinytest.add("templating - helpers and dots", function(test) { ]); html = canonicalizeHtml( - renderToDiv(Template.test_helpers_b.extend({data: dataObj})).innerHTML); + renderToDiv(Template.test_helpers_b, dataObj).innerHTML); test.equal(html.match(/\S+/g), [ // unknown properties silently fail 'unknown=', @@ -277,7 +287,7 @@ Tinytest.add("templating - helpers and dots", function(test) { ]); html = canonicalizeHtml( - renderToDiv(Template.test_helpers_c.extend({data: dataObj})).innerHTML); + renderToDiv(Template.test_helpers_c, dataObj).innerHTML); test.equal(html.match(/\S+/g), [ // property gets are supposed to silently fail 'platypus.X=', @@ -291,7 +301,7 @@ Tinytest.add("templating - helpers and dots", function(test) { ]); html = canonicalizeHtml( - renderToDiv(Template.test_helpers_d.extend({data: dataObj})).innerHTML); + renderToDiv(Template.test_helpers_d, dataObj).innerHTML); test.equal(html.match(/\S+/g), [ // helpers should get current data context in `this` 'daisygetter=petal', @@ -305,7 +315,7 @@ Tinytest.add("templating - helpers and dots", function(test) { ]); html = canonicalizeHtml( - renderToDiv(Template.test_helpers_e.extend({data: dataObj})).innerHTML); + renderToDiv(Template.test_helpers_e, dataObj).innerHTML); test.equal(html.match(/\S+/g), [ 'fancy.foo=bar', 'fancy.apple.banana=smoothie', @@ -316,7 +326,7 @@ Tinytest.add("templating - helpers and dots", function(test) { ]); html = canonicalizeHtml( - renderToDiv(Template.test_helpers_f.extend({data: dataObj})).innerHTML); + renderToDiv(Template.test_helpers_f, dataObj).innerHTML); test.equal(html.match(/\S+/g), [ 'fancyhelper.foo=bar', 'fancyhelper.apple.banana=smoothie', @@ -329,7 +339,7 @@ Tinytest.add("templating - helpers and dots", function(test) { // test significance of 'this', which prevents helper from // shadowing property html = canonicalizeHtml( - renderToDiv(Template.test_helpers_g.extend({data: dataObj})).innerHTML); + renderToDiv(Template.test_helpers_g, dataObj).innerHTML); test.equal(html.match(/\S+/g), [ 'platypus=eggs', 'this.platypus=weird' @@ -340,7 +350,7 @@ Tinytest.add("templating - helpers and dots", function(test) { Template.test_helpers_h.helperListFour = listFour; html = canonicalizeHtml( - renderToDiv(Template.test_helpers_h.extend({data: dataObj})).innerHTML); + renderToDiv(Template.test_helpers_h, dataObj).innerHTML); var trials = html.match(/\(.*?\)/g); test.equal(trials[0], @@ -365,7 +375,7 @@ Tinytest.add("templating - rendered template", function(test) { return this.x + 1; }; - var div = renderToDiv(Template.test_render_a.extend({data: {x: 123}})); + var div = renderToDiv(Template.test_render_a, {x: 123}); test.equal($(div).text().match(/\S+/)[0], "124"); var br1 = div.getElementsByTagName('br')[0]; @@ -393,7 +403,7 @@ Tinytest.add("templating - rendered template", function(test) { return (+this) + 1; }; - div = renderToDiv(Template.test_render_b.extend({data: {x: 123}})); + div = renderToDiv(Template.test_render_b, {x: 123}); test.equal($(div).text().match(/\S+/)[0], "201"); var br1 = div.getElementsByTagName('br')[0]; @@ -451,7 +461,7 @@ Tinytest.add("templating - template arg", function (test) { test.throws(function () { return self.findAll("*"); }); }; - var div = renderToDiv(Template.test_template_arg_a.extend({data: {food: "pie"}})); + var div = renderToDiv(Template.test_template_arg_a, {food: "pie"}); var cleanupDiv = addToBody(div); Deps.flush(); // cause `rendered` to be called test.equal($(div).text(), "Greetings 1-bold Line"); diff --git a/packages/ui/package.js b/packages/ui/package.js index 1a6dfe9816..ba9547be05 100644 --- a/packages/ui/package.js +++ b/packages/ui/package.js @@ -36,7 +36,7 @@ Package.on_use(function (api) { api.add_files(['handlebars_backcompat.js']); - api.add_files(['newblaze.js']); + api.add_files(['template.js']); }); Package.on_test(function (api) { diff --git a/packages/ui/newblaze.js b/packages/ui/template.js similarity index 95% rename from packages/ui/newblaze.js rename to packages/ui/template.js index 9862459978..cf25ea2a1c 100644 --- a/packages/ui/newblaze.js +++ b/packages/ui/template.js @@ -90,5 +90,9 @@ UI.TemplateComponent = Blaze.Component.extend({ }, helpers: function (dict) { _.extend(this, dict); + }, + extend: function () { + throw new Error( + "Component#extend was part of a private API that has been removed"); } });