3 * Special "test" for initial loading of the database.
4 * It doesn't do the normal run-and-report thing, but it
5 * it inherits from WikiTest because it needs to do the
6 * same kinds of things that tests do, i.e., interacting
10 package com
.piclab
.wikitest
;
11 import com
.meterware
.httpunit
.*;
13 public class DBLoader
extends WikiTest
{
15 private WebResponse
loadPageFromFile( String title
)
16 throws WikiSuiteFailureException
{
17 StringBuffer url
= new StringBuffer(200);
18 String t
= WikiTest
.titleToUrl( title
);
20 url
.append( "data/" ).append( t
).append( ".txt" );
21 String text
= WikiSuite
.loadText( url
.toString() );
23 WebResponse wr
= replacePage( title
, text
);
24 WikiSuite
.fine( "Loaded \"" + title
+ "\"" );
29 * Load database with initial set of pages for testing.
32 public void initializeDatabase( WikiSuite ws
, boolean f_overwrite
) {
33 WebResponse wr
= null;
39 } catch ( WikiSuiteFailureException e
) {
40 WikiSuite
.error( "Can't find Wikipedia installation." );
43 if ( ! f_overwrite
) {
45 text
= getArticle( wr
);
46 if ( text
.indexOf( "no text in this page" ) < 0 ) {
47 WikiSuite
.error( "Target wiki is not empty." );
50 } catch( WikiSuiteFailureException e
) {
51 WikiSuite
.error( "Can't access target wiki." );
55 WikiSuite
.info( "Preloading database with test pages." );
57 for (int i
= 0; i
< WikiSuite
.preloadedPages
.length
; ++i
) {
59 wr
= loadPageFromFile( WikiSuite
.preloadedPages
[i
] );
60 } catch (WikiSuiteFailureException e
) {
61 WikiSuite
.warning( "Failed to load \"" +
62 WikiSuite
.preloadedPages
[i
] + "\"" );
66 WikiSuite
.info( "Creating test users." );
68 wr
= viewPage( "Special:Userlogin" );
69 WebForm loginform
= getFormByName( wr
, "userlogin" );
70 WebRequest req
= loginform
.getRequest( "wpCreateaccount" );
71 req
.setParameter( "wpName", "Fred" );
72 req
.setParameter( "wpPassword", "Fred" );
73 req
.setParameter( "wpRetype", "Fred" );
74 wr
= getResponse( req
);
76 wr
= viewPage( "Special:Userlogin" );
77 loginform
= getFormByName( wr
, "userlogin" );
78 req
= loginform
.getRequest( "wpCreateaccount" );
79 req
.setParameter( "wpName", "Barney" );
80 req
.setParameter( "wpPassword", "Barney" );
81 req
.setParameter( "wpRetype", "Barney" );
82 wr
= getResponse( req
);
85 } catch ( Exception e
) {
86 WikiSuite
.error( "Exception (" + e
+ ") parsing login form." );