diff --git a/tools/tests/apps/app-using-stylus/.meteor/.gitignore b/tools/tests/apps/app-using-stylus/.meteor/.gitignore new file mode 100644 index 0000000000..4083037423 --- /dev/null +++ b/tools/tests/apps/app-using-stylus/.meteor/.gitignore @@ -0,0 +1 @@ +local diff --git a/tools/tests/apps/app-using-stylus/.meteor/.id b/tools/tests/apps/app-using-stylus/.meteor/.id new file mode 100644 index 0000000000..c4e9c530a1 --- /dev/null +++ b/tools/tests/apps/app-using-stylus/.meteor/.id @@ -0,0 +1 @@ +1da9lx3m24vwv1kt1w0a \ No newline at end of file diff --git a/tools/tests/apps/app-using-stylus/.meteor/packages b/tools/tests/apps/app-using-stylus/.meteor/packages new file mode 100644 index 0000000000..b7360f6938 --- /dev/null +++ b/tools/tests/apps/app-using-stylus/.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 +my-package +stylus diff --git a/tools/tests/apps/app-using-stylus/.meteor/platforms b/tools/tests/apps/app-using-stylus/.meteor/platforms new file mode 100644 index 0000000000..8a3a35f9f6 --- /dev/null +++ b/tools/tests/apps/app-using-stylus/.meteor/platforms @@ -0,0 +1,2 @@ +browser +server diff --git a/tools/tests/apps/app-using-stylus/.meteor/release b/tools/tests/apps/app-using-stylus/.meteor/release new file mode 100644 index 0000000000..621e94f0ec --- /dev/null +++ b/tools/tests/apps/app-using-stylus/.meteor/release @@ -0,0 +1 @@ +none diff --git a/tools/tests/apps/app-using-stylus/.meteor/versions b/tools/tests/apps/app-using-stylus/.meteor/versions new file mode 100644 index 0000000000..97685fd3a5 --- /dev/null +++ b/tools/tests/apps/app-using-stylus/.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 +compiler-plugin@1.0.0 +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 +logging@1.0.8 +meteor@1.1.6 +meteor-platform@1.2.2 +minifiers@1.1.5 +minimongo@1.0.8 +mobile-status-bar@1.0.4 +mongo@1.1.0 +my-package@0.0.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 +stylus@2.0.0_511 +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/app-using-stylus/body.html b/tools/tests/apps/app-using-stylus/body.html new file mode 100644 index 0000000000..26cc630d66 --- /dev/null +++ b/tools/tests/apps/app-using-stylus/body.html @@ -0,0 +1,8 @@ + +
package-level
+
package-level-local-export
+
package-level-imported-to-app
+
app-level
+
app-level-export
+ + diff --git a/tools/tests/apps/app-using-stylus/client/app-export.styl b/tools/tests/apps/app-using-stylus/client/app-export.styl new file mode 100644 index 0000000000..2c2d1878a5 --- /dev/null +++ b/tools/tests/apps/app-using-stylus/client/app-export.styl @@ -0,0 +1,4 @@ +.app-level-export { + background-color: aqua +} + diff --git a/tools/tests/apps/app-using-stylus/client/app.main.styl b/tools/tests/apps/app-using-stylus/client/app.main.styl new file mode 100644 index 0000000000..2c320b346d --- /dev/null +++ b/tools/tests/apps/app-using-stylus/client/app.main.styl @@ -0,0 +1,7 @@ +@import '{my-package}/package-export.styl' +@import '{}/client/app-export.styl' + +.app-level { + background-color: chocolate +} + diff --git a/tools/tests/apps/app-using-stylus/main.js b/tools/tests/apps/app-using-stylus/main.js new file mode 100644 index 0000000000..8396737c40 --- /dev/null +++ b/tools/tests/apps/app-using-stylus/main.js @@ -0,0 +1,26 @@ +if (Meteor.isClient) { + Meteor.startup(function () { + var classes = ['app-level', 'app-level-export', 'package-level', 'package-level-local-export', 'package-level-imported-to-app']; + var colors = ['chocolate', 'cyan', 'salmon', 'red', 'blue']; + for (var i in classes) { + var selector = '.' + classes[i]; + Meteor.call('print', getComputedStyle(document.querySelector(selector))['background-color'] === colorToRGBString(colors[i])); + } + }); + + function colorToRGBString(color) { + d = document.createElement("div"); + d.style.color = color; + document.body.appendChild(d); + var str = getComputedStyle(d).color; + document.body.removeChild(d); + return str; + } +} else { + Meteor.methods({ + print: function (str) { + console.log(str); + } + }); +} + diff --git a/tools/tests/apps/app-using-stylus/packages/my-package/package-export.styl b/tools/tests/apps/app-using-stylus/packages/my-package/package-export.styl new file mode 100644 index 0000000000..990c3868c8 --- /dev/null +++ b/tools/tests/apps/app-using-stylus/packages/my-package/package-export.styl @@ -0,0 +1,4 @@ +.package-level-imported-to-app { + background-color: blue +} + diff --git a/tools/tests/apps/app-using-stylus/packages/my-package/package-file.main.styl b/tools/tests/apps/app-using-stylus/packages/my-package/package-file.main.styl new file mode 100644 index 0000000000..6d24b25f21 --- /dev/null +++ b/tools/tests/apps/app-using-stylus/packages/my-package/package-file.main.styl @@ -0,0 +1,6 @@ +.package-level { + background-color: salmon +} + +@import 'package-local-export.styl' + diff --git a/tools/tests/apps/app-using-stylus/packages/my-package/package-local-export.styl b/tools/tests/apps/app-using-stylus/packages/my-package/package-local-export.styl new file mode 100644 index 0000000000..16a6736e7b --- /dev/null +++ b/tools/tests/apps/app-using-stylus/packages/my-package/package-local-export.styl @@ -0,0 +1,4 @@ +.package-level-local-export { + background-color: red +} + diff --git a/tools/tests/apps/app-using-stylus/packages/my-package/package.js b/tools/tests/apps/app-using-stylus/packages/my-package/package.js new file mode 100644 index 0000000000..98a7054275 --- /dev/null +++ b/tools/tests/apps/app-using-stylus/packages/my-package/package.js @@ -0,0 +1,11 @@ +Package.describe({ + summary: "test local package for using stylus" +}); + +Package.onUse(function (api) { + api.addFiles('package-file.main.styl', 'client'); + api.addFiles('package-local-export.styl', 'client'); + api.addFiles('package-export.styl', 'client'); + + api.use('stylus'); +}); diff --git a/tools/tests/stylus-cross-packages.js b/tools/tests/stylus-cross-packages.js new file mode 100644 index 0000000000..352fb8fb2f --- /dev/null +++ b/tools/tests/stylus-cross-packages.js @@ -0,0 +1,30 @@ +var selftest = require('../selftest.js'); +var Sandbox = selftest.Sandbox; +var utils = require('../utils.js'); + +selftest.define("can import stylus across packages", function (options) { + var s = new Sandbox({ + clients: options.clients + }); + + s.createApp("myapp", "app-using-stylus"); + s.cd("myapp"); + s.testWithAllClients(function (run) { + run.match("myapp"); + run.match("proxy"); + run.match("MongoDB"); + run.match("running at"); + run.match("localhost"); + + run.connectClient(); + run.waitSecs(40); + + run.match("true"); + run.match("true"); + run.match("true"); + run.match("true"); + run.match("true"); + + run.stop(); + }); +});