From 3c7a86fc3c70c4bf64b6014794cd48a395feb875 Mon Sep 17 00:00:00 2001 From: Slava Kim Date: Tue, 16 Jun 2015 11:57:29 -0700 Subject: [PATCH] Tests for minifiers errors --- .../.meteor/.gitignore | 1 + .../.meteor/packages | 7 +++ .../.meteor/release | 1 + .../packages/local-plugin/package.js | 5 ++ .../packages/local-plugin/plugin.js | 11 ++++ .../.meteor/.gitignore | 1 + .../.meteor/.id | 7 +++ .../.meteor/packages | 8 +++ .../.meteor/platforms | 2 + .../.meteor/release | 1 + .../.meteor/versions | 53 +++++++++++++++++++ .../packages/local-plugin-2/package.js | 5 ++ .../packages/local-plugin-2/plugin.js | 11 ++++ .../packages/local-plugin/package.js | 5 ++ .../packages/local-plugin/plugin.js | 11 ++++ tools/tests/minifier-bad-plugins.js | 27 ++++++++++ 16 files changed, 156 insertions(+) create mode 100644 tools/tests/apps/minifier-plugin-bad-extension/.meteor/.gitignore create mode 100644 tools/tests/apps/minifier-plugin-bad-extension/.meteor/packages create mode 100644 tools/tests/apps/minifier-plugin-bad-extension/.meteor/release create mode 100644 tools/tests/apps/minifier-plugin-bad-extension/packages/local-plugin/package.js create mode 100644 tools/tests/apps/minifier-plugin-bad-extension/packages/local-plugin/plugin.js create mode 100644 tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/.meteor/.gitignore create mode 100644 tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/.meteor/.id create mode 100644 tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/.meteor/packages create mode 100644 tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/.meteor/platforms create mode 100644 tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/.meteor/release create mode 100644 tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/.meteor/versions create mode 100644 tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/packages/local-plugin-2/package.js create mode 100644 tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/packages/local-plugin-2/plugin.js create mode 100644 tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/packages/local-plugin/package.js create mode 100644 tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/packages/local-plugin/plugin.js create mode 100644 tools/tests/minifier-bad-plugins.js diff --git a/tools/tests/apps/minifier-plugin-bad-extension/.meteor/.gitignore b/tools/tests/apps/minifier-plugin-bad-extension/.meteor/.gitignore new file mode 100644 index 0000000000..4083037423 --- /dev/null +++ b/tools/tests/apps/minifier-plugin-bad-extension/.meteor/.gitignore @@ -0,0 +1 @@ +local diff --git a/tools/tests/apps/minifier-plugin-bad-extension/.meteor/packages b/tools/tests/apps/minifier-plugin-bad-extension/.meteor/packages new file mode 100644 index 0000000000..96f28a4166 --- /dev/null +++ b/tools/tests/apps/minifier-plugin-bad-extension/.meteor/packages @@ -0,0 +1,7 @@ +# Meteor packages used by this project, one per line. +# +# 'meteor add' and 'meteor remove' will edit this file for you, +# but you can also edit it by hand. + +meteor-platform +local-plugin diff --git a/tools/tests/apps/minifier-plugin-bad-extension/.meteor/release b/tools/tests/apps/minifier-plugin-bad-extension/.meteor/release new file mode 100644 index 0000000000..621e94f0ec --- /dev/null +++ b/tools/tests/apps/minifier-plugin-bad-extension/.meteor/release @@ -0,0 +1 @@ +none diff --git a/tools/tests/apps/minifier-plugin-bad-extension/packages/local-plugin/package.js b/tools/tests/apps/minifier-plugin-bad-extension/packages/local-plugin/package.js new file mode 100644 index 0000000000..73c1163b77 --- /dev/null +++ b/tools/tests/apps/minifier-plugin-bad-extension/packages/local-plugin/package.js @@ -0,0 +1,5 @@ +Package.registerBuildPlugin({ + name: "bad-minifier", + use: ['minifier-plugin'], + sources: ['plugin.js'] +}); diff --git a/tools/tests/apps/minifier-plugin-bad-extension/packages/local-plugin/plugin.js b/tools/tests/apps/minifier-plugin-bad-extension/packages/local-plugin/plugin.js new file mode 100644 index 0000000000..8682dea8e7 --- /dev/null +++ b/tools/tests/apps/minifier-plugin-bad-extension/packages/local-plugin/plugin.js @@ -0,0 +1,11 @@ +Plugin.registerMinifier({ + extensions: ["foo"], +}, function () { + var minifier = new Minifier(); + return minifier; +}); + +function Minifier () {}; + +Minifier.prototype.processFilesForTarget = function (files) { }; + diff --git a/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/.meteor/.gitignore b/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/.meteor/.gitignore new file mode 100644 index 0000000000..4083037423 --- /dev/null +++ b/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/.meteor/.gitignore @@ -0,0 +1 @@ +local diff --git a/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/.meteor/.id b/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/.meteor/.id new file mode 100644 index 0000000000..a47d607187 --- /dev/null +++ b/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/.meteor/.id @@ -0,0 +1,7 @@ +# This file contains a token that is unique to your project. +# Check it into your repository along with the rest of this directory. +# It can be used for purposes such as: +# - ensuring you don't accidentally deploy one app on top of another +# - providing package authors with aggregated statistics + +ogxdzy1on9lml15n20q5 diff --git a/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/.meteor/packages b/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/.meteor/packages new file mode 100644 index 0000000000..a168dc7dc3 --- /dev/null +++ b/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/.meteor/packages @@ -0,0 +1,8 @@ +# Meteor packages used by this project, one per line. +# +# 'meteor add' and 'meteor remove' will edit this file for you, +# but you can also edit it by hand. + +meteor-platform +local-plugin +local-plugin-2 diff --git a/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/.meteor/platforms b/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/.meteor/platforms new file mode 100644 index 0000000000..8a3a35f9f6 --- /dev/null +++ b/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/.meteor/platforms @@ -0,0 +1,2 @@ +browser +server diff --git a/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/.meteor/release b/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/.meteor/release new file mode 100644 index 0000000000..621e94f0ec --- /dev/null +++ b/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/.meteor/release @@ -0,0 +1 @@ +none diff --git a/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/.meteor/versions b/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/.meteor/versions new file mode 100644 index 0000000000..a68d134e0c --- /dev/null +++ b/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/.meteor/versions @@ -0,0 +1,53 @@ +autoupdate@1.2.2 +base64@1.0.3 +binary-heap@1.0.3 +blaze@2.1.2 +blaze-tools@1.0.3 +boilerplate-generator@1.0.3 +callback-hook@1.0.3 +check@1.0.5 +ddp@1.2.0 +ddp-client@1.2.0 +ddp-common@1.2.0 +ddp-server@1.2.0 +deps@1.0.7 +ejson@1.0.6 +fastclick@1.0.6 +geojson-utils@1.0.3 +html-tools@1.0.4 +htmljs@1.0.4 +http@1.1.0 +id-map@1.0.3 +jquery@1.11.3_2 +json@1.0.3 +launch-screen@1.0.3 +livedata@1.0.13 +local-plugin@0.0.0 +local-plugin-2@0.0.0 +logging@1.0.8 +meteor@1.1.6 +meteor-platform@1.2.2 +minifier-plugin@1.0.0 +minifiers@1.1.5 +minimongo@1.0.8 +mobile-status-bar@1.0.4 +mongo@1.1.0 +npm-mongo@1.4.32_1 +observe-sequence@1.0.6 +ordered-dict@1.0.3 +random@1.0.3 +reactive-dict@1.1.0 +reactive-var@1.0.5 +reload@1.1.3 +retry@1.0.3 +routepolicy@1.0.5 +session@1.1.0 +spacebars@1.0.6 +spacebars-compiler@1.0.6 +templating@1.1.1 +tracker@1.0.7 +ui@1.0.6 +underscore@1.0.3 +url@1.0.4 +webapp@1.2.1 +webapp-hashing@1.0.3 diff --git a/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/packages/local-plugin-2/package.js b/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/packages/local-plugin-2/package.js new file mode 100644 index 0000000000..418ed99e3c --- /dev/null +++ b/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/packages/local-plugin-2/package.js @@ -0,0 +1,5 @@ +Package.registerBuildPlugin({ + name: "bad-minifier-2", + use: ['minifier-plugin'], + sources: ['plugin.js'] +}); diff --git a/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/packages/local-plugin-2/plugin.js b/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/packages/local-plugin-2/plugin.js new file mode 100644 index 0000000000..6eda77c1d7 --- /dev/null +++ b/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/packages/local-plugin-2/plugin.js @@ -0,0 +1,11 @@ +Plugin.registerMinifier({ + extensions: ["js"], +}, function () { + var minifier = new Minifier(); + return minifier; +}); + +function Minifier () {}; + +Minifier.prototype.processFilesForTarget = function (files) { }; + diff --git a/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/packages/local-plugin/package.js b/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/packages/local-plugin/package.js new file mode 100644 index 0000000000..73c1163b77 --- /dev/null +++ b/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/packages/local-plugin/package.js @@ -0,0 +1,5 @@ +Package.registerBuildPlugin({ + name: "bad-minifier", + use: ['minifier-plugin'], + sources: ['plugin.js'] +}); diff --git a/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/packages/local-plugin/plugin.js b/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/packages/local-plugin/plugin.js new file mode 100644 index 0000000000..6eda77c1d7 --- /dev/null +++ b/tools/tests/apps/minifier-plugin-multiple-minifiers-for-js/packages/local-plugin/plugin.js @@ -0,0 +1,11 @@ +Plugin.registerMinifier({ + extensions: ["js"], +}, function () { + var minifier = new Minifier(); + return minifier; +}); + +function Minifier () {}; + +Minifier.prototype.processFilesForTarget = function (files) { }; + diff --git a/tools/tests/minifier-bad-plugins.js b/tools/tests/minifier-bad-plugins.js new file mode 100644 index 0000000000..6a45d928cf --- /dev/null +++ b/tools/tests/minifier-bad-plugins.js @@ -0,0 +1,27 @@ +var selftest = require('../selftest.js'); +var Sandbox = selftest.Sandbox; + +selftest.define("minifiers can't register non-js/non-css extensions", [], function () { + var s = new Sandbox(); + var run; + + s.createApp("myapp", "minifier-plugin-bad-extension", { dontPrepareApp: true }); + s.cd("myapp"); + + run = s.run(); + run.match("foo: Minifiers are only allowed to register \"css\" or \"js\" extensions."); + run.stop(); +}); + +selftest.define("minifiers: apps can't use more than one package providing a minifier for the same extension", [], function () { + var s = new Sandbox(); + var run; + + s.createApp("myapp", "minifier-plugin-multiple-minifiers-for-js", { dontPrepareApp: true }); + s.cd("myapp"); + + run = s.run("--production"); + run.match("local-plugin, local-plugin-2: multiple packages registered minifiers for extension \"js\"."); + run.stop(); +}); +