1 # This Source Code Form is subject to the terms of the Mozilla Public
2 # License, v. 2.0. If a copy of the MPL was not distributed with this
3 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 def test_lint_exclusions(lint
, paths
):
10 results
= lint(paths("excluded.ftl"))
11 assert len(results
) == 1
12 assert results
[0].rule
== "TE01"
13 assert results
[0].lineno
== 6
14 assert results
[0].column
== 20
17 def test_lint_single_file(lint
, paths
):
18 results
= lint(paths("bad.ftl"))
19 assert len(results
) == 13
20 assert results
[0].rule
== "ID01"
21 assert results
[0].lineno
== 1
22 assert results
[0].column
== 1
23 assert results
[1].rule
== "ID01"
24 assert results
[1].lineno
== 3
25 assert results
[1].column
== 1
26 assert results
[2].rule
== "TE01"
27 assert results
[2].lineno
== 5
28 assert results
[2].column
== 20
29 assert results
[3].rule
== "TE01"
30 assert results
[3].lineno
== 6
31 assert results
[3].column
== 24
32 assert results
[4].rule
== "TE02"
33 assert results
[4].lineno
== 7
34 assert results
[4].column
== 20
35 assert results
[5].rule
== "TE03"
36 assert results
[5].lineno
== 8
37 assert results
[5].column
== 20
38 assert results
[6].rule
== "TE04"
39 assert results
[6].lineno
== 11
40 assert results
[6].column
== 20
41 assert results
[7].rule
== "TE05"
42 assert results
[7].lineno
== 13
43 assert results
[7].column
== 16
44 assert results
[8].rule
== "TE03"
45 assert results
[8].lineno
== 17
46 assert results
[8].column
== 20
47 assert results
[9].rule
== "TE03"
48 assert results
[9].lineno
== 25
49 assert results
[9].column
== 18
50 assert results
[10].rule
== "ID02"
51 assert results
[10].lineno
== 32
52 assert results
[10].column
== 1
53 assert results
[11].rule
== "VC01"
54 assert "$tabCount" in results
[11].message
55 assert results
[12].rule
== "VC01"
56 assert "$url" in results
[12].message
59 def test_comment_group(lint
, paths
):
60 results
= lint(paths("comment-group1.ftl"))
61 assert len(results
) == 6
62 assert results
[0].rule
== "GC03"
63 assert results
[0].lineno
== 12
64 assert results
[0].column
== 1
65 assert results
[1].rule
== "GC02"
66 assert results
[1].lineno
== 16
67 assert results
[1].column
== 1
68 assert results
[2].rule
== "GC04"
69 assert results
[2].lineno
== 21
70 assert results
[2].column
== 1
71 assert results
[3].rule
== "GC03"
72 assert results
[3].lineno
== 26
73 assert results
[3].column
== 1
74 assert results
[4].rule
== "GC02"
75 assert results
[4].lineno
== 30
76 assert results
[4].column
== 1
77 assert results
[5].rule
== "GC01"
78 assert results
[5].lineno
== 35
79 assert results
[5].column
== 1
81 results
= lint(paths("comment-group2.ftl"))
82 assert (len(results
)) == 0
85 def test_comment_resource(lint
, paths
):
86 results
= lint(paths("comment-resource1.ftl"))
87 assert len(results
) == 1
88 assert results
[0].rule
== "RC01"
89 assert results
[0].lineno
== 9
90 assert results
[0].column
== 1
92 results
= lint(paths("comment-resource2.ftl"))
93 assert len(results
) == 1
94 assert results
[0].rule
== "RC03"
95 assert results
[0].lineno
== 4
96 assert results
[0].column
== 1
98 results
= lint(paths("comment-resource3.ftl"))
99 assert len(results
) == 1
100 assert results
[0].rule
== "RC02"
101 assert results
[0].lineno
== 5
102 assert results
[0].column
== 1
104 results
= lint(paths("comment-resource4.ftl"))
105 assert len(results
) == 1
106 assert results
[0].rule
== "RC03"
107 assert results
[0].lineno
== 6
108 assert results
[0].column
== 1
110 results
= lint(paths("comment-resource5.ftl"))
111 assert len(results
) == 1
112 assert results
[0].rule
== "RC02"
113 assert results
[0].lineno
== 5
114 assert results
[0].column
== 1
116 results
= lint(paths("comment-resource6.ftl"))
117 assert len(results
) == 0
120 def test_brand_names(lint
, paths
):
121 results
= lint(paths("brand-names.ftl"), {"brand-files": ["test-brands.ftl"]})
122 assert len(results
) == 11
123 assert results
[0].rule
== "CO01"
124 assert results
[0].lineno
== 1
125 assert results
[0].column
== 16
126 assert "Firefox" in results
[0].message
127 assert "Mozilla" not in results
[0].message
128 assert "Thunderbird" not in results
[0].message
129 assert results
[1].rule
== "CO01"
130 assert results
[1].lineno
== 4
131 assert results
[1].column
== 16
133 results
= lint(paths("brand-names-excluded.ftl"))
134 assert len(results
) == 0
137 def test_comment_variables(lint
, paths
):
138 results
= lint(paths("comment-variables1.ftl"))
139 assert len(results
) == 4
140 assert results
[0].rule
== "VC01"
141 assert "$var" in results
[0].message
142 assert results
[1].rule
== "VC01"
143 assert "$select1" in results
[1].message
144 assert results
[2].rule
== "VC01"
145 assert "$select2" in results
[2].message
146 assert results
[3].rule
== "VC01"
147 assert "$attr" in results
[3].message
149 results
= lint(paths("comment-variables2.ftl"))
150 assert len(results
) == 1
151 assert results
[0].rule
== "VC01"
152 assert "$term-message" in results
[0].message
155 def test_valid_attributes(lint
, paths
):
156 results
= lint(paths("valid-attributes.ftl"))
158 assert len(results
) == 1
159 assert results
[0].rule
== "VA01"
160 assert ".extralabel" in results
[0].message
163 if __name__
== "__main__":