/[openfoncier]/trunk/tests/testPieces.php
ViewVC logotype

Annotation of /trunk/tests/testPieces.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3882 - (hide annotations)
Fri Apr 8 07:43:12 2016 UTC (8 years, 9 months ago) by softime
File size: 23281 byte(s)
* Correction des tests d'ajout de pièce après modification des libellés des boutons.
1 mbroquet 3730 <?php
2     /**
3     *
4     *
5     * @package openfoncier
6     * @version SVN : $Id:
7     */
8    
9     //
10     require_once "base.php";
11    
12     /**
13     * Cette classe permet de tester l'interface de l'onglet "Pièce"
14     *
15     * Données utilisées : dossier AT0130551200001P0
16     * Fichiers utilisés :
17     * testImportManuel.jpg, testImportManuel.pdf, testImportManuel2.pdf
18     */
19     class PiecesTest extends Base2TestCase {
20     /**
21     * Fonction lancée en debut de chaque test
22     */
23     public function setUp() {
24     parent::setUp();
25     echo ' = '.get_class().'.'.str_replace('test_', '', $this->getName())."\r\n";
26     }
27    
28     public function onNotSuccessfulTest(Exception $e){
29     echo 'Line '.$e->getLine().' : '.$e->getMessage()."\r\n";
30     parent::onNotSuccessfulTest($e);
31     }
32    
33     /**
34     * test l'ajout de pièce
35     */
36     public function test_01_AjoutPiece() {
37     //On se connecte à l'application
38     $this->login("admin", "admin");
39     //On clique sur le menu Instruction
40     $this->byLinkText("Instruction")->click();
41     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
42     $this->verifyNoErrors();
43     //On clic sur le menu
44     $this->byLinkText("Recherche")->click();
45     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
46     $this->verifyNoErrors();
47     //On cherche le dossier d'instruction
48     $this->byId("dossier")->value("AT0130551200001P0");
49     //On valide la recherche
50     $this->byId("adv-search-submit")->click();
51     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
52     $this->verifyNoErrors();
53     //On clic sur le dossier
54     $this->byLinkText("AT 013055 12 00001P0")->click();
55     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
56     $this->verifyNoErrors();
57     //On clic sur l'onglet
58     $this->byId("document_numerise")->click();sleep(1);
59     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
60     $this->verifyNoErrors();
61     //On vérifie qu'il n'y a aucun enregistrement
62     $this->assertRegExp("/^[\s\S]*Aucun enregistrement[\s\S]*$/",$this->byId("sousform-document_numerise")->text());
63     //On vérifie la présence du bouton "Ajouter" (le "+" au dessus du tableau)
64     //et du texte "Ajouter un document"
65 softime 3882 $this->assertRegExp("/^[\s\S]*Ajouter une pièce[\s\S]*$/",$this->byId("sousform-document_numerise")->text());
66 mbroquet 3730 //On clic sur "Ajouter un document"
67     $this->byCssSelector(".add-16")->click();
68     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
69     $this->verifyNoErrors();
70     //On ecrit les données
71     $this->byId("date_creation")->clear();
72     $this->byId("date_creation")->value("01/01/2013");
73     $this->select($this->byId("document_numerise_type"))->selectOptionByLabel("notification de délai");
74     //On clic sur le bouton pour ajouter un fichier
75     $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click();
76     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
77     $this->verifyNoErrors();
78     //On sélectionne un document non pdf
79     $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/testImportManuel.jpg");
80     $this->byName("submit")->click();
81     //On vérifie le message d'erreur
82     $this->assertRegExp("/^[\s\S]*Le fichier n'est pas conforme à la liste des extension\(s\) autorisée\(s\) \(.pdf\)\. \[testImportManuel\.jpg\][\s\S]*$/",$this->byCssSelector("#upload-container .message .text")->text());
83     //On sélectionne un document pdf
84     $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/testImportManuel.pdf");
85     $this->byName("submit")->click();
86     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
87     $this->verifyNoErrors();
88     //On clic sur le bouton ajouter
89     $this->byXPath('//input[@value="Ajouter"]')->click();sleep(1);
90     //On clic sur le bouton retour
91     $this->byCssSelector("#sformulaire a.retour")->click();sleep(1);
92     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
93     $this->verifyNoErrors();
94     //On vérifie que le document à été ajouté
95     $this->assertRegExp("/^[\s\S]*20130101NDL.pdf[\s\S]*$/",$this->byCssSelector("#sousform-document_numerise table")->text());
96     //On vérifie la categorie du document
97     $this->assertRegExp("/^[\s\S]*Autre[\s\S]*$/",$this->byCssSelector("thead tr th.headerCat")->text());
98     //On vérifie la date de dépot du document
99     $this->assertEquals("01/01/2013", $this->byCssSelector("thead tr th.headerDate")->text());
100     //On affiche le fichier pdf
101     $this->byLinkText("20130101NDL.pdf")->click();sleep(1);
102     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
103     $this->verifyNoErrors();
104     // Liste les fenêtres
105     $windows = $this->windowHandles();
106     // Change la fenêtre
107     $this->window($windows[1]);
108     // On vérifie qu'il n'y ait pas d'erreur
109     $this->verifynoerrors();
110     // On vérifie que le text est présent
111     $this->assertRegExp("/^[\s\S]*TEST IMPORT MANUEL 1[\s\S]*$/",$this->source());
112     // On ferme la fenêtre
113     $this->closeWindow();
114     // On change le focus de la fenêtre
115     $this->window($windows[0]);
116     //On se déconnecte de l'application
117     $this->logout();
118    
119     }
120    
121     /**
122     * test l'ajout de pièce déjà existante
123     */
124     public function test_02_AjoutPieceUnique() {
125     // On se connecte à l'application
126     $this->login("admin", "admin");
127     //On clique sur le menu Instruction
128     $this->byLinkText("Instruction")->click();
129     //On clic sur le menu
130     $this->byLinkText("Recherche")->click();
131     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
132     $this->verifyNoErrors();
133     //On cherche le dossier d'instruction
134     $this->byId("dossier")->value("AT0130551200001P0");
135     //On valide la recherche
136     $this->byId("adv-search-submit")->click();
137     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
138     $this->verifyNoErrors();
139     // On clic sur le dossier
140     $this->byLinkText("AT 013055 12 00001P0")->click();
141     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
142     $this->verifyNoErrors();
143     //On clic sur l'onglet
144     $this->byId("document_numerise")->click();
145     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
146     $this->verifyNoErrors();
147     //On clic sur "Ajouter un document"
148     $this->byCssSelector(".add-16")->click();
149     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
150     $this->verifyNoErrors();
151     // On ecrit les données
152     $this->byId("date_creation")->clear();
153     $this->byId("date_creation")->value("01/01/2013");
154     $this->select($this->byId("document_numerise_type"))->selectOptionByLabel("notification de délai");
155     // On clic sur le bouton pour ajouter un fichier
156     $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click();
157     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
158     $this->verifyNoErrors();
159     // On sélectionne le document
160     $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/testImportManuel.pdf");
161 jymadier 3865 $this->byName("submit")->click();sleep(1);
162 mbroquet 3730 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
163     $this->verifyNoErrors();
164     // On clic sur le bouton pour voir le fichier ajouté
165     $this->byCssSelector("span.ui-icon.ui-icon-newwin")->click();
166     // On clic sur le fichier ajouté
167     $this->byLinkText("testImportManuel.pdf")->click();sleep(5);
168     // Liste les fenêtres
169     $windows = $this->windowHandles();
170     // On bascule sur le nouvel onglet PDF
171     $this->window($windows[1]);
172     // On vérifie qu'il n'y ait pas d'erreur
173     $this->verifynoerrors();
174     // On vérifie que le text est présent
175     $this->assertContains("TEST IMPORT MANUEL 1", $this->source());
176     // On ferme la fenêtre
177     $this->closeWindow();
178     // On revient sur la fenêtre de base
179     $this->window($windows[0]);
180     // On clique sur le bouton fermer
181     $this->byLinkText("Fermer")->click();sleep(1);
182     // On vérifie qu'il n'y ait pas d'erreur
183     $this->verifynoerrors();
184     // On clic sur le bouton ajouter
185     $this->byXPath('//input[@value="Ajouter"]')->click();sleep(5);
186     // On vérifie qu'il y une erreur
187     $this->assertRegExp("/^[\s\S]*Les valeurs saisies dans les champs[\s\S]*$/",$this->byId("sformulaire")->text());
188     // On se déconnecte de l'application
189     $this->logout();
190    
191     }
192    
193     /**
194     * test la modification des pièces numérisés par l'administrateur
195     */
196     public function test_03_ModificationPiece() {
197     //On se connecte à l'application
198     $this->login("admin", "admin");
199     //On clic sur le menu
200     $this->byLinkText("Instruction")->click();
201     $this->byLinkText("Recherche")->click();
202     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
203     $this->verifyNoErrors();
204     //On clic sur le dossier
205     $this->byLinkText("AT 013055 12 00001P0")->click();
206     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
207     $this->verifyNoErrors();
208     //On clic sur l'onglet
209     $this->byId("document_numerise")->click();
210     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
211     $this->verifyNoErrors();
212     //On clic sur le document
213     $this->byLinkText("notification de délai")->click();
214     // On vérifie que les informations s'affichent
215     $this->assertEquals("01/01/2013", $this->byId('date_creation')->text());
216     $this->assertEquals("notification de délai", $this->byId('document_numerise_type')->text());
217     // On clic sur le bouton modifier
218     $this->byId("action-sousform-document_numerise-modifier")->click();
219     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
220     $this->verifyNoErrors();
221     // On enlève le fichier
222     $this->byCssSelector("span.ui-icon.ui-icon-closethick")->click();
223     //On clic sur le bouton Modifier
224     $this->byXPath('//input[@value="Modifier"]')->click();sleep(1);
225     // On vérifie le message d'erreur
226     $this->assertRegExp("/^[\s\S]*SAISIE NON[\s\S]*$/",$this->byCssSelector("#sousform-document_numerise div.message")->text());
227     // On modifie les données
228     $this->byId("date_creation")->clear();
229     $this->byId("date_creation")->value("20/04/2013");
230     $this->select($this->byId("document_numerise_type"))->selectOptionByValue("40");
231     //On clic sur le bouton pour ajouter un fichier
232     $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click();
233     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
234     $this->verifyNoErrors();
235     //On sélectionne un document non pdf
236     $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/testImportManuel2.pdf");
237     $this->byName("submit")->click();
238     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
239     $this->verifyNoErrors();
240     //On clic sur le bouton modifier
241     $this->byXPath('//input[@value="Modifier"]')->click();sleep(1);
242     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
243     $this->verifyNoErrors();
244     //On clic sur le bouton retour
245     $this->byCssSelector("#sformulaire a.retour")->click();sleep(1);
246     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
247     $this->verifyNoErrors();
248     //On affiche le fichier pdf
249     $this->byLinkText("Visualiser")->click();
250     $this->byLinkText("20130420DGPA04.pdf")->click();sleep(5);
251     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
252     $this->verifyNoErrors();
253     // Liste les fenêtres
254     $windows = $this->windowHandles();
255     // Change la fenêtre
256     $this->window($windows[1]);
257     // On vérifie qu'il n'y ait pas d'erreur
258     $this->verifynoerrors();
259     // On vérifie que le text est présent
260     $this->assertRegExp("/^[\s\S]*TEST IMPORT MANUEL 2[\s\S]*$/",$this->source());
261     // On ferme la fenêtre
262     $this->closeWindow();
263     // On change le focus de la fenêtre
264     $this->window($windows[0]);
265     // On ferme l'overlay
266     $this->byLinkText("Fermer")->click();
267     //On se déconnecte de l'application
268     $this->logout();
269     }
270    
271     /**
272     * test la suppression des pièces numérisés par l'administrateur
273     */
274    
275     public function test_04_SuppressionPiece() {
276     //On se connecte à l'application
277     $this->login("adminfonct", "adminfonct");
278     //On clic sur le menu
279     $this->byLinkText("Recherche")->click();
280     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
281     $this->verifyNoErrors();
282     //On clic sur le dossier
283     $this->byLinkText("AT 013055 12 00001P0")->click();
284     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
285     $this->verifyNoErrors();
286     //On clic sur l'onglet
287     $this->byId("document_numerise")->click();
288     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
289     $this->verifyNoErrors();
290     //On clic sur le document
291     $this->byLinkText("plan de composition d'ensemble du projet")->click();
292     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
293     $this->verifyNoErrors();
294     // On vérifie que les informations s'affichent
295     $this->assertEquals("20/04/2013", $this->byId('date_creation')->text());
296     $this->assertEquals("plan de composition d'ensemble du projet", $this->byId('document_numerise_type')->text());
297     // On clic sur le bouton supprimer
298     $this->byXPath("(//div[@id='portlet-actions']/ul/li[2]/a/span)[2]")->click();
299     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
300     $this->verifyNoErrors();
301     //On clic sur le bouton supprimer
302     $this->byXPath('//input[@value="Supprimer"]')->click();
303     sleep(1);
304     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
305     $this->verifyNoErrors();
306     //On clic sur le bouton retour
307     $this->byCssSelector("#sformulaire a.retour")->click();sleep(1);
308     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
309     $this->verifyNoErrors();
310     //On vérifie qu'il n'y a aucun enregistrement
311     $this->assertRegExp("/^[\s\S]*Aucun enregistrement[\s\S]*$/",$this->byCssSelector("#sousform-document_numerise")->text());
312     //On se déconnecte de l'application
313     $this->logout();
314     }
315    
316     /**
317     * test l'affichage des pièces numérisées dans un DA]
318     */
319    
320     public function test_05_AffichageDA() {
321    
322     // On se connecte à l'application
323     $this->login("instr", "instr");
324     // On clique sur le menu
325     $this->byLinkText("Autorisation")->click();
326     $this->byLinkText("Dossiers D'autorisation")->click();
327     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
328     $this->verifyNoErrors();
329     // On clique sur un dossier d'autorisation possédant au moins un arrêté signé
330     $this->byLinkText("AZ 013055 12 00001")->click();
331     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
332     $this->verifyNoErrors();
333     // On clique sur l'onglet "Pièce(s)"
334     $this->byId("document_numerise")->click();
335     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
336     $this->verifyNoErrors();
337     // On vérifie que le document est présent
338     // html body#jqueryui div#content.ui-widget div#formulaire.ui-tabs div#ui-tabs-2.i-tabs-panel div#sousform-document_numerise div#sousform-document_numerise div.formEntete table.tab-tab
339     $this->assertRegExp("/^[\s\S]*20130614ART.pdf[\s\S]*$/",$this->byCssSelector("#sousform-document_numerise table")->text());
340     // On clique sur le document
341     $this->byLinkText("20130614ART.pdf")->click();
342     sleep(5);
343     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
344     $this->verifyNoErrors();
345     //On clique sur visualiser
346     /*$this->byLinkText("Visualiser")->click();
347     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
348     $this->verifyNoErrors();
349     //On affiche le fichier pdf
350     $this->byCssSelector(".ui-dialog .file-infos-block a")->click();sleep(5);
351     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
352     $this->verifyNoErrors();*/
353     // Liste les fenêtres
354     $windows = $this->windowHandles();
355     // Change la fenêtre
356     $this->window($windows[1]);
357     // On vérifie qu'il n'y ait pas d'erreur
358     $this->verifynoerrors();
359     // On vérifie que le text est présent
360     $this->assertRegExp("/^[\s\S]*sjudgbjuwskfdhgvujdfkgvh[\s\S]*$/",$this->source());
361     // On ferme la fenêtre
362     $this->closeWindow();
363     // On change le focus de la fenêtre
364     $this->window($windows[0]);
365     //On ferme l'overlay
366     /* $this->byClassName("ui-icon-closethick")->click();
367     // On vérifie qu'il n'y ait pas d'erreur
368     $this->verifynoerrors();*/
369     //On se déconnecte de l'application
370     $this->logout();
371     }
372    
373     /**
374     * test de l'ajout de pièce à un dossier AT et envoi de message au
375     * référentiel ERP
376     */
377    
378     public function test_06_AjoutPieceDossierAT(){
379    
380     //{{{On ajoute un dossier AT
381     // On se connecte à l'application
382     $this->login("guichet", "guichet");
383     //On clique sur l'entrée de menu "Nouveau Dossier"
384     $this->byLinkText("Nouveau Dossier")->click();
385     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
386     $this->verifyNoErrors();
387     sleep(2);
388     //On choisit le type détaillé de dossier d'autorisation
389     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue("8");
390     //On choisit le type de la demande
391     $this->select($this->byId("demande_type"))->selectOptionByValue("8");
392     //On saisit le pétitionnaire principal
393     $this->byId("add_petitionnaire_principal")->click();
394     $this->byId("particulier_nom")->value("test");
395     $this->byCssSelector("#sousform-petitionnaire .formControls input")->click();
396     sleep(2);
397     $this->byCssSelector("#sousform-petitionnaire .formControls .retour")->click();
398     //On ajoute la demande
399     $this->byXPath("//input[@value='Ajouter']")->click();
400     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
401     $this->verifyNoErrors();
402     // On vérifie le message de validation
403     $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
404     //On récupère le numéro de dossier d'instruction créé
405     preg_match('/(AT)[0-9 ]*(P0)/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
406     $dossier = $dossier[0];
407     //On se déconnecte de l'application
408     $this->deconnect();
409     //}}}
410    
411     //{{{On ajoute une pièce au dossier AT
412     // On se connecte à l'application
413     $this->login("admin", "admin");
414     //On clique sur le menu "Instruction"
415     $this->byLinkText("Instruction")->click();
416     //On clique sur le menu "Recherche"
417     $this->byLinkText("Recherche")->click();
418     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
419     $this->verifyNoErrors();
420     //On clique sur le lien du dossier
421     $this->byLinkText($dossier)->click();
422     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
423     $this->verifyNoErrors();
424     //On clique sur l'onglet "document numérisé"
425     $this->byId("document_numerise")->click();
426     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
427     $this->verifyNoErrors();
428     //On clique sur "Ajouter un document"
429     $this->byCssSelector(".formEntete p a")->click();
430     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
431     $this->verifyNoErrors();
432     //On ajoute un fichier
433     $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click();
434     $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/testImportManuel.pdf");
435     $this->byName("submit")->click();
436     //On choisit le type de document
437     $this->select($this->byId("document_numerise_type"))->selectOptionByValue("78");
438     //On valide l'ajout
439     $this->byXPath("//input[@value='Ajouter']")->click();
440     sleep(2);
441     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
442     $this->verifyNoErrors();
443     //On vérifie le message de validation
444     $this->assertRegExp("/^[\s\S]*Le message a été transmis au référentiel ERP.[\s\S]*$/",$this->byCssSelector("#sousform-document_numerise .message")->text());
445     //}}}
446    
447     //{{{On vérifie que le message ne s'affiche pas sur un autre dossier
448     //On clique sur le menu "Recherche"
449     $this->byLinkText("Recherche")->click();
450     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
451     $this->verifyNoErrors();
452     //On clique sur le lien du dossier
453     $this->byLinkText("CU 013055 12 00001P0")->click();
454     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
455     $this->verifyNoErrors();
456     //On clique sur l'onglet "document numérisé"
457     $this->byId("document_numerise")->click();
458     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
459     $this->verifyNoErrors();
460     //On clique sur "Ajouter un document"
461     $this->byCssSelector(".formEntete p a")->click();
462     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
463     $this->verifyNoErrors();
464     //On ajoute un fichier
465     $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click();
466     $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/testImportManuel.pdf");
467     $this->byName("submit")->click();
468     //On choisit le type de document
469     $this->select($this->byId("document_numerise_type"))->selectOptionByValue("78");
470     //On valide l'ajout
471     $this->byXPath("//input[@value='Ajouter']")->click();
472     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
473     $this->verifyNoErrors();
474     //On vérifie le message de validation
475     $this->assertNotContains("Le message a été transmis au référentiel ERP.",$this->byCssSelector("#sousform-document_numerise .message")->text());
476     //On se déconnecte de l'application
477     $this->deconnect();
478     //}}}
479     }
480     }
481    
482     ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26