nitx: remove ModelView dependency
[nit.git] / src / doc / term / tests / test_term.nit
1 # This file is part of NIT ( http://www.nitlanguage.org ).
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 # http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 module test_term is test
16
17 import term
18 intrude import commands::commands_main
19 import commands::test_commands_catalog
20
21 # Nitunit test suite specific to commands
22 class TestTerm
23 super TestCommandsCatalog
24 test
25
26 # CmdEntity
27
28 fun test_mentity_full_name is test do
29 var parser = new CommandParser(test_model, test_main, test_builder)
30 parser.execute("test_prog::Character", true)
31 end
32
33 fun test_mentity_name is test do
34 var parser = new CommandParser(test_model, test_main, test_builder)
35 parser.execute("Character", true)
36 end
37
38 fun test_mentity_empty is test do
39 var parser = new CommandParser(test_model, test_main, test_builder)
40 parser.execute("", true)
41 end
42
43 fun test_mentity_not_found is test do
44 var parser = new CommandParser(test_model, test_main, test_builder)
45 parser.execute("Caracter", true)
46 end
47
48 fun test_mentity_conflict is test do
49 var parser = new CommandParser(test_model, test_main, test_builder)
50 parser.execute("+", true)
51 end
52
53 # CmdDoc
54
55 fun test_comment is test do
56 var parser = new CommandParser(test_model, test_main, test_builder)
57 parser.execute("doc: Character", true)
58 end
59
60 fun test_comment_short is test do
61 var parser = new CommandParser(test_model, test_main, test_builder)
62 parser.execute("doc: Character | only-synopsis", true)
63 end
64
65 fun test_comment_no_fallback is test do
66 var parser = new CommandParser(test_model, test_main, test_builder)
67 parser.execute("doc: Character | no-fallback", true)
68 end
69
70 # CmdInheritance
71
72 fun test_ancestors is test do
73 var parser = new CommandParser(test_model, test_main, test_builder)
74 parser.execute("ancestors: Warrior | parents: true", true)
75 end
76
77 fun test_ancestors_without_parents is test do
78 var parser = new CommandParser(test_model, test_main, test_builder)
79 parser.execute("ancestors: Warrior | parents: false", true)
80 end
81
82 fun test_parents is test do
83 var parser = new CommandParser(test_model, test_main, test_builder)
84 parser.execute("parents: Warrior", true)
85 end
86
87 fun test_children is test do
88 var parser = new CommandParser(test_model, test_main, test_builder)
89 parser.execute("children: Career", true)
90 end
91
92 fun test_descendants is test do
93 var parser = new CommandParser(test_model, test_main, test_builder)
94 parser.execute("descendants: Career", true)
95 end
96
97 fun test_descendants_without_children is test do
98 var parser = new CommandParser(test_model, test_main, test_builder)
99 parser.execute("descendants: Career | children: false", true)
100 end
101
102 # CmdLin
103
104 fun test_lin is test do
105 var parser = new CommandParser(test_model, test_main, test_builder)
106 parser.execute("lin: init | limit: 2", true)
107 end
108
109 fun test_lin_no_lin is test do
110 var parser = new CommandParser(test_model, test_main, test_builder)
111 parser.execute("lin: test_prog", true)
112 end
113
114 # CmdSearch
115
116 fun test_search is test do
117 var parser = new CommandParser(test_model, test_main, test_builder)
118 parser.execute("search: Caracter | limit: 2", true)
119 end
120
121 fun test_search_no_query is test do
122 var parser = new CommandParser(test_model, test_main, test_builder)
123 parser.execute("search: | limit: 1", true)
124 end
125
126 # CmdDefs
127
128 fun test_features is test do
129 var parser = new CommandParser(test_model, test_main, test_builder)
130 parser.execute("defs: Character | limit: 3", true)
131 end
132
133 # CmdCode
134
135 fun test_code is test do
136 var parser = new CommandParser(test_model, test_main, test_builder)
137 parser.execute("code: Character", true)
138 end
139
140 # CmdUsage
141
142 fun test_init is test do
143 var parser = new CommandParser(test_model, test_main, test_builder)
144 parser.execute("new: Elf | limit: 2", true)
145 end
146
147 fun test_call is test do
148 var parser = new CommandParser(test_model, test_main, test_builder)
149 parser.execute("call: endurance_bonus", true)
150 end
151
152 fun test_return is test do
153 var parser = new CommandParser(test_model, test_main, test_builder)
154 parser.execute("return: Int | limit: 3", true)
155 end
156
157 fun test_param is test do
158 var parser = new CommandParser(test_model, test_main, test_builder)
159 parser.execute("param: Career | limit: 3", true)
160 end
161
162 # CmdCatalog
163
164 fun test_term_catalog is test do
165 var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
166 parser.execute("catalog:", true)
167 end
168
169 fun test_term_catalog_search is test do
170 var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
171 parser.execute("search: Caracter | limit: 3", true)
172 end
173
174 fun test_term_catalog_stats is test do
175 var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
176 parser.execute("stats:", true)
177 end
178
179 fun test_term_catalog_tags is test do
180 var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
181 parser.execute("tags:", true)
182 end
183
184 fun test_term_catalog_tag is test do
185 var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
186 parser.execute("tag: game", true)
187 end
188
189 fun test_term_catalog_maintain is test do
190 var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
191 parser.execute("maintain: Alexandre Terrasa", true)
192 end
193
194 fun test_term_catalog_contrib is test do
195 var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
196 parser.execute("contrib: Alexandre Terrasa", true)
197 end
198
199 # CmdIni
200
201 fun test_term_ini_desc is test do
202 var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
203 parser.execute("ini-desc: test_prog", true)
204 end
205
206 fun test_term_ini_git is test do
207 var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
208 parser.execute("ini-git: test_prog", true)
209 end
210
211 fun test_term_ini_clone is test do
212 var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
213 parser.execute("git-clone: test_prog", true)
214 end
215
216 fun test_term_ini_issues is test do
217 var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
218 parser.execute("ini-issues: test_prog", true)
219 end
220
221 fun test_term_ini_maintainer is test do
222 var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
223 parser.execute("ini-maintainer: test_prog", true)
224 end
225
226 fun test_term_ini_contributors is test do
227 var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
228 parser.execute("ini-contributors: test_prog", true)
229 end
230
231 fun test_term_ini_license is test do
232 var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
233 parser.execute("ini-license: test_prog", true)
234 end
235
236 # CmdMain
237
238 fun test_term_mains is test do
239 var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
240 parser.execute("mains: test_prog", true)
241 end
242
243 fun test_term_main_compile is test do
244 var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
245 parser.execute("main-compile: test_prog::test_prog", true)
246 end
247
248 fun test_term_man_synopsis is test do
249 var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
250 parser.execute("main-run: test_prog::test_prog", true)
251 end
252
253 fun test_term_man_options is test do
254 var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
255 parser.execute("main-opts: test_prog::test_prog", true)
256 end
257
258 fun test_term_testing is test do
259 var parser = new CommandParser(test_model, test_main, test_builder, test_catalog)
260 parser.execute("testing: test_prog", true)
261 end
262 end
263
264 redef class nitc::Location
265 # Avoid location diffs
266 redef fun to_s do return "test_location"
267 end
268
269 # Avoid path diff
270 redef class CmdMainCompile
271 redef fun test_path(file) do
272 if file == null then return null
273 return file.filename.basename
274 end
275 end
276
277 # Avoid path diff
278 redef class CmdTesting
279 redef fun test_path(mentity) do
280 var file = mentity.location.file
281 if file == null then return null
282 return file.filename.basename
283 end
284 end