]> source.dussan.org Git - archiva.git/blob
dd5dab4c3fad2e7a3d4c32ad808be27ff0685c1d
[archiva.git] /
1 package org.apache.archiva.web.test.parent;
2
3 import org.testng.Assert;
4
5 import java.io.File;
6 import java.io.IOException;
7
8 /*
9  * Licensed to the Apache Software Foundation (ASF) under one
10  * or more contributor license agreements.  See the NOTICE file
11  * distributed with this work for additional information
12  * regarding copyright ownership.  The ASF licenses this file
13  * to you under the Apache License, Version 2.0 (the
14  * "License"); you may not use this file except in compliance
15  * with the License.  You may obtain a copy of the License at
16  *
17  *   http://www.apache.org/licenses/LICENSE-2.0
18  *
19  * Unless required by applicable law or agreed to in writing,
20  * software distributed under the License is distributed on an
21  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
22  * KIND, either express or implied.  See the License for the
23  * specific language governing permissions and limitations
24  * under the License.
25  */
26
27 public abstract class AbstractArchivaTest
28     extends AbstractSeleniumTest
29 {
30     protected String username;
31
32     protected String fullname;
33
34     protected static String getErrorMessageText()
35     {
36         return getSelenium().getText( "//ul[@class='errorMessage']/li/span" );
37     }
38
39     public String getUserEmail()
40     {
41         String email = getProperty( "USERROLE_EMAIL" );
42         return email;
43     }
44
45     public String getUserRolePassword()
46     {
47         String password = getProperty( "USERROLE_PASSWORD" );
48         return password;
49     }
50
51     public String getUserRoleNewPassword()
52     {
53         String password_new = getProperty( "NEW_USERROLE_PASSWORD" );
54         return password_new;
55     }
56
57     public String getBasedir()
58     {
59         String basedir = System.getProperty( "basedir" );
60
61         if ( basedir == null )
62         {
63             basedir = new File( "" ).getAbsolutePath();
64         }
65
66         return basedir;
67     }
68
69     public String getAdminUsername()
70     {
71         String adminUsername = getProperty( "ADMIN_USERNAME" );
72         return adminUsername;
73     }
74
75     public String getAdminPassword()
76     {
77         String adminPassword = getProperty( "ADMIN_PASSWORD" );
78         return adminPassword;
79     }
80
81     public void assertCreateAdmin()
82     {
83         assertElementPresent( "user-create" );
84         assertFieldValue( "admin", "username" );
85         assertElementPresent( "fullname" );
86         assertElementPresent( "password" );
87         assertElementPresent( "confirmPassword" );
88         assertElementPresent( "email" );
89     }
90
91     public void submitAdminData( String fullname, String email, String password )
92     {
93         setFieldValue( "fullname", fullname );
94         setFieldValue( "email", email );
95         setFieldValue( "password", password );
96         setFieldValue( "confirmPassword", password );
97         clickButtonWithLocator( "user-create-form-register-button" );
98         //submit();
99     }
100
101     // Go to Login Page
102     public void goToLoginPage()
103     {
104         getSelenium().open( baseUrl );
105         waitPage();
106         // are we already logged in ?
107         if ( isElementVisible( "logout-link" ) ) //isElementPresent( "logoutLink" ) )
108         {
109             // so logout
110             clickLinkWithLocator( "logout-link-a", false );
111             clickLinkWithLocator( "login-link-a" );
112         }
113         else if ( isElementVisible( "login-link-a" ) )
114         {
115             clickLinkWithLocator( "login-link-a" );
116         }
117         assertLoginModal();
118     }
119
120     public void submitUserData( String username, String password, boolean rememberme, boolean success )
121     {
122
123         setFieldValue( "username", username );
124         setFieldValue( "password", password );
125         if ( rememberme )
126         {
127             checkField( "rememberMe" );
128         }
129
130         submit();
131         if ( success )
132         {
133             assertUserLoggedIn( username );
134         }
135         else
136         {
137             assertLoginModal();
138         }
139     }
140
141     public void assertLoginModal()
142     {
143         assertElementPresent( "user-login-form" );
144         Assert.assertTrue( isElementVisible( "register-link" ) );
145         assertElementPresent( "user-login-form-username" );
146         assertElementPresent( "user-login-form-password" );
147         assertButtonWithIdPresent( "modal-login-ok" );
148     }
149
150     // User Management
151     public void goToUserManagementPage()
152     {
153         getSelenium().open( "/archiva/security/userlist.action" );
154         assertUserManagementPage();
155     }
156
157     public void assertUserManagementPage()
158     {
159         assertPage( "Apache Archiva \\ [Admin] User List" );
160         assertTextPresent( "[Admin] List of Users in Role: Any" );
161         assertTextPresent( "Navigation" );
162         assertImgWithAlt( "First" );
163         assertImgWithAlt( "Prev" );
164         assertImgWithAlt( "Next" );
165         assertImgWithAlt( "Last" );
166         assertTextPresent( "Display Rows" );
167         assertTextPresent( "Username" );
168         assertTextPresent( "Full Name" );
169         assertTextPresent( "Email" );
170         assertTextPresent( "Permanent" );
171         assertTextPresent( "Validated" );
172         assertTextPresent( "Locked" );
173         assertTextPresent( "Tasks" );
174         assertTextPresent( "Tools" );
175         assertTextPresent( "Tasks" );
176         assertTextPresent( "The following tools are available for administrators to manipulate the user list." );
177         assertButtonWithValuePresent( "Create New User" );
178         assertButtonWithValuePresent( "Show Users In Role" );
179         assertElementPresent( "roleName" );
180         assertTextPresent( "Reports" );
181         assertTextPresent( "Name" );
182         assertTextPresent( "Types" );
183         assertTextPresent( "User List" );
184         assertTextPresent( "Roles Matrix" );
185     }
186
187     /*
188      * //User Role public void goToUserRolesPage() { clickLinkWithText( "User Roles" ); assertUserRolesPage(); }
189      */
190
191     public void assertUserRolesPage()
192     {
193         //assertPage( "Apache Archiva \\ [Admin] User Edit" );
194         //[Admin] RĂ´les de l'utilisateur
195
196         assertTextPresent( "[Admin] User Roles", "[Admin] R\u00F4les de l'utilisateur" );
197         assertTextPresent( "Username", "Nom d'utilisateur" );
198         assertTextPresent( "Full Name", "Nom complet" );
199         String userRoles =
200             "Guest,Registered User,System Administrator,User Administrator,Global Repository Observer,Global Repository Manager,Repository Observer,Repository Manager,internal";
201         String[] arrayRole = userRoles.split( "," );
202         for ( String userroles : arrayRole )
203         {
204             assertTextPresent( userroles );
205         }
206     }
207
208     public void assertDeleteUserPage( String username )
209     {
210         assertTextPresent( "[Admin] User Delete", "[Admin] Suppression de l'utilisateur",
211                            "L'utilisateur suivant va \u00EAtre supprim\u00E9:" );
212         assertTextPresent( "The following user will be deleted:" );
213         assertTextPresent( "Username: " + username, "Nom d'utilisateur:" + username );
214         assertButtonWithIdPresent( "userDeleteSubmit" );
215     }
216
217     public void createUser( String userName, String fullName, String email, String password, boolean valid )
218     {
219         createUser( userName, fullName, email, password, password, valid );
220     }
221
222     private void createUser( String userName, String fullName, String emailAd, String password, String confirmPassword,
223                              boolean valid )
224     {
225
226         clickLinkWithLocator( "menu-users-list-a", true );
227         clickLinkWithLocator( "users-view-tabs-li-user-edit-a", true );
228
229         assertCreateUserPage();
230         setFieldValue( "username", userName );
231         setFieldValue( "fullname", fullName );
232         setFieldValue( "email", emailAd );
233         setFieldValue( "password", password );
234         setFieldValue( "confirmPassword", confirmPassword );
235
236         clickLinkWithLocator( "user-create-form-register-button", true );
237
238         assertTextPresent( "user created:"+userName );
239         assertElementPresent( "users-grid-user-id-"+userName );
240
241         if ( valid )
242         {
243             //String[] columnValues = { userName, fullName, emailAd };
244             //assertElementPresent( XPathExpressionUtil.getTableRow( columnValues ) );
245
246         }
247         else
248         {
249             assertCreateUserPage();
250         }
251     }
252
253     public void deleteUser( String userName, String fullName, String emailAdd )
254     {
255         deleteUser( userName, fullName, emailAdd, false, false );
256     }
257
258     public void deleteUser( String userName, String fullName, String emailAd, boolean validated, boolean locked )
259     {
260         clickLinkWithLocator( "menu-users-list-a", true );
261         assertTextPresent( userName );
262         assertTextPresent( fullName );
263
264         clickLinkWithLocator( "users-grid-delete-" + userName );
265
266         clickLinkWithLocator( "dialog-confirm-modal-ok" );
267
268         assertTextPresent( "user " + userName + " deleted" );
269
270         clickLinkWithLocator( "alert-message-success-close-a" );
271
272         assertElementNotPresent( "users-grid-user-id-"+userName );
273         assertTextNotPresent( fullName );
274
275
276     }
277
278     public void login( String username, String password )
279     {
280         login( username, password, true, "Login Page" );
281     }
282
283     public void login( String username, String password, boolean valid, String assertReturnPage )
284     {
285         if ( isElementVisible( "login-link-a" ) )//isElementPresent( "loginLink" ) )
286         {
287             goToLoginPage();
288
289             submitLoginPage( username, password, false, valid, assertReturnPage );
290         }
291         if ( valid )
292         {
293             assertUserLoggedIn( username );
294         }
295     }
296
297     public void submitLoginPage( String username, String password )
298     {
299         submitLoginPage( username, password, false, true, "Login Page" );
300     }
301
302     public void submitLoginPage( String username, String password, boolean validUsernamePassword )
303     {
304         submitLoginPage( username, password, false, validUsernamePassword, "Login Page" );
305     }
306
307     public void submitLoginPage( String username, String password, boolean rememberMe, boolean validUsernamePassword,
308                                  String assertReturnPage )
309     {
310         clickLinkWithLocator( "login-link-a", false );
311         setFieldValue( "user-login-form-username", username );
312         setFieldValue( "user-login-form-password", password );
313         /*
314         if ( rememberMe )
315         {
316             checkField( "rememberMe" );
317         }*/
318
319         clickButtonWithLocator( "modal-login-ok" );
320         if ( validUsernamePassword )
321         {
322             assertUserLoggedIn( username );
323         }
324         /*
325         else
326         {
327             if ( "Login Page".equals( assertReturnPage ) )
328             {
329                 assertLoginPage();
330             }
331             else
332             {
333                 assertPage( assertReturnPage );
334             }
335         }*/
336     }
337
338     protected void assertUserLoggedIn( String username )
339     {
340         Assert.assertFalse( isElementVisible( "login-link" ) );
341         Assert.assertTrue( isElementVisible( "logout-link" ) );
342         Assert.assertFalse( isElementVisible( "register-link" ) );
343         Assert.assertFalse( isElementVisible( "create-admin-link" ) );
344     }
345
346     // User Roles
347     public void assertUserRoleCheckBoxPresent( String value )
348     {
349         getSelenium().isElementPresent(
350             "xpath=//input[@id='addRolesToUser_addNDSelectedRoles' and @name='addNDSelectedRoles' and @value='" + value
351                 + "']" );
352     }
353
354     public void assertResourceRolesCheckBoxPresent( String value )
355     {
356         getSelenium().isElementPresent( "xpath=//input[@name='addDSelectedRoles' and @value='" + value + "']" );
357     }
358
359     public void checkUserRoleWithValue( String value )
360     {
361         assertUserRoleCheckBoxPresent( value );
362         getSelenium().click(
363             "xpath=//input[@id='addRolesToUser_addNDSelectedRoles' and @name='addNDSelectedRoles' and @value='" + value
364                 + "']" );
365     }
366
367     public void checkResourceRoleWithValue( String value )
368     {
369         assertResourceRolesCheckBoxPresent( value );
370         getSelenium().click( "xpath=//input[@name='addDSelectedRoles' and @value='" + value + "']" );
371     }
372
373     public void changePassword( String oldPassword, String newPassword )
374     {
375         assertPage( "Apache Archiva \\ Change Password" );
376         setFieldValue( "existingPassword", oldPassword );
377         setFieldValue( "newPassword", newPassword );
378         setFieldValue( "newPasswordConfirm", newPassword );
379         clickButtonWithValue( "Change Password" );
380     }
381
382     public void assertCreateUserPage()
383     {
384         assertTextPresent( "Username" );
385         assertElementPresent( "username" );
386         assertTextPresent( "Full Name" );
387         assertElementPresent( "fullname" );
388         assertTextPresent( "Email Address" );
389         assertElementPresent( "email" );
390         assertTextPresent( "Password" );
391         assertElementPresent( "password" );
392         assertTextPresent( "Confirm Password" );
393         assertElementPresent( "confirmPassword" );
394         assertButtonWithIdPresent( "user-create-form-register-button" );
395
396     }
397
398     public void assertLeftNavMenuWithRole( String role )
399     {
400         if ( role.equals( "Guest" ) || role.equals( "Registered User" ) || role.equals( "Global Repository Observer" )
401             || role.equals( "Repository Observer - internal" ) || role.equals( "Repository Observer - snapshots" ) )
402         {
403             assertTextPresent( "Search" );
404             assertLinkPresent( "Find Artifact" );
405             assertLinkPresent( "Browse" );
406             assertLinkNotPresent( "Repositories" );
407         }
408         else if ( role.equals( "User Administrator" ) )
409         {
410             assertTextPresent( "Search" );
411             assertLinkPresent( "Find Artifact" );
412             assertLinkPresent( "Browse" );
413             assertLinkPresent( "User Management" );
414             assertLinkPresent( "User Roles" );
415             assertLinkNotPresent( "Repositories" );
416         }
417         else if ( role.equals( "Global Repository Manager" ) || role.equals( "Repository Manager - internal" )
418             || role.equals( "Repository Manager - snapshots" ) )
419         {
420             assertTextPresent( "Search" );
421             assertLinkPresent( "Find Artifact" );
422             assertLinkPresent( "Browse" );
423             assertLinkPresent( "Upload Artifact" );
424             assertLinkPresent( "Delete Artifact" );
425             assertLinkNotPresent( "Repositories" );
426         }
427         else
428         {
429             assertTextPresent( "Search" );
430             String navMenu =
431                 "Find Artifact,Browse,Reports,User Management,User Roles,Appearance,Upload Artifact,Delete Artifact,Repository Groups,Repositories,Proxy Connectors,Legacy Support,Network Proxies,Repository Scanning";
432             String[] arrayMenu = navMenu.split( "," );
433             for ( String navmenu : arrayMenu )
434             {
435                 assertLinkPresent( navmenu );
436             }
437         }
438     }
439
440     // Find Artifact
441     public void goToFindArtifactPage()
442     {
443         getSelenium().open( "/archiva/findArtifact.action" );
444         assertFindArtifactPage();
445     }
446
447     public void assertFindArtifactPage()
448     {
449         //assertPage( "Apache Archiva \\ Find Artifact" );
450         assertElementPresent( "searchBox" );
451         //assertTextPresent( "Find Artifact" );
452         //assertTextPresent( "Search for:" );
453         //assertTextPresent( "Checksum:" );
454         assertElementPresent( "quickSearchBox" );
455         assertElementPresent( "checksumSearch" );
456         //assertButtonWithValuePresent( "Search" );
457         assertElementPresent( "checksumSearch_0" );
458     }
459
460     // Appearance
461     public void goToAppearancePage()
462     {
463         getSelenium().open( "/archiva/admin/configureAppearance.action" );
464         assertAppearancePage();
465     }
466
467     public void assertAppearancePage()
468     {
469         assertPage( "Apache Archiva \\ Configure Appearance" );
470         String appearance =
471             "Appearance,Organization Details,The logo in the top right of the screen is controlled by the following settings.,Organization Information,Name,URL,Logo URL";
472         String[] arrayAppearance = appearance.split( "," );
473         for ( String appear : arrayAppearance )
474         {
475             assertTextPresent( appear );
476         }
477         assertLinkPresent( "Edit" );
478         assertLinkPresent( "Change your appearance" );
479     }
480
481     public void addEditAppearance( String name, String url, String logoUrl, boolean wait )
482     {
483         setFieldValue( "organisationName", name );
484         setFieldValue( "organisationUrl", url );
485         setFieldValue( "organisationLogo", logoUrl );
486         clickButtonWithValue( "Save", wait );
487     }
488
489     public void goToHomePage()
490     {
491         getSelenium().open( "" );
492     }
493
494     // Upload Artifact
495     public void goToAddArtifactPage()
496     {
497         // must be logged as admin
498         getSelenium().open( "/archiva/upload.action" );
499         assertAddArtifactPage();
500     }
501
502     public void assertAddArtifactPage()
503     {
504         assertPage( "Apache Archiva \\ Upload Artifact" );
505         assertTextPresent( "Upload Artifact" );
506
507         String artifact =
508             "Upload Artifact,Group Id*:,Artifact Id*:,Version*:,Packaging*:,Classifier:,Generate Maven 2 POM,Artifact File*:,POM File:,Repository Id:";
509         String[] arrayArtifact = artifact.split( "," );
510         for ( String arrayartifact : arrayArtifact )
511         {
512             assertTextPresent( arrayartifact );
513         }
514
515         String artifactElements =
516             "upload_groupId,upload_artifactId,upload_version,upload_packaging,upload_classifier,upload_generatePom,upload_artifact,upload_pom,upload_repositoryId,uploadSubmit";
517         String[] arrayArtifactElements = artifactElements.split( "," );
518         for ( String artifactelements : arrayArtifactElements )
519         {
520             assertElementPresent( artifactelements );
521         }
522     }
523
524     public void addArtifact( String groupId, String artifactId, String version, String packaging,
525                              String artifactFilePath, String repositoryId, boolean wait )
526     {
527         addArtifact( groupId, artifactId, version, packaging, true, artifactFilePath, repositoryId, wait );
528     }
529
530     public void addArtifact( String groupId, String artifactId, String version, String packaging, boolean generatePom,
531                              String artifactFilePath, String repositoryId, boolean wait )
532     {
533         login( getProperty( "ADMIN_USERNAME" ), getProperty( "ADMIN_PASSWORD" ) );
534         goToAddArtifactPage();
535         setFieldValue( "groupId", groupId );
536         setFieldValue( "artifactId", artifactId );
537         setFieldValue( "version", version );
538         setFieldValue( "packaging", packaging );
539
540         if ( generatePom )
541         {
542             checkField( "generatePom" );
543         }
544
545         String path;
546         if ( artifactFilePath != null && artifactFilePath.trim().length() > 0 )
547         {
548             File f = new File( artifactFilePath );
549             try
550             {
551                 path = f.getCanonicalPath();
552             }
553             catch ( IOException e )
554             {
555                 path = f.getAbsolutePath();
556             }
557         }
558         else
559         {
560             path = artifactFilePath;
561         }
562
563         setFieldValue( "artifact", path );
564         selectValue( "upload_repositoryId", repositoryId );
565
566         //clickButtonWithValue( "Submit" );
567         clickButtonWithLocator( "uploadSubmit", wait );
568     }
569
570     public void goToRepositoriesPage()
571     {
572         if ( !getTitle().equals( "Apache Archiva \\ Administration - Repositories" ) )
573         {
574             getSelenium().open( "/archiva/admin/repositories.action" );
575         }
576         assertRepositoriesPage();
577     }
578
579     public void assertRepositoriesPage()
580     {
581         assertPage( "Apache Archiva \\ Administration - Repositories" );
582         assertTextPresent( "Administration - Repositories" );
583         assertTextPresent( "Managed Repositories" );
584         assertTextPresent( "Remote Repositories" );
585     }
586
587     public void addManagedRepository( String identifier, String name, String directory, String indexDirectory,
588                                       String type, String cron, String daysOlder, String retentionCount, boolean wait )
589     {
590         // goToRepositoriesPage();
591         // clickLinkWithText( "Add" );
592         setFieldValue( "repository.id", identifier );
593         setFieldValue( "repository.name", name );
594         setFieldValue( "repository.location", directory );
595         setFieldValue( "repository.indexDirectory", indexDirectory );
596         selectValue( "repository.layout", type );
597         setFieldValue( "repository.cronExpression", cron );
598         setFieldValue( "repository.daysOlder", daysOlder );
599         setFieldValue( "repository.retentionCount", retentionCount );
600         // TODO
601         clickButtonWithValue( "Add Repository", wait );
602     }
603
604     // artifact management
605     public void assertDeleteArtifactPage()
606     {
607         assertPage( "Apache Archiva \\ Delete Artifact" );
608         assertTextPresent( "Delete Artifact" );
609         assertTextPresent( "Group Id*:" );
610         assertTextPresent( "Artifact Id*:" );
611         assertTextPresent( "Version*:" );
612         assertTextPresent( "Repository Id:" );
613         assertElementPresent( "groupId" );
614         assertElementPresent( "artifactId" );
615         assertElementPresent( "version" );
616         assertElementPresent( "repositoryId" );
617         assertButtonWithValuePresent( "Submit" );
618     }
619
620     // network proxies
621     public void goToNetworkProxiesPage()
622     {
623         clickLinkWithText( "Network Proxies" );
624         assertNetworkProxiesPage();
625     }
626
627     public void assertNetworkProxiesPage()
628     {
629         assertPage( "Apache Archiva \\ Administration - Network Proxies" );
630         assertTextPresent( "Administration - Network Proxies" );
631         assertTextPresent( "Network Proxies" );
632         assertLinkPresent( "Add Network Proxy" );
633     }
634
635     public void addNetworkProxy( String identifier, String protocol, String hostname, String port, String username,
636                                  String password )
637     {
638         //goToNetworkProxiesPage();
639         clickLinkWithText( "Add Network Proxy" );
640         assertAddNetworkProxy();
641         setFieldValue( "proxy.id", identifier );
642         setFieldValue( "proxy.protocol", protocol );
643         setFieldValue( "proxy.host", hostname );
644         setFieldValue( "proxy.port", port );
645         setFieldValue( "proxy.username", username );
646         setFieldValue( "proxy.password", password );
647         clickButtonWithValue( "Save Network Proxy" );
648     }
649
650     public void assertAddNetworkProxy()
651     {
652         assertPage( "Apache Archiva \\ Admin: Add Network Proxy" );
653         assertTextPresent( "Admin: Add Network Proxy" );
654         assertTextPresent( "Add network proxy:" );
655         assertTextPresent( "Identifier*:" );
656         assertTextPresent( "Protocol*:" );
657         assertTextPresent( "Hostname*:" );
658         assertTextPresent( "Port*:" );
659         assertTextPresent( "Username:" );
660         assertTextPresent( "Password:" );
661         assertButtonWithValuePresent( "Save Network Proxy" );
662     }
663
664     // Legacy Support
665     public void goToLegacySupportPage()
666     {
667         getSelenium().open( "/archiva/admin/legacyArtifactPath.action" );
668         assertLegacySupportPage();
669     }
670
671     public void assertLegacySupportPage()
672     {
673         assertPage( "Apache Archiva \\ Administration - Legacy Support" );
674         assertTextPresent( "Administration - Legacy Artifact Path Resolution" );
675         assertTextPresent( "Path Mappings" );
676         assertLinkPresent( "Add" );
677     }
678
679     public void addLegacyArtifactPath( String path, String groupId, String artifactId, String version,
680                                        String classifier, String type, boolean wait )
681     {
682         assertAddLegacyArtifactPathPage();
683         setFieldValue( "legacyArtifactPath.path", path );
684         setFieldValue( "groupId", groupId );
685         setFieldValue( "artifactId", artifactId );
686         setFieldValue( "version", version );
687         setFieldValue( "classifier", classifier );
688         setFieldValue( "type", type );
689         clickButtonWithValue( "Add Legacy Artifact Path", wait );
690     }
691
692     public void assertAddLegacyArtifactPathPage()
693     {
694         assertPage( "Apache Archiva \\ Admin: Add Legacy Artifact Path" );
695         assertTextPresent( "Admin: Add Legacy Artifact Path" );
696         assertTextPresent(
697             "Enter the legacy path to map to a particular artifact reference, then adjust the fields as necessary." );
698         String element =
699             "addLegacyArtifactPath_legacyArtifactPath_path,addLegacyArtifactPath_groupId,addLegacyArtifactPath_artifactId,addLegacyArtifactPath_version,addLegacyArtifactPath_classifier,addLegacyArtifactPath_type";
700         String[] arrayElement = element.split( "," );
701         for ( String arrayelement : arrayElement )
702         {
703             assertElementPresent( arrayelement );
704         }
705         assertButtonWithValuePresent( "Add Legacy Artifact Path" );
706     }
707
708     // add managed repository and its staging repository
709     public void addStagingRepository( String identifier, String name, String directory, String indexDirectory,
710                                       String type, String cron, String daysOlder, String retentionCount )
711     {
712         setFieldValue( "repository.id", identifier );
713         setFieldValue( "repository.name", name );
714         setFieldValue( "repository.location", directory );
715         setFieldValue( "repository.indexDirectory", indexDirectory );
716         selectValue( "repository.layout", type );
717         setFieldValue( "repository.cronExpression", cron );
718         setFieldValue( "repository.daysOlder", daysOlder );
719         setFieldValue( "repository.retentionCount", retentionCount );
720         checkField( "stageNeeded" );
721
722         clickButtonWithValue( "Add Repository" );
723     }
724
725     protected void logout()
726     {
727         clickLinkWithText( "Logout" );
728         assertTextNotPresent( "Current User:" );
729         assertLinkNotVisible( "Edit Details" );
730         assertLinkNotVisible( "Logout" );
731         assertLinkVisible( "Login" );
732     }
733 }