Bump to 1.14.1
[platform/upstream/augeas.git] / lenses / tests / test_cups.aug
1 (*
2 Module: Test_Cups
3   Provides unit tests and examples for the <Cups> lens.
4 *)
5
6 module Test_Cups =
7
8 (* Variable: conf *)
9 let conf = "# Sample configuration file for the CUPS scheduler.
10 LogLevel warn
11
12 # Deactivate CUPS' internal logrotating, as we provide a better one, especially
13 # LogLevel debug2 gets usable now
14 MaxLogSize 0
15
16 # Administrator user group...
17 SystemGroup lpadmin
18
19
20 # Only listen for connections from the local machine.
21 Listen localhost:631
22 Listen /var/run/cups/cups.sock
23
24 # Show shared printers on the local network.
25 BrowseOrder allow,deny
26 BrowseAllow all
27 BrowseLocalProtocols CUPS dnssd
28 BrowseAddress @LOCAL
29
30 # Default authentication type, when authentication is required...
31 DefaultAuthType Basic
32
33 # Web interface setting...
34 WebInterface Yes
35
36 # Restrict access to the server...
37 <Location />
38   Order allow,deny
39 </Location>
40
41 # Restrict access to the admin pages...
42 <Location /admin>
43   Order allow,deny
44 </Location>
45
46 # Restrict access to configuration files...
47 <Location /admin/conf>
48   AuthType Default
49   Require user @SYSTEM
50   Order allow,deny
51 </Location>
52
53 # Set the default printer/job policies...
54 <Policy default>
55   # Job/subscription privacy...
56   JobPrivateAccess default
57   JobPrivateValues default
58   SubscriptionPrivateAccess default
59   SubscriptionPrivateValues default
60
61   # Job-related operations must be done by the owner or an administrator...
62   <Limit Create-Job Print-Job Print-URI Validate-Job>
63     Order deny,allow
64   </Limit>
65
66   <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
67     Require user @OWNER @SYSTEM
68     Order deny,allow
69   </Limit>
70
71   # All administration operations require an administrator to authenticate...
72   <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
73     AuthType Default
74     Require user @SYSTEM
75     Order deny,allow
76   </Limit>
77
78   # All printer operations require a printer operator to authenticate...
79   <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
80     AuthType Default
81     Require user @SYSTEM
82     Order deny,allow
83   </Limit>
84
85   # Only the owner or an administrator can cancel or authenticate a job...
86   <Limit Cancel-Job CUPS-Authenticate-Job>
87     Require user @OWNER @SYSTEM
88     Order deny,allow
89   </Limit>
90
91   <Limit All>
92     Order deny,allow
93   </Limit>
94 </Policy>
95
96 # Set the authenticated printer/job policies...
97 <Policy authenticated>
98   # Job/subscription privacy...
99   JobPrivateAccess default
100   JobPrivateValues default
101   SubscriptionPrivateAccess default
102   SubscriptionPrivateValues default
103
104   # Job-related operations must be done by the owner or an administrator...
105   <Limit Create-Job Print-Job Print-URI Validate-Job>
106     AuthType Default
107     Order deny,allow
108   </Limit>
109
110   <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
111     AuthType Default
112     Require user @OWNER @SYSTEM
113     Order deny,allow
114   </Limit>
115
116   # All administration operations require an administrator to authenticate...
117   <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
118     AuthType Default
119     Require user @SYSTEM
120     Order deny,allow
121   </Limit>
122
123   # All printer operations require a printer operator to authenticate...
124   <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
125     AuthType Default
126     Require user @SYSTEM
127     Order deny,allow
128   </Limit>
129
130   # Only the owner or an administrator can cancel or authenticate a job...
131   <Limit Cancel-Job CUPS-Authenticate-Job>
132     AuthType Default
133     Require user @OWNER @SYSTEM
134     Order deny,allow
135   </Limit>
136
137   <Limit All>
138     Order deny,allow
139   </Limit>
140 </Policy>
141 "
142
143 (* Test: Simplevars.lns *)
144 test Cups.lns get conf =
145   { "#comment" = "Sample configuration file for the CUPS scheduler." }
146   { "directive" = "LogLevel"
147     { "arg" = "warn" }
148   }
149   {  }
150   { "#comment" = "Deactivate CUPS' internal logrotating, as we provide a better one, especially" }
151   { "#comment" = "LogLevel debug2 gets usable now" }
152   { "directive" = "MaxLogSize"
153     { "arg" = "0" }
154   }
155   {  }
156   { "#comment" = "Administrator user group..." }
157   { "directive" = "SystemGroup"
158     { "arg" = "lpadmin" }
159   }
160   {  }
161   {  }
162   { "#comment" = "Only listen for connections from the local machine." }
163   { "directive" = "Listen"
164     { "arg" = "localhost:631" }
165   }
166   { "directive" = "Listen"
167     { "arg" = "/var/run/cups/cups.sock" }
168   }
169   {  }
170   { "#comment" = "Show shared printers on the local network." }
171   { "directive" = "BrowseOrder"
172     { "arg" = "allow,deny" }
173   }
174   { "directive" = "BrowseAllow"
175     { "arg" = "all" }
176   }
177   { "directive" = "BrowseLocalProtocols"
178     { "arg" = "CUPS" }
179     { "arg" = "dnssd" }
180   }
181   { "directive" = "BrowseAddress"
182     { "arg" = "@LOCAL" }
183   }
184   {  }
185   { "#comment" = "Default authentication type, when authentication is required..." }
186   { "directive" = "DefaultAuthType"
187     { "arg" = "Basic" }
188   }
189   {  }
190   { "#comment" = "Web interface setting..." }
191   { "directive" = "WebInterface"
192     { "arg" = "Yes" }
193   }
194   {  }
195   { "#comment" = "Restrict access to the server..." }
196   { "Location"
197     { "arg" = "/" }
198     { "directive" = "Order"
199       { "arg" = "allow,deny" }
200     }
201   }
202   { "#comment" = "Restrict access to the admin pages..." }
203   { "Location"
204     { "arg" = "/admin" }
205     { "directive" = "Order"
206       { "arg" = "allow,deny" }
207     }
208   }
209   { "#comment" = "Restrict access to configuration files..." }
210   { "Location"
211     { "arg" = "/admin/conf" }
212     { "directive" = "AuthType"
213       { "arg" = "Default" }
214     }
215     { "directive" = "Require"
216       { "arg" = "user" }
217       { "arg" = "@SYSTEM" }
218     }
219     { "directive" = "Order"
220       { "arg" = "allow,deny" }
221     }
222   }
223   { "#comment" = "Set the default printer/job policies..." }
224   { "Policy"
225     { "arg" = "default" }
226     { "#comment" = "Job/subscription privacy..." }
227     { "directive" = "JobPrivateAccess"
228       { "arg" = "default" }
229     }
230     { "directive" = "JobPrivateValues"
231       { "arg" = "default" }
232     }
233     { "directive" = "SubscriptionPrivateAccess"
234       { "arg" = "default" }
235     }
236     { "directive" = "SubscriptionPrivateValues"
237       { "arg" = "default" }
238     }
239     {  }
240     { "#comment" = "Job-related operations must be done by the owner or an administrator..." }
241     { "Limit"
242       { "arg" = "Create-Job" }
243       { "arg" = "Print-Job" }
244       { "arg" = "Print-URI" }
245       { "arg" = "Validate-Job" }
246       { "directive" = "Order"
247         { "arg" = "deny,allow" }
248       }
249     }
250     { "Limit"
251       { "arg" = "Send-Document" }
252       { "arg" = "Send-URI" }
253       { "arg" = "Hold-Job" }
254       { "arg" = "Release-Job" }
255       { "arg" = "Restart-Job" }
256       { "arg" = "Purge-Jobs" }
257       { "arg" = "Set-Job-Attributes" }
258       { "arg" = "Create-Job-Subscription" }
259       { "arg" = "Renew-Subscription" }
260       { "arg" = "Cancel-Subscription" }
261       { "arg" = "Get-Notifications" }
262       { "arg" = "Reprocess-Job" }
263       { "arg" = "Cancel-Current-Job" }
264       { "arg" = "Suspend-Current-Job" }
265       { "arg" = "Resume-Job" }
266       { "arg" = "Cancel-My-Jobs" }
267       { "arg" = "Close-Job" }
268       { "arg" = "CUPS-Move-Job" }
269       { "arg" = "CUPS-Get-Document" }
270       { "directive" = "Require"
271         { "arg" = "user" }
272         { "arg" = "@OWNER" }
273         { "arg" = "@SYSTEM" }
274       }
275       { "directive" = "Order"
276         { "arg" = "deny,allow" }
277       }
278     }
279     { "#comment" = "All administration operations require an administrator to authenticate..." }
280     { "Limit"
281       { "arg" = "CUPS-Add-Modify-Printer" }
282       { "arg" = "CUPS-Delete-Printer" }
283       { "arg" = "CUPS-Add-Modify-Class" }
284       { "arg" = "CUPS-Delete-Class" }
285       { "arg" = "CUPS-Set-Default" }
286       { "arg" = "CUPS-Get-Devices" }
287       { "directive" = "AuthType"
288         { "arg" = "Default" }
289       }
290       { "directive" = "Require"
291         { "arg" = "user" }
292         { "arg" = "@SYSTEM" }
293       }
294       { "directive" = "Order"
295         { "arg" = "deny,allow" }
296       }
297     }
298     { "#comment" = "All printer operations require a printer operator to authenticate..." }
299     { "Limit"
300       { "arg" = "Pause-Printer" }
301       { "arg" = "Resume-Printer" }
302       { "arg" = "Enable-Printer" }
303       { "arg" = "Disable-Printer" }
304       { "arg" = "Pause-Printer-After-Current-Job" }
305       { "arg" = "Hold-New-Jobs" }
306       { "arg" = "Release-Held-New-Jobs" }
307       { "arg" = "Deactivate-Printer" }
308       { "arg" = "Activate-Printer" }
309       { "arg" = "Restart-Printer" }
310       { "arg" = "Shutdown-Printer" }
311       { "arg" = "Startup-Printer" }
312       { "arg" = "Promote-Job" }
313       { "arg" = "Schedule-Job-After" }
314       { "arg" = "Cancel-Jobs" }
315       { "arg" = "CUPS-Accept-Jobs" }
316       { "arg" = "CUPS-Reject-Jobs" }
317       { "directive" = "AuthType"
318         { "arg" = "Default" }
319       }
320       { "directive" = "Require"
321         { "arg" = "user" }
322         { "arg" = "@SYSTEM" }
323       }
324       { "directive" = "Order"
325         { "arg" = "deny,allow" }
326       }
327     }
328     { "#comment" = "Only the owner or an administrator can cancel or authenticate a job..." }
329     { "Limit"
330       { "arg" = "Cancel-Job" }
331       { "arg" = "CUPS-Authenticate-Job" }
332       { "directive" = "Require"
333         { "arg" = "user" }
334         { "arg" = "@OWNER" }
335         { "arg" = "@SYSTEM" }
336       }
337       { "directive" = "Order"
338         { "arg" = "deny,allow" }
339       }
340     }
341     { "Limit"
342       { "arg" = "All" }
343       { "directive" = "Order"
344         { "arg" = "deny,allow" }
345       }
346     }
347   }
348   { "#comment" = "Set the authenticated printer/job policies..." }
349   { "Policy"
350     { "arg" = "authenticated" }
351     { "#comment" = "Job/subscription privacy..." }
352     { "directive" = "JobPrivateAccess"
353       { "arg" = "default" }
354     }
355     { "directive" = "JobPrivateValues"
356       { "arg" = "default" }
357     }
358     { "directive" = "SubscriptionPrivateAccess"
359       { "arg" = "default" }
360     }
361     { "directive" = "SubscriptionPrivateValues"
362       { "arg" = "default" }
363     }
364     {  }
365     { "#comment" = "Job-related operations must be done by the owner or an administrator..." }
366     { "Limit"
367       { "arg" = "Create-Job" }
368       { "arg" = "Print-Job" }
369       { "arg" = "Print-URI" }
370       { "arg" = "Validate-Job" }
371       { "directive" = "AuthType"
372         { "arg" = "Default" }
373       }
374       { "directive" = "Order"
375         { "arg" = "deny,allow" }
376       }
377     }
378     { "Limit"
379       { "arg" = "Send-Document" }
380       { "arg" = "Send-URI" }
381       { "arg" = "Hold-Job" }
382       { "arg" = "Release-Job" }
383       { "arg" = "Restart-Job" }
384       { "arg" = "Purge-Jobs" }
385       { "arg" = "Set-Job-Attributes" }
386       { "arg" = "Create-Job-Subscription" }
387       { "arg" = "Renew-Subscription" }
388       { "arg" = "Cancel-Subscription" }
389       { "arg" = "Get-Notifications" }
390       { "arg" = "Reprocess-Job" }
391       { "arg" = "Cancel-Current-Job" }
392       { "arg" = "Suspend-Current-Job" }
393       { "arg" = "Resume-Job" }
394       { "arg" = "Cancel-My-Jobs" }
395       { "arg" = "Close-Job" }
396       { "arg" = "CUPS-Move-Job" }
397       { "arg" = "CUPS-Get-Document" }
398       { "directive" = "AuthType"
399         { "arg" = "Default" }
400       }
401       { "directive" = "Require"
402         { "arg" = "user" }
403         { "arg" = "@OWNER" }
404         { "arg" = "@SYSTEM" }
405       }
406       { "directive" = "Order"
407         { "arg" = "deny,allow" }
408       }
409     }
410     { "#comment" = "All administration operations require an administrator to authenticate..." }
411     { "Limit"
412       { "arg" = "CUPS-Add-Modify-Printer" }
413       { "arg" = "CUPS-Delete-Printer" }
414       { "arg" = "CUPS-Add-Modify-Class" }
415       { "arg" = "CUPS-Delete-Class" }
416       { "arg" = "CUPS-Set-Default" }
417       { "directive" = "AuthType"
418         { "arg" = "Default" }
419       }
420       { "directive" = "Require"
421         { "arg" = "user" }
422         { "arg" = "@SYSTEM" }
423       }
424       { "directive" = "Order"
425         { "arg" = "deny,allow" }
426       }
427     }
428     { "#comment" = "All printer operations require a printer operator to authenticate..." }
429     { "Limit"
430       { "arg" = "Pause-Printer" }
431       { "arg" = "Resume-Printer" }
432       { "arg" = "Enable-Printer" }
433       { "arg" = "Disable-Printer" }
434       { "arg" = "Pause-Printer-After-Current-Job" }
435       { "arg" = "Hold-New-Jobs" }
436       { "arg" = "Release-Held-New-Jobs" }
437       { "arg" = "Deactivate-Printer" }
438       { "arg" = "Activate-Printer" }
439       { "arg" = "Restart-Printer" }
440       { "arg" = "Shutdown-Printer" }
441       { "arg" = "Startup-Printer" }
442       { "arg" = "Promote-Job" }
443       { "arg" = "Schedule-Job-After" }
444       { "arg" = "Cancel-Jobs" }
445       { "arg" = "CUPS-Accept-Jobs" }
446       { "arg" = "CUPS-Reject-Jobs" }
447       { "directive" = "AuthType"
448         { "arg" = "Default" }
449       }
450       { "directive" = "Require"
451         { "arg" = "user" }
452         { "arg" = "@SYSTEM" }
453       }
454       { "directive" = "Order"
455         { "arg" = "deny,allow" }
456       }
457     }
458     { "#comment" = "Only the owner or an administrator can cancel or authenticate a job..." }
459     { "Limit"
460       { "arg" = "Cancel-Job" }
461       { "arg" = "CUPS-Authenticate-Job" }
462       { "directive" = "AuthType"
463         { "arg" = "Default" }
464       }
465       { "directive" = "Require"
466         { "arg" = "user" }
467         { "arg" = "@OWNER" }
468         { "arg" = "@SYSTEM" }
469       }
470       { "directive" = "Order"
471         { "arg" = "deny,allow" }
472       }
473     }
474     { "Limit"
475       { "arg" = "All" }
476       { "directive" = "Order"
477         { "arg" = "deny,allow" }
478       }
479     }
480   }
481