Files
less.js/test/less/plugin.less
rjgotten 4d17c8b35d Fix plugin scope for mixins, directives and detached rulesets
Fixed scope for plugins to apply correctly for mixins, directives and
detached rulesets.
Updated plugin unit tests to be more comprehensive
2015-03-20 16:41:05 +01:00

86 lines
1.8 KiB
Plaintext

// importing plugin globally
@plugin "./plugin/plugin-global";
// transitively include plugins from importing another sheet
@import "./plugin/plugin-transitive";
// `test-global` function should be reachable
// `test-local` function should not be reachable
// `test-shadow` function should return global version
.class {
trans : test-transitive();
global : test-global();
local : test-local();
shadow : test-shadow();
// `test-global` function should propagate and be reachable
// `test-local` function should be reachable
// `test-shadow` function should return local version, shadowing global version
.local {
@plugin "./plugin/plugin-local";
global : test-global();
local : test-local();
shadow : test-shadow();
}
}
// calling a mixin or detached ruleset should not bubble local plugins
// imported inside either into the parent scope.
.mixin() {
@plugin "./plugin/plugin-local";
mixin-local : test-local();
mixin-global : test-global();
mixin-shadow : test-shadow();
}
@ruleset : {
@plugin "./plugin/plugin-local";
ruleset-local : test-local();
ruleset-global : test-global();
ruleset-shadow : test-shadow();
};
#ns {
@plugin "./plugin/plugin-local";
.mixin() {
ns-mixin-global : test-global();
ns-mixin-local : test-local();
ns-mixin-shadow : test-shadow();
}
}
.class {
#ns > .mixin();
.mixin();
@ruleset();
class-local : test-local();
}
// `test-global` function should propagate into directive scope
@media screen {
.test {
result : test-global();
}
}
@font-face {
result : test-global();
}
// `test-global` function should propagate into nested directive scopes
@media screen and (min-width:100px) {
@media (max-width:400px) {
.test {
result : test-global();
}
}
}
.test {
@media screen {
@plugin "./plugin/plugin-local";
result : test-local();
}
}