notloggedin
[mediawiki.git] / testsuite / src / com / piclab / wikitest / DBLoader.java
blob50bc825a5295881926c928d283f228e2371fe3cf
2 /*
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
7 * with the wiki.
8 */
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 + "\"" );
25 return wr;
29 * Load database with initial set of pages for testing.
32 public void initializeDatabase( WikiSuite ws, boolean f_overwrite ) {
33 WebResponse wr = null;
34 String text = null;
36 m_suite = ws;
37 try {
38 wr = viewPage( "" );
39 } catch ( WikiSuiteFailureException e ) {
40 WikiSuite.error( "Can't find Wikipedia installation." );
41 return;
43 if ( ! f_overwrite ) {
44 try {
45 text = getArticle( wr );
46 if ( text.indexOf( "no text in this page" ) < 0 ) {
47 WikiSuite.error( "Target wiki is not empty." );
48 return;
50 } catch( WikiSuiteFailureException e ) {
51 WikiSuite.error( "Can't access target wiki." );
52 return;
55 WikiSuite.info( "Preloading database with test pages." );
57 for (int i = 0; i < WikiSuite.preloadedPages.length; ++i) {
58 try {
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." );
67 try {
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 );
84 logout();
85 } catch ( Exception e ) {
86 WikiSuite.error( "Exception (" + e + ") parsing login form." );