Skip to content

Commit 5127bfb

Browse files
authored
Merge pull request #5 from hrobertking/lowercase
Adding lowerase rule
2 parents 129a32c + 042ce2f commit 5127bfb

File tree

2 files changed

+70
-0
lines changed

2 files changed

+70
-0
lines changed

src/rules/lowercase.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/*
2+
* Rule: properties and functions should be lowercase
3+
*/
4+
5+
CSSLint.addRule({
6+
7+
// rule information
8+
id: "lowercase",
9+
name: "Require lowercase properties and functions",
10+
desc: "All properties and functions should be lowercase",
11+
browsers: "All",
12+
13+
// initialization
14+
init: function(parser, reporter) {
15+
"use strict";
16+
var rule = this;
17+
18+
parser.addListener("property", function(event) {
19+
var prop = event.property.text,
20+
func = /([a-z\-]+)\(/i.exec(event.value.text);
21+
22+
if (prop !== prop.toLowerCase()) {
23+
reporter.report("Property is not lowercase.", event.line, event.col, rule);
24+
} else if (func) {
25+
if (func[1] !== func[1].toLowerCase()) {
26+
reporter.report("Function is not lowercase.", event.line, event.col, rule);
27+
}
28+
}
29+
});
30+
}
31+
32+
});

tests/rules/lowercase.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
(function() {
2+
"use strict";
3+
var Assert = YUITest.Assert;
4+
5+
YUITest.TestRunner.add(new YUITest.TestCase({
6+
7+
name: "lowercase rule errors",
8+
9+
"A property that is not in lowercase should result in a warning": function() {
10+
var result = CSSLint.verify("h1 { Border-Radius: 5px; }", { "lowercase": 1 });
11+
12+
Assert.areEqual(1, result.messages.length);
13+
Assert.areEqual("warning", result.messages[0].type);
14+
Assert.areEqual("Property is not lowercase.", result.messages[0].message);
15+
},
16+
17+
"A property that is in lowercase should not result in a warning": function() {
18+
var result = CSSLint.verify("h1 { border-radius: 5px; }", { "lowercase": 1 });
19+
20+
Assert.areEqual(0, result.messages.length);
21+
},
22+
23+
"A function that is not in lowercase should result in a warning": function() {
24+
var result = CSSLint.verify("h1 { color: RGB(0, 0, 0); }", { "lowercase": 1 });
25+
26+
Assert.areEqual(1, result.messages.length);
27+
Assert.areEqual("warning", result.messages[0].type);
28+
Assert.areEqual("Function is not lowercase.", result.messages[0].message);
29+
},
30+
31+
"A function that is in lowercase should not result in a warning": function() {
32+
var result = CSSLint.verify("h1 { color: rgb(0, 0, 0); }", { "lowercase": 1 });
33+
34+
Assert.areEqual(0, result.messages.length);
35+
}
36+
}));
37+
38+
})();

0 commit comments

Comments
 (0)