You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2005/06/09 05:19:20 UTC
svn commit: r189695 [44/67] - in /incubator/roller/trunk: ./ contrib/
contrib/lib/ contrib/plugins/ contrib/plugins/src/ contrib/plugins/src/org/
contrib/plugins/src/org/roller/ contrib/plugins/src/org/roller/presentation/
contrib/plugins/src/org/roller/presentation/velocity/
contrib/plugins/src/org/roller/presentation/velocity/plugins/
contrib/plugins/src/org/roller/presentation/velocity/plugins/acronyms/
contrib/plugins/src/org/roller/presentation/velocity/plugins/bookmarks/
contrib/plugins/src/org/roller/presentation/velocity/plugins/email/
contrib/plugins/src/org/roller/presentation/velocity/plugins/jspwiki/
contrib/plugins/src/org/roller/presentation/velocity/plugins/radeox/
contrib/plugins/src/org/roller/presentation/velocity/plugins/readmore/
contrib/plugins/src/org/roller/presentation/velocity/plugins/smileys/
contrib/plugins/src/org/roller/presentation/velocity/plugins/textile/
contrib/plugins/src/org/roller/presentation/velocity/plugins/topictag/
custom/ custom/src/ custom/web/ docs/ docs/images/ docs/installguide/
docs/installguide/old/ docs/userguide/ docs/userguide/images/
docs/userguide/old/ metadata/ metadata/database/
metadata/database/hibernate/ metadata/xdoclet/ nbproject/ personal/
personal/eclipse/ personal/testing/ sandbox/ sandbox/planetroller/
sandbox/planetroller/metadata/ sandbox/planetroller/metadata/database/
sandbox/planetroller/src/ sandbox/planetroller/src/org/
sandbox/planetroller/src/org/roller/
sandbox/planetroller/src/org/roller/tools/
sandbox/planetroller/src/org/roller/tools/planet/
sandbox/planetroller/templates/ sandbox/planetroller/test/
sandbox/planetroller/test/org/ sandbox/planetroller/test/org/roller/
sandbox/planetroller/test/org/roller/model/
sandbox/planetroller/test/org/roller/tools/
sandbox/planetroller/test/org/roller/tools/planet/
sandbox/planetroller/testdata/ sandbox/planetroller/testdata/cache/
sandbox/planetroller/testdata/output/ sandbox/standalone/
sandbox/standalone/jspwiki/ sandbox/standalone/jspwiki/default/
sandbox/standalone/jspwiki/default/images/ sandbox/standalone/lib/
sandbox/standalone/src/ sandbox/standalone/src/org/
sandbox/standalone/src/org/roller/ sandbox/standalone/src/org/roller/jspwiki/
sandbox/standalone/src/org/roller/tomcat/
sandbox/standalone/src/org/roller/util/ sandbox/standalone/tests/
sandbox/standalone/tests/org/ sandbox/standalone/tests/org/roller/
sandbox/standalone/tests/org/roller/util/ sandbox/standalone/tomcat/ src/
src/org/ src/org/roller/ src/org/roller/business/
src/org/roller/business/hibernate/ src/org/roller/business/search/
src/org/roller/business/search/operations/ src/org/roller/business/utils/
src/org/roller/config/ src/org/roller/config/runtime/ src/org/roller/model/
src/org/roller/pojos/ src/org/roller/presentation/
src/org/roller/presentation/atomapi/ src/org/roller/presentation/bookmarks/
src/org/roller/presentation/bookmarks/actions/
src/org/roller/presentation/bookmarks/formbeans/
src/org/roller/presentation/bookmarks/tags/
src/org/roller/presentation/filters/ src/org/roller/presentation/forms/
src/org/roller/presentation/newsfeeds/ src/org/roller/presentation/pagecache/
src/org/roller/presentation/pagecache/rollercache/
src/org/roller/presentation/pings/ src/org/roller/presentation/planet/
src/org/roller/presentation/tags/ src/org/roller/presentation/tags/calendar/
src/org/roller/presentation/tags/menu/ src/org/roller/presentation/util/
src/org/roller/presentation/velocity/ src/org/roller/presentation/weblog/
src/org/roller/presentation/weblog/actions/
src/org/roller/presentation/weblog/formbeans/
src/org/roller/presentation/weblog/tags/ src/org/roller/presentation/website/
src/org/roller/presentation/website/actions/
src/org/roller/presentation/website/formbeans/
src/org/roller/presentation/website/tags/
src/org/roller/presentation/xmlrpc/ src/org/roller/util/
src/org/roller/util/rome/ tests/ tests/org/ tests/org/roller/
tests/org/roller/ant/ tests/org/roller/business/
tests/org/roller/presentation/ tests/org/roller/presentation/atomapi/
tests/org/roller/presentation/bookmarks/
tests/org/roller/presentation/filters/
tests/org/roller/presentation/velocity/
tests/org/roller/presentation/velocity/plugins/
tests/org/roller/presentation/velocity/plugins/smileys/
tests/org/roller/presentation/velocity/plugins/textile/
tests/org/roller/presentation/weblog/ tests/org/roller/presentation/xmlrpc/
tests/org/roller/util/ tests/org/roller/util/rome/ tools/ tools/buildtime/
tools/buildtime/ant-1.6.2/ tools/buildtime/findbugs/
tools/buildtime/findbugs/lib/ tools/buildtime/findbugs/plugin/
tools/buildtime/mockrunner-0.3/ tools/buildtime/mockrunner-0.3/lib/
tools/buildtime/mockrunner-0.35/ tools/buildtime/mockrunner-0.35/lib/
tools/buildtime/tomcat-4.1.24/ tools/buildtime/xdoclet-1.2/
tools/buildtime/xdoclet-1.2/lib/ tools/hibernate-2.1/
tools/hibernate-2.1/lib/ tools/lib/ tools/standard-1.0.3/
tools/standard-1.0.3/lib/ tools/standard-1.0.3/tld/ tools/struts-1.2.4/
tools/struts-1.2.4/lib/ web/ web/WEB-INF/ web/WEB-INF/classes/
web/WEB-INF/classes/flavors/ web/WEB-INF/classes/themes/ web/bookmarks/
web/editor/ web/editor/images/ web/images/ web/images/editor/
web/images/midas/ web/images/preview/ web/images/smileys/ web/planet/
web/tags/ web/templates/ web/theme/ web/theme/images/ web/theme/lavender/
web/theme/scripts/ web/theme/scripts/classes/ web/themes/ web/themes/basic/
web/themes/berkley/ web/themes/berkley/images/ web/themes/brushedmetal/
web/themes/brushedmetal/images/ web/themes/cheb/ web/themes/cheb/images/
web/themes/cheb/scripts/ web/themes/clean/ web/themes/currency-i18n/
web/themes/currency-i18n/images/ web/themes/currency/
web/themes/currency/images/ web/themes/grey2/ web/themes/moonshine/
web/themes/movablemanila/ web/themes/movablemanila/images/
web/themes/pacifica/ web/themes/robot/ web/themes/rolling/
web/themes/rolling/images/ web/themes/sotto/ web/themes/sotto/images/
web/themes/sotto/styles/ web/themes/sunsets/ web/themes/sunsets/images/
web/themes/sunsets/scripts/ web/themes/sunsets/styles/ web/themes/werner/
web/themes/x2/ web/themes/x2/images/ web/themes/x2/scripts/
web/themes/x2/styles/ web/weblog/ web/website/
Added: incubator/roller/trunk/tests/org/roller/RollerTestBase.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/tests/org/roller/RollerTestBase.java?rev=189695&view=auto
==============================================================================
--- incubator/roller/trunk/tests/org/roller/RollerTestBase.java (added)
+++ incubator/roller/trunk/tests/org/roller/RollerTestBase.java Wed Jun 8 20:18:46 2005
@@ -0,0 +1,348 @@
+
+package org.roller;
+
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.roller.business.BookmarkManagerTest;
+import org.roller.model.Roller;
+import org.roller.model.RollerFactory;
+import org.roller.model.UserManager;
+import org.roller.model.WeblogManager;
+import org.roller.pojos.CommentData;
+import org.roller.pojos.UserData;
+import org.roller.pojos.WeblogCategoryData;
+import org.roller.pojos.WeblogEntryData;
+import org.roller.pojos.WebsiteData;
+
+/**
+ * Base class for Roller backend unit test.
+ * Responsible for creating the appropriate Roller implementation.
+ * Provides setup methods to create website, user, blog entries, bookmarks, etc.
+ */
+public abstract class RollerTestBase extends TestCase
+{
+ public static Log mLogger =
+ LogFactory.getFactory().getInstance(BookmarkManagerTest.class);
+
+ private Roller mRoller = null;
+
+ /** Simple website created by addUser(), no frills. */
+ protected WebsiteData mWebsite = null;
+ protected String testUsername = "testuser";
+
+ /** Collection of websites created, each with category tree. */
+ protected List mWebsites = new LinkedList();
+
+ /** Number of website/users to create */
+ protected int mBlogCount = 1;
+
+ /** Number of categories to create in each category of tree. */
+ protected int mCatCount = 2;
+ /** Depth of created category tree. */
+ protected int mCatDepth = 2;
+ /** Number of weblog entries per category, half will be published status */
+ protected int mEntriesPerCatCount = 6; // 3 of 6 published
+ /** Number of comments to creaate per weblog entry */
+ protected int mCommentCount = 2;
+
+ protected int mExpectedEntryCount = mEntriesPerCatCount +
+ mEntriesPerCatCount*mCatCount +
+ mEntriesPerCatCount*(mCatCount*mCatDepth);
+ protected int mExpectedPublishedEntryCount = (int)(mEntriesPerCatCount*0.5) +
+ (int)(mEntriesPerCatCount*0.5)*mCatCount +
+ (int)(mEntriesPerCatCount*0.5)*(mCatCount*mCatDepth);
+
+ /** Store users to make teardown easy. */
+ protected List mUsersCreated = new ArrayList();
+ /** Store categories for use in asserts. */
+ protected List mCategoriesCreated = new ArrayList();
+ /** Store entries for use in asserts. */
+ protected List mEntriesCreated = new ArrayList();
+ /** Store comments for use in asserts. */
+ protected List mCommentsCreated = new ArrayList();
+
+ /** Used to walk back through time as entries are created, one per day. */
+ protected Calendar mCalendar = null;
+
+ //------------------------------------------------------------------------
+ public RollerTestBase()
+ {
+ super();
+ }
+
+ //------------------------------------------------------------------------
+ public RollerTestBase(String name)
+ {
+ super(name);
+ }
+
+ //------------------------------------------------------------------------
+ /**
+ * @see TestCase#setUp()
+ */
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ UserManager umgr = getRoller().getUserManager();
+
+ getRoller().begin(UserData.SYSTEM_USER);
+
+ // create User
+ UserData user = createUser(umgr,
+ testUsername,
+ "password",
+ "TestUser",
+ "testuser@example.com");
+
+ // get website
+ mWebsite = umgr.getWebsite(user.getUserName());
+ getRoller().commit();
+ }
+
+ //-----------------------------------------------------------------------
+ protected UserData createUser(
+ UserManager umgr,
+ String username,
+ String password,
+ String fullName,
+ String email) throws RollerException
+ {
+ UserData ud = new UserData(null,
+ username, // userName
+ password, // password
+ fullName, // fullName
+ email, // emailAddress
+ new java.util.Date() // dateCreated
+ );
+ Map pages = new HashMap();
+ pages.put("Weblog","Weblog page content");
+ pages.put("_day","Day page content");
+ pages.put("css","CSS page content");
+ umgr.addUser(ud, pages, "basic", "en_US_WIN", "America/Los_Angeles");
+ return ud;
+ }
+
+ //-----------------------------------------------------------------------
+ /** If you use this, call tearDownTestWeblogs() */
+ public void setUpTestWeblogs() throws Exception
+ {
+ UserManager umgr = getRoller().getUserManager();
+ WeblogManager wmgr = getRoller().getWeblogManager();
+
+ // Loop to create weblogs
+ for (int i=0; i<mBlogCount; i++)
+ {
+ getRoller().begin(UserData.SYSTEM_USER);
+
+ UserData ud = createUser(umgr,
+ "testuser"+i, // userName
+ "password", // password
+ "Test User #"+i, // fullName
+ "test"+i+"@test.com" // emailAddress
+ );
+ WebsiteData website = umgr.getWebsite(ud.getUserName());
+ mWebsites.add(website);
+ mUsersCreated.add(ud);
+
+ getRoller().commit();
+
+ mLogger.debug("Created user "+ud.getUserName());
+
+ // ensure that the first weblog entry created is the newest
+ mCalendar = Calendar.getInstance();
+ mCalendar.setTime(new Date());
+
+ // create categories
+ getRoller().begin(UserData.SYSTEM_USER);
+ website = umgr.retrieveWebsite(website.getId());
+ WeblogCategoryData rootCat = wmgr.getRootWeblogCategory(website);
+ createCategoryPostsAndComments(0, wmgr, website, rootCat);
+ getRoller().commit();
+ }
+
+ // commit all the objects
+ }
+
+ private void createCategoryPostsAndComments(
+ int depth,
+ WeblogManager wmgr,
+ WebsiteData website,
+ WeblogCategoryData rootCat) throws RollerException
+ {
+ Calendar commentCalendar = Calendar.getInstance();
+
+ Timestamp day;
+ WeblogEntryData wd;
+ if (depth == 0)
+ {
+ // roll calendar forward one day
+ mCalendar.roll(Calendar.DATE, true);
+ day = new Timestamp(mCalendar.getTime().getTime());
+ day.setNanos(0); // kludge
+ wd = new WeblogEntryData(
+ null, // id
+ rootCat, // category
+ website, // websiteId
+ "Future Blog", // title
+ null,
+ "Blog to the Future", // text
+ null, // anchor
+ day, // pubTime
+ day, // updateTime
+ Boolean.TRUE ); // publishEntry
+ wd.save();
+
+ // roll calendar back to today
+ mCalendar.roll(Calendar.DATE, false);
+ }
+
+ // create entries under the category passed in
+ for ( int k=0; k<mEntriesPerCatCount; k++ )
+ {
+ day = new Timestamp(mCalendar.getTime().getTime());
+ day.setNanos(0); // kludge
+
+ boolean published = k%2==0 ? true : false;
+
+ wd = new WeblogEntryData(
+ null, // id
+ rootCat, // category
+ website, // websiteId
+ rootCat.getName() + ":entry"+k, // title
+ null,
+ rootCat.getName() + ":entry"+k, // text
+ null, // anchor
+ day, // pubTime
+ day, // updateTime
+ new Boolean(published) ); // publishEntry
+ wd.save();
+
+ // add at beginning of list
+ mEntriesCreated.add(0, wd);
+
+ Timestamp now = wd.getPubTime();
+ for ( int l=0; l<mCommentCount; l++ )
+ {
+ // need to seperate comments in time
+ // it took alot of trial & error to get this working!
+ commentCalendar.setTime(now);
+ commentCalendar.add(Calendar.HOUR, l);
+ now = new Timestamp(commentCalendar.getTime().getTime());
+ CommentData comment = new CommentData(null,
+ wd, // entry
+ "name"+l, // name
+ "test"+l+"@test.com", // email
+ "url"+l, // url
+ "This is my comment", // content
+ now, // postTime
+ Boolean.FALSE, // spam
+ Boolean.FALSE); // notify
+ comment.save();
+ mCommentsCreated.add(comment);
+ mLogger.debug(" Created comment ["
+ +comment.getId()+"]"+ comment.getName());
+ }
+
+ mCalendar.add(Calendar.DATE, -1);
+ }
+
+ // create categories under the category passed in
+ for ( int j=0; j<mCatCount; j++ )
+ {
+ WeblogCategoryData cat = wmgr.createWeblogCategory(
+ website, // website
+ rootCat, // parent
+ rootCat.getName()+"-cat"+j, // name
+ "desc", // description
+ null ); // image
+ cat.save();
+ mCategoriesCreated.add(cat);
+ mLogger.debug(" Created cat ["+cat.getId()+"]"+cat.getName());
+
+ if (depth < mCatDepth)
+ {
+ createCategoryPostsAndComments(depth+1, wmgr, website, cat);
+ }
+ }
+ }
+
+ //-----------------------------------------------------------------------
+ /** Tear down weblogs created in setupTestWeblogs() */
+ public void tearDownTestWeblogs() throws Exception
+ {
+ getRoller().begin(UserData.SYSTEM_USER);
+ UserManager umgr = getRoller().getUserManager();
+ for (Iterator iter = mUsersCreated.iterator(); iter.hasNext();)
+ {
+ UserData element = (UserData) iter.next();
+ element = umgr.retrieveUser(element.getId());
+ element.remove();
+ }
+ getRoller().commit();
+ }
+
+ //------------------------------------------------------------------------
+
+ /**
+ * Child TestCases should take care to tearDown() their own resources
+ * (including their own implementation). RollerTestBase will clean up the
+ * getRoller() instance.
+ *
+ * @see TestCase#tearDown()
+ */
+ public void tearDown() throws Exception
+ {
+ try
+ {
+ deleteWebsite(testUsername);
+ //getRoller().release();
+ }
+ catch (RollerException e)
+ {
+ mLogger.error("Tearing down",e);
+ }
+ super.tearDown();
+ }
+
+ /**
+ * Delete the website created for this test.
+ *
+ * @throws RollerException
+ */
+ private void deleteWebsite(String deleteMe) throws RollerException
+ {
+ mLogger.debug("try to delete " + deleteMe);
+ getRoller().begin(UserData.SYSTEM_USER);
+ mWebsite = getRoller().getUserManager().getWebsite(deleteMe);
+ if (mWebsite != null)
+ {
+ mWebsite.getUser().remove();
+ }
+ getRoller().commit();
+ }
+
+ //------------------------------------------------------------------------
+ /**
+ * Get Roller implementation to be used in tests.
+ */
+ public Roller getRoller() throws RollerException
+ {
+ if ( mRoller == null )
+ {
+ mRoller = RollerFactory.getRoller();
+ }
+ return mRoller;
+ }
+}
Added: incubator/roller/trunk/tests/org/roller/ant/StartHsqldbTask.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/tests/org/roller/ant/StartHsqldbTask.java?rev=189695&view=auto
==============================================================================
--- incubator/roller/trunk/tests/org/roller/ant/StartHsqldbTask.java (added)
+++ incubator/roller/trunk/tests/org/roller/ant/StartHsqldbTask.java Wed Jun 8 20:18:46 2005
@@ -0,0 +1,60 @@
+package org.roller.ant;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+import org.hsqldb.Server;
+
+/**
+ * Ant Task to start HSQLDB
+ * @author Dave Johnson
+ */
+public class StartHsqldbTask extends Task
+{
+ private String database = null;
+ private String port = null;
+ public void execute() throws BuildException
+ {
+ if (database != null) {
+ Thread server = new Thread() {
+ public void run() {
+ System.out.println("Starting HSQLDB");
+ String[] args = {
+ "-database", database,
+ "-port", port,
+ "-no_system_exit", "true" };
+ Server.main(args);
+ }
+ };
+ server.start();
+ }
+ try {Thread.sleep(2000);} catch (Exception ignored) {}
+ }
+ /**
+ * @return Returns the database.
+ */
+ public String getDatabase()
+ {
+ return database;
+ }
+ /**
+ * @param database The database to set.
+ */
+ public void setDatabase(String database)
+ {
+ this.database = database;
+ }
+ /**
+ * @return Returns the port.
+ */
+ public String getPort()
+ {
+ return port;
+ }
+ /**
+ * @param port The port to set.
+ */
+ public void setPort(String port)
+ {
+ this.port = port;
+ }
+}
Added: incubator/roller/trunk/tests/org/roller/ant/StopHsqldbTask.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/tests/org/roller/ant/StopHsqldbTask.java?rev=189695&view=auto
==============================================================================
--- incubator/roller/trunk/tests/org/roller/ant/StopHsqldbTask.java (added)
+++ incubator/roller/trunk/tests/org/roller/ant/StopHsqldbTask.java Wed Jun 8 20:18:46 2005
@@ -0,0 +1,48 @@
+package org.roller.ant;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+
+/**
+ * Ant Task to stop HSQLDB
+ * @author Dave Johnson
+ */
+public class StopHsqldbTask extends Task
+{
+ private String port = null;
+ public void execute() throws BuildException
+ {
+ try
+ {
+ if (port==null)
+ {
+ throw new BuildException("missing port attribute");
+ }
+ System.out.println("Stopping HSQLDB at port " + port);
+ final Connection con = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost:"+port);
+ con.createStatement().execute("SHUTDOWN");
+ }
+ catch (SQLException e)
+ {
+ throw new BuildException(e.getMessage());
+ }
+ }
+ /**
+ * @return Returns the port.
+ */
+ public String getPort()
+ {
+ return port;
+ }
+ /**
+ * @param port The port to set.
+ */
+ public void setPort(String port)
+ {
+ this.port = port;
+ }
+}
Added: incubator/roller/trunk/tests/org/roller/business/BookmarkManagerTest.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/tests/org/roller/business/BookmarkManagerTest.java?rev=189695&view=auto
==============================================================================
--- incubator/roller/trunk/tests/org/roller/business/BookmarkManagerTest.java (added)
+++ incubator/roller/trunk/tests/org/roller/business/BookmarkManagerTest.java Wed Jun 8 20:18:46 2005
@@ -0,0 +1,412 @@
+
+package org.roller.business;
+
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.List;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.roller.RollerException;
+import org.roller.RollerPermissionsException;
+import org.roller.model.BookmarkManager;
+import org.roller.model.WeblogManager;
+import org.roller.pojos.BookmarkData;
+import org.roller.pojos.FolderData;
+import org.roller.pojos.UserData;
+import org.roller.pojos.WeblogCategoryData;
+import org.roller.pojos.WebsiteData;
+import org.roller.util.Utilities;
+import org.roller.RollerTestBase;
+
+/**
+ * Test Roller Bookmark Management.
+ */
+public class BookmarkManagerTest extends RollerTestBase
+{
+ //------------------------------------------------------------------------
+ public BookmarkManagerTest()
+ {
+ super();
+ }
+
+ //------------------------------------------------------------------------
+ public BookmarkManagerTest(String name)
+ {
+ super(name);
+ }
+
+ //------------------------------------------------------------------------
+ public static Test suite()
+ {
+ return new TestSuite(BookmarkManagerTest.class);
+ }
+
+ //------------------------------------------------------------------------
+ public static void main(String args[])
+ {
+ junit.textui.TestRunner.run( BookmarkManagerTest.class );
+ }
+
+ //------------------------------------------------------------------------
+
+ public void testAddBookmarkToFolder() throws RollerException
+ {
+ BookmarkManager bmgr = getRoller().getBookmarkManager();
+ FolderData folder = null;
+ BookmarkData bookmark1 = null, bookmark2 = null;
+
+ getRoller().begin(UserData.SYSTEM_USER);
+
+ WebsiteData website =
+ getRoller().getUserManager().retrieveWebsite(mWebsite.getId());
+ FolderData root = bmgr.getRootFolder(website);
+
+ folder = bmgr.createFolder();
+ folder.setName("TestFolder1");
+ folder.setDescription("created by testAddBookmarkToFolder()");
+ folder.setWebsite(website);
+ folder.setParent(root);
+ folder.save();
+
+ // Add bookmark by adding to folder
+ bookmark1 = bmgr.createBookmark(
+ folder,
+ "TestBookmark1",
+ "created by testAddBookmarkToFolder()",
+ "http://www.example.com",
+ "http://www.example.com/rss.xml",
+ new Integer(1),
+ new Integer(12),
+ "test.jpg");
+ folder.addBookmark(bookmark1);
+
+ // Add another bookmark
+ bookmark2 = bmgr.createBookmark(
+ folder,
+ "TestBookmark2",
+ "created by testAddBookmarkToFolder()",
+ "http://www.example.com",
+ "http://www.example.com/rss.xml",
+ new Integer(1),
+ new Integer(12),
+ "test.jpf");
+ folder.addBookmark(bookmark2);
+
+ getRoller().commit();
+
+ FolderData testFolder = null;
+ BookmarkData bookmarkb = null, bookmarka = null;
+
+ getRoller().begin(UserData.SYSTEM_USER);
+ // See that two bookmarks were stored
+ testFolder = bmgr.retrieveFolder(folder.getId());
+ assertEquals(2, testFolder.getBookmarks().size());
+ bookmarka = (BookmarkData)testFolder.getBookmarks().iterator().next();
+ bookmarkb = (BookmarkData)testFolder.getBookmarks().iterator().next();
+ // Remove one bookmark
+ testFolder.removeBookmark(bookmarka);
+ bmgr.removeBookmark(bookmarka.getId());
+ getRoller().commit();
+
+ getRoller().begin(UserData.SYSTEM_USER);
+ // Folder should now contain one bookmark
+ testFolder = bmgr.retrieveFolder(folder.getId());
+ assertEquals(1, testFolder.getBookmarks().size());
+ getRoller().release();
+
+ // Remove folder
+ getRoller().begin(UserData.SYSTEM_USER);
+ testFolder = bmgr.retrieveFolder(folder.getId());
+ testFolder.remove();
+ getRoller().commit();
+
+ getRoller().begin(UserData.SYSTEM_USER);
+ // Folder and one remaining bookmark should be gone
+ assertNull( bmgr.retrieveBookmark(bookmarkb.getId()) );
+ assertNull( bmgr.retrieveFolder(folder.getId()) );
+ getRoller().release();
+ }
+
+ //------------------------------------------------------------------------
+ public void testBookmarkImport() throws Exception
+ {
+ importBookmarks("/bookmarks.opml");
+ }
+
+ //------------------------------------------------------------------------
+ public void importBookmarks(String fileName) throws Exception
+ {
+ getRoller().begin(UserData.SYSTEM_USER);
+ InputStream fis = this.getClass().getResourceAsStream(fileName);
+ getRoller().getBookmarkManager().importBookmarks(
+ mWebsite, "ZZZ_imports_ZZZ", fileToString(fis));
+ getRoller().commit();
+ getRoller().release();
+
+ FolderData fd = null;
+
+ getRoller().begin(UserData.SYSTEM_USER);
+ fd = getRoller().getBookmarkManager().getFolder(mWebsite, "ZZZ_imports_ZZZ");
+ assertTrue("no bookmarks found", fd.retrieveBookmarks(true).size() > 0 );
+ fd.remove();
+ getRoller().commit();
+ }
+
+ //------------------------------------------------------------------------
+ public String fileToString( InputStream is ) throws java.io.IOException
+ {
+ BufferedReader br = new BufferedReader(new InputStreamReader(is));
+ String s = null;
+ StringBuffer sb = new StringBuffer();
+ while ( (s=br.readLine()) != null )
+ {
+ sb.append( s );
+ }
+ return sb.toString();
+ }
+
+ //------------------------------------------------------------------------
+
+ /**
+ * Creates folder tree like this:
+ * root/
+ * dest/
+ * f1/
+ * b1
+ * f2/
+ * f3/
+ */
+ public void testMoveFolderContents() throws RollerException
+ {
+ WebsiteData wd = null;
+ BookmarkManager bmgr = getRoller().getBookmarkManager();
+
+ getRoller().begin(UserData.SYSTEM_USER);
+
+ wd = getRoller().getUserManager().retrieveWebsite(mWebsite.getId());
+ FolderData root = bmgr.getRootFolder(wd);
+
+ FolderData dest = bmgr.createFolder();
+ dest.setName("dest");
+ dest.setParent(root);
+ dest.setWebsite(wd);
+ dest.save();
+
+ // create source folder f1
+ FolderData f1 = bmgr.createFolder();
+ f1.setName("f1");
+ f1.setParent(root);
+ f1.setWebsite(wd);
+ f1.save();
+
+ // create bookmark b1 inside source folder f1
+ BookmarkData b1 = bmgr.createBookmark(
+ f1, "b1", "testbookmark",
+ "http://example.com", "http://example.com/rss",
+ new Integer(1), new Integer(1), "image.gif");
+ b1.save();
+
+ // create folder f2 inside f1
+ FolderData f2 = bmgr.createFolder();
+ f2.setName("f2");
+ f2.setParent(f1);
+ f2.setWebsite(wd);
+ f2.save();
+
+ // create bookmark b2 inside folder f2
+ BookmarkData b2 = bmgr.createBookmark(
+ f2, "b2", "testbookmark",
+ "http://example.com", "http://example.com/rss",
+ new Integer(1), new Integer(1), "image.gif");
+ b2.save();
+
+ // create folder f3 inside folder f2
+ FolderData f3 = bmgr.createFolder();
+ f3.setName("f3");
+ f3.setParent(f2);
+ f3.setWebsite(wd);
+ f3.save();
+
+ // crete bookmark b3 inside folder f3
+ BookmarkData b3 = bmgr.createBookmark(
+ f3, "b3", "testbookmark",
+ "http://example.com", "http://example.com/rss",
+ new Integer(1), new Integer(1), "image.gif");
+ b3.save();
+
+ getRoller().commit();
+
+ // test that parent cannot be moved into child
+ boolean safe = false;
+ try
+ {
+ getRoller().begin(UserData.SYSTEM_USER);
+
+ // Move folder into one of it's children
+ f1 = bmgr.retrieveFolder(f1.getId());
+ f3 = bmgr.retrieveFolder(f3.getId());
+ bmgr.moveFolderContents(f1, f3);
+ f3.save();
+ f1.save();
+ getRoller().commit();
+ }
+ catch (RollerException e)
+ {
+ safe = true;
+ }
+ assertTrue(safe);
+
+ getRoller().begin(UserData.SYSTEM_USER);
+
+ // verify number of entries in each folder
+ dest = bmgr.retrieveFolder(dest.getId());
+ f1 = bmgr.retrieveFolder(f1.getId());
+ assertEquals(0, dest.retrieveBookmarks(true).size());
+ assertEquals(0, dest.retrieveBookmarks(false).size());
+ assertEquals(1, f1.retrieveBookmarks(false).size());
+
+ List f1list = f1.retrieveBookmarks(true);
+ assertEquals(3, f1list.size());
+
+ // move contents of source category c1 to destination catetory dest
+ f1.moveContents(dest);
+
+ getRoller().commit();
+
+
+
+ getRoller().begin(UserData.SYSTEM_USER);
+
+ // after move, verify number of entries in eacch folder
+ dest = bmgr.retrieveFolder(dest.getId());
+ f1 = bmgr.retrieveFolder(f1.getId());
+ assertEquals(3, dest.retrieveBookmarks(true).size());
+ assertEquals(3, dest.retrieveBookmarks(false).size());
+ assertEquals(0, f1.retrieveBookmarks(true).size());
+ assertEquals(0, f1.retrieveBookmarks(false).size());
+
+ getRoller().commit();
+ }
+
+ /** Test bookmark folder paths. */
+ public void testPaths() throws Exception
+ {
+ WebsiteData wd = null;
+ BookmarkManager bmgr = getRoller().getBookmarkManager();
+ try
+ {
+ getRoller().begin(UserData.SYSTEM_USER);
+
+ wd = getRoller().getUserManager().retrieveWebsite(mWebsite.getId());
+ FolderData root = bmgr.getRootFolder(wd);
+
+ FolderData f1 = bmgr.createFolder();
+ f1.setName("f1");
+ f1.setParent(root);
+ f1.setWebsite(wd);
+ f1.save();
+
+ FolderData f2 = bmgr.createFolder();
+ f2.setName("f2");
+ f2.setParent(f1);
+ f2.setWebsite(wd);
+ f2.save();
+
+ FolderData f3 = bmgr.createFolder();
+ f3.setName("f3");
+ f3.setParent(f2);
+ f3.setWebsite(wd);
+ f3.save();
+
+ getRoller().commit();
+ }
+ catch (RollerException e)
+ {
+ getRoller().release();
+ mLogger.error(e);
+ }
+
+ try
+ {
+ getRoller().begin(UserData.SYSTEM_USER);
+
+ assertEquals("f1",bmgr.getFolderByPath(wd, null, "/f1").getName());
+ assertEquals("f2",bmgr.getFolderByPath(wd, null, "/f1/f2").getName());
+ assertEquals("f3",bmgr.getFolderByPath(wd, null, "/f1/f2/f3").getName());
+
+ FolderData f3 = bmgr.getFolderByPath(wd, null, "/f1/f2/f3");
+ String pathString = bmgr.getPath(f3);
+ String[] pathArray = Utilities.stringToStringArray(pathString,"/");
+ assertEquals("f1", pathArray[0]);
+ assertEquals("f2", pathArray[1]);
+ assertEquals("f3", pathArray[2]);
+
+ getRoller().release();
+ }
+ catch (RollerException e)
+ {
+ getRoller().release();
+ mLogger.error(e);
+ }
+ }
+
+ /** Ensure that duplicate folder name will throw RollerException */
+ public void testUniquenessOfFolderNames() throws Exception
+ {
+ boolean exception = false;
+ WebsiteData wd = null;
+ FolderData f3 = null;
+ BookmarkManager bmgr = getRoller().getBookmarkManager();
+ try
+ {
+ getRoller().begin(UserData.SYSTEM_USER);
+
+ wd = getRoller().getUserManager().retrieveWebsite(mWebsite.getId());
+ FolderData root = bmgr.getRootFolder(wd);
+
+ FolderData f1 = bmgr.createFolder();
+ f1.setName("f1");
+ f1.setParent(root);
+ f1.setWebsite(wd);
+ f1.save();
+
+ // first child folder
+ FolderData f2 = bmgr.createFolder();
+ f2.setName("f2");
+ f2.setParent(f1);
+ f2.setWebsite(wd);
+ f2.save();
+
+ getRoller().commit();
+
+ getRoller().begin(UserData.SYSTEM_USER);
+
+ // child folder with same name as first
+ f3 = bmgr.createFolder();
+ f3.setName("f2");
+ f3.setParent(f1);
+ f3.setWebsite(wd);
+ f3.save();
+
+ getRoller().commit();
+ }
+ catch (RollerException e)
+ {
+ exception = true;
+ }
+
+ assertTrue(exception);
+ }
+
+
+}
+
+
+
+
+
+
+
Added: incubator/roller/trunk/tests/org/roller/business/ConfigManagerTest.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/tests/org/roller/business/ConfigManagerTest.java?rev=189695&view=auto
==============================================================================
--- incubator/roller/trunk/tests/org/roller/business/ConfigManagerTest.java (added)
+++ incubator/roller/trunk/tests/org/roller/business/ConfigManagerTest.java Wed Jun 8 20:18:46 2005
@@ -0,0 +1 @@
+package org.roller.business;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.roller.RollerException;
import org.roller.RollerPermissionsException;
import org.roller.model.ConfigManager;
import org.roller.pojos.RollerConfigData;
import org.roller.pojos.UserData;
import org.roller.pojos.WebsiteData;
import org.roller.util.OldRollerConfig;
import org.roller.RollerTestBase;
///////////////////////////////////////////////////////////////////////////////
/**
* Test Roller Config Management.
*/
public class ConfigManagerTest extends RollerTestBase
{
String basedir = System.getProperty("basedir");
String path = "web/WEB-INF/roller-config.xml";
ConfigManager configMgr = null;
OldRollerConfig originalConfig;
//------------------------------------------------------------------------
public ConfigManagerTest()
{
super();
}
//------------------------------------------------------------------------
public ConfigManagerTest(String name)
{
super(name);
}
//------------------------------------------------------------------------
public static Test suite()
{
return new TestSuite(ConfigManagerTest.class);
}
//------------------------------------------------------------------------
public static void main(String args[])
{
junit.textui.TestRunner.run(ConfigManagerTest.class);
}
/**
* @see junit.framework.TestCase#setUp()
*/
public void setUp() throws Exception
{
super.setUp();
configMgr = getRoller().getConfigManager();
}
public void tearDown() throws Exception
{
super.tearDown();
}
/* this is no longer a file, so this test is obsolete
public void testRollerConfigFile()
{
path = new java.io.File(basedir,path).getAbsolutePath();
RollerConfigFile bean = RollerConfigFile.readConfig( path );
assertNotNull("RollerConfigFile should not be null", bean);
assertEquals("# editor pages = 0", 0, bean.getEditorPages().size());
}
*/
public void testReadFromFile() throws RollerException
{
/* This hoses my config every time. TODO:Fix
// first delete any existing - hold value in originalConfig
deleteConfig();
// create new RollerConfig from file at path
path = new java.io.File(basedir,path).getAbsolutePath();
getRoller().begin(UserData.SYSTEM_USER);
RollerConfig config = configMgr.readFromFile(path);
configMgr.storeRollerConfig(config);
assertNotNull("Got RollerConfig back", config);
getRoller().commit();
// now fetch it back out
getRoller().begin(UserData.SYSTEM_USER);
RollerConfig config2 = configMgr.getRollerConfig();
assertEquals("Same RollerConfig", config, config2);
getRoller().commit();
// delete our new config
if (originalConfig != null)
{
RollerConfig oldConfig = originalConfig;
deleteConfig();
getRoller().begin(UserData.SYSTEM_USER);
configMgr.storeRollerConfig(oldConfig);
getRoller().commit();
}
*/
}
/*
private RollerConfig createNewConfig()
{
RollerConfig config = new RollerConfig();
config.setAbsoluteURL ( "http://www.rollerweblogger.org/" );
config.setRssUseCache ( Boolean.TRUE );
config.setRssCacheTime ( new Integer(4000) );
config.setNewUserAllowed ( Boolean.TRUE );
config.setAdminUsers ( "dave,lance,matt" );
config.setUserThemes ( "/themes" );
config.setEditorPages ( "editor.jsp" );
config.setEnableAggregator ( Boolean.FALSE );
config.setUploadEnabled ( Boolean.TRUE );
config.setUploadMaxDirMB ( new BigDecimal("5.0") );
config.setUploadMaxFileMB ( new BigDecimal("0.5") );
config.setUploadAllow ( "gif,jpg" );
config.setUploadForbid ( "" );
config.setUploadDir ( null );
config.setUploadPath ( "/resources" );
config.setMemDebug ( Boolean.FALSE );
config.setAutoformatComments ( Boolean.FALSE );
config.setEscapeCommentHtml ( Boolean.FALSE );
config.setEmailComments ( Boolean.FALSE );
config.setEnableLinkback ( Boolean.FALSE );
config.setSiteName ( "RollerConfig Test" );
config.setSiteDescription ( "JUnit Test of RollerConfig Manager" );
config.setEmailAddress ( "lance@brainopolis.com" );
config.setIndexDir ( "/var/lucene-index" );
return config;
}
private void deleteConfig() throws RollerException
{
getRoller().begin(UserData.SYSTEM_USER);
originalConfig = configMgr.getRollerConfig();
if (originalConfig != null)
{
((ConfigManagerImpl)configMgr).removeRollerConfig(originalConfig.getId());
}
getRoller().commit();
}
*/
}
\ No newline at end of file
Added: incubator/roller/trunk/tests/org/roller/business/FileManagerTest.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/tests/org/roller/business/FileManagerTest.java?rev=189695&view=auto
==============================================================================
--- incubator/roller/trunk/tests/org/roller/business/FileManagerTest.java (added)
+++ incubator/roller/trunk/tests/org/roller/business/FileManagerTest.java Wed Jun 8 20:18:46 2005
@@ -0,0 +1,140 @@
+package org.roller.business;
+
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.Map;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.roller.model.FileManager;
+import org.roller.model.PropertiesManager;
+import org.roller.model.Roller;
+import org.roller.model.RollerFactory;
+import org.roller.model.UserManager;
+import org.roller.pojos.RollerPropertyData;
+import org.roller.pojos.UserData;
+import org.roller.pojos.WebsiteData;
+import org.roller.util.RollerMessages;
+
+/**
+ * @author David M Johnson
+ */
+public class FileManagerTest extends TestCase
+{
+ //private Roller mRoller = null;
+ //private WebsiteData mWebsite = null;
+
+ public void setUp() throws Exception
+ {
+
+ }
+
+ public void tearDown() throws Exception
+ {
+ // No need to clean up, we are using mocks
+ }
+
+ public void testCanSave()
+ {
+ try
+ {
+ // do some setup for our test
+ Roller mRoller = RollerFactory.getRoller();
+
+ UserManager umgr = mRoller.getUserManager();
+ WebsiteData mWebsite = umgr.getWebsite("FileManagerTest_userName");
+
+ if(mWebsite == null)
+ mWebsite = this.createTestUser();
+
+ // update roller properties to prepare for test
+ PropertiesManager pmgr = mRoller.getPropertiesManager();
+ Map config = pmgr.getProperties();
+ ((RollerPropertyData)config.get("uploads.enabled")).setValue("false");
+ ((RollerPropertyData)config.get("uploads.types.forbid")).setValue("gif");
+ ((RollerPropertyData)config.get("uploads.dir.maxsize")).setValue("1.00");
+ pmgr.store(config);
+ mRoller.commit();
+
+ FileManager fmgr = new FileManagerImpl();
+ RollerMessages msgs = new RollerMessages();
+ assertFalse(fmgr.canSave(mWebsite, "test.gif", 2500000, msgs));
+ //assertEquals(4, msgs.getErrorCount());
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ public void testSave()
+ {
+ try
+ {
+ // do some setup for our test
+ Roller mRoller = RollerFactory.getRoller();
+
+ UserManager umgr = mRoller.getUserManager();
+ WebsiteData mWebsite = umgr.getWebsite("FileManagerTest_userName");
+
+ if(mWebsite == null)
+ mWebsite = this.createTestUser();
+
+ // update roller properties to prepare for test
+ PropertiesManager pmgr = mRoller.getPropertiesManager();
+ Map config = pmgr.getProperties();
+ ((RollerPropertyData)config.get("uploads.enabled")).setValue("true");
+ ((RollerPropertyData)config.get("uploads.types.allowed")).setValue("opml");
+ ((RollerPropertyData)config.get("uploads.dir.maxsize")).setValue("1.00");
+ pmgr.store(config);
+ mRoller.commit();
+
+ /* NOTE: upload dir for unit tests is set in
+ roller/personal/testing/roller-custom.properties */
+ FileManager fmgr = new FileManagerImpl();
+ RollerMessages msgs = new RollerMessages();
+ InputStream is = getClass().getResourceAsStream("/bookmarks.opml");
+ fmgr.saveFile(mWebsite, "bookmarks.opml", 1545, is);
+
+ assertEquals(1, fmgr.getFiles(mWebsite).length);
+
+ fmgr.deleteFile(mWebsite, "bookmarks.opml");
+ Thread.sleep(2000);
+ assertEquals(0, fmgr.getFiles(mWebsite).length);
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ private WebsiteData createTestUser() throws Exception {
+ // do some setup for our test
+ Roller mRoller = RollerFactory.getRoller();
+
+ UserManager umgr = mRoller.getUserManager();
+ mRoller.begin(UserData.SYSTEM_USER);
+ UserData user = new UserData(null,
+ "FileManagerTest_userName",
+ "FileManagerTest_password",
+ "FileManagerTest_description",
+ "FileManagerTest@example.com",
+ new java.util.Date());
+ Map pages = new HashMap();
+ pages.put("Weblog","Weblog page content");
+ pages.put("_day","Day page content");
+ pages.put("css","CSS page content");
+ umgr.addUser(user, pages, "basic", "en_US_WIN", "America/Los_Angeles");
+ mRoller.commit();
+ WebsiteData mWebsite = umgr.getWebsite(user.getUserName());
+
+ return mWebsite;
+ }
+
+ public static Test suite()
+ {
+ return new TestSuite(FileManagerTest.class);
+ }
+}
Added: incubator/roller/trunk/tests/org/roller/business/IndexManagerTest.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/tests/org/roller/business/IndexManagerTest.java?rev=189695&view=auto
==============================================================================
--- incubator/roller/trunk/tests/org/roller/business/IndexManagerTest.java (added)
+++ incubator/roller/trunk/tests/org/roller/business/IndexManagerTest.java Wed Jun 8 20:18:46 2005
@@ -0,0 +1,44 @@
+package org.roller.business;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.roller.business.search.operations.SearchOperation;
+import org.roller.model.IndexManager;
+import org.roller.RollerTestBase;
+
+/**
+ * @author Dave Johnson
+ */
+public class IndexManagerTest extends RollerTestBase
+{
+ public void testSearch()
+ {
+ try
+ {
+ IndexManager imgr = getRoller().getIndexManager();
+
+ SearchOperation search = new SearchOperation(imgr);
+ search.setTerm("test");
+ imgr.executeIndexOperationNow(search);
+ assertTrue(search.getResultsCount() > 0);
+
+ SearchOperation search2 = new SearchOperation(imgr);
+ search2.setTerm("test");
+ imgr.executeIndexOperationNow(search2);
+ assertTrue(search2.getResultsCount() > 0);
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+ public static Test suite()
+ {
+ return new TestSuite(IndexManagerTest.class);
+ }
+ public static void main(String[] args)
+ {
+ junit.textui.TestRunner.run(IndexManagerTest.class);
+ }
+}
Added: incubator/roller/trunk/tests/org/roller/business/PermissionsTest.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/tests/org/roller/business/PermissionsTest.java?rev=189695&view=auto
==============================================================================
--- incubator/roller/trunk/tests/org/roller/business/PermissionsTest.java (added)
+++ incubator/roller/trunk/tests/org/roller/business/PermissionsTest.java Wed Jun 8 20:18:46 2005
@@ -0,0 +1,225 @@
+package org.roller.business;
+
+import java.sql.Timestamp;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.roller.RollerException;
+import org.roller.RollerPermissionsException;
+import org.roller.model.UserManager;
+import org.roller.model.WeblogManager;
+import org.roller.pojos.BookmarkData;
+import org.roller.pojos.CommentData;
+import org.roller.pojos.FolderData;
+import org.roller.pojos.PageData;
+import org.roller.pojos.UserData;
+import org.roller.pojos.WeblogCategoryData;
+import org.roller.pojos.WeblogEntryData;
+import org.roller.pojos.WebsiteData;
+import org.roller.util.Utilities;
+import org.roller.RollerTestBase;
+
+/**
+ * Test Roller Weblog Management.
+ */
+public class PermissionsTest extends RollerTestBase
+{
+ public PermissionsTest(String name)
+ {
+ super(name);
+ }
+
+ public static void main(String args[])
+ {
+ junit.textui.TestRunner.run(PermissionsTest.class);
+ }
+
+ public static Test suite()
+ {
+ return new TestSuite(PermissionsTest.class);
+ }
+
+ public void setUp() throws Exception
+ {
+ super.setUp();
+ setUpTestWeblogs();
+ }
+
+ public void tearDown() throws Exception
+ {
+ super.tearDown();
+ tearDownTestWeblogs();
+ }
+
+ public void testWeblogEntryPermissions() throws Exception
+ {
+ getRoller().begin(UserData.ANONYMOUS_USER);
+
+ // evil testuser
+ UserData testuser = getRoller().getUserManager().getUser("testuser");
+ assertNotNull(testuser);
+
+ // gets hold of testuser0's entry
+ WebsiteData website0 = getRoller().getUserManager().getWebsite("testuser0");
+ assertNotNull(website0);
+ List entries = getRoller().getWeblogManager().getWeblogEntries(
+ website0,
+ null, // start
+ new Date(), // end
+ null, // cat
+ WeblogManager.ALL,
+ new Integer(1));
+ WeblogEntryData entry = (WeblogEntryData)entries.get(0);
+ assertNotNull(entry);
+
+ // and tries to save it
+ getRoller().setUser(testuser);
+ boolean denied = false;
+ try
+ {
+ entry.save();
+ }
+ catch (RollerPermissionsException e)
+ {
+ // permission denied!
+ denied = true;
+ }
+ assertTrue(denied);
+ getRoller().rollback();
+ }
+
+ public void testBookmarkPermissions() throws Exception
+ {
+ getRoller().begin(UserData.ANONYMOUS_USER);
+
+ // evil testuser
+ UserData testuser = getRoller().getUserManager().getUser("testuser");
+ assertNotNull(testuser);
+
+ // gets hold of testuser0's entry
+ WebsiteData website0 = getRoller().getUserManager().getWebsite("testuser0");
+ assertNotNull(website0);
+ List folders = getRoller().getBookmarkManager().getAllFolders(website0);
+ FolderData root = (FolderData)folders.get(0);
+ FolderData folder = (FolderData)root.getFolders().get(0);
+
+ BookmarkData bookmark = (BookmarkData)(folder.getBookmarks().iterator().next());
+ assertNotNull(bookmark);
+
+ // and tries to save it
+ getRoller().setUser(testuser);
+ boolean denied = false;
+ try
+ {
+ bookmark.save();
+ }
+ catch (RollerPermissionsException e)
+ {
+ // permission denied!
+ denied = true;
+ }
+ assertTrue(denied);
+
+ getRoller().setUser(testuser);
+ denied = false;
+ try
+ {
+ folder.save();
+ }
+ catch (RollerPermissionsException e)
+ {
+ // permission denied!
+ denied = true;
+ }
+ assertTrue(denied);
+
+ getRoller().rollback();
+ }
+
+ public void testPagePermissions() throws Exception
+ {
+ getRoller().begin(UserData.ANONYMOUS_USER);
+
+ // evil testuser
+ UserData testuser = getRoller().getUserManager().getUser("testuser");
+ assertNotNull(testuser);
+
+ // gets hold of testuser0's entry
+ WebsiteData website0 = getRoller().getUserManager().getWebsite("testuser0");
+ assertNotNull(website0);
+ PageData page = (PageData)getRoller().getUserManager().getPages(website0).get(0);
+ assertNotNull(page);
+
+ // and tries to save it
+ getRoller().setUser(testuser);
+ boolean denied = false;
+ try
+ {
+ page.save();
+ }
+ catch (RollerPermissionsException e)
+ {
+ // permission denied!
+ denied = true;
+ }
+ assertTrue(denied);
+
+
+ // and tries to save it
+ getRoller().setUser(testuser);
+ denied = false;
+ try
+ {
+ website0.save();
+ }
+ catch (RollerPermissionsException e)
+ {
+ // permission denied!
+ denied = true;
+ }
+ assertTrue(denied);
+
+
+ getRoller().rollback();
+ }
+
+ /*
+ Disabling this test for now because it won't work.
+ public void testConfigPermissions() throws Exception
+ {
+ getRoller().begin(UserData.ANONYMOUS_USER);
+
+ // evil testuser0
+ UserData testuser0 = getRoller().getUserManager().getUser("testuser0");
+ assertNotNull(testuser0);
+
+ // gets hold of testuser's (an admin) entry
+ WebsiteData website = getRoller().getUserManager().getWebsite("testuser");
+ assertNotNull(website);
+
+ Map config = getRoller().getPropertiesManager().getProperties();
+ assertNotNull(config);
+
+ // and tries to save it
+ getRoller().setUser(testuser0);
+ boolean denied = false;
+ try
+ {
+ getRoller().getPropertiesManager().store(config);
+ }
+ catch (RollerPermissionsException e)
+ {
+ // permission denied!
+ denied = true;
+ }
+ assertTrue(denied);
+ getRoller().rollback();
+ }
+ */
+}
+
Added: incubator/roller/trunk/tests/org/roller/business/PlanetManagerTest.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/tests/org/roller/business/PlanetManagerTest.java?rev=189695&view=auto
==============================================================================
--- incubator/roller/trunk/tests/org/roller/business/PlanetManagerTest.java (added)
+++ incubator/roller/trunk/tests/org/roller/business/PlanetManagerTest.java Wed Jun 8 20:18:46 2005
@@ -0,0 +1,456 @@
+/*
+ * Copyright 2005 Sun Microsystems, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.roller.business;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.roller.RollerException;
+import org.roller.model.PlanetManager;
+import org.roller.model.Roller;
+import org.roller.model.RollerFactory;
+import org.roller.pojos.PlanetConfigData;
+import org.roller.pojos.PlanetEntryData;
+import org.roller.pojos.PlanetGroupData;
+import org.roller.pojos.PlanetSubscriptionData;
+import org.roller.pojos.UserData;
+
+/**
+ * Test database implementation of PlanetManager.
+ * @author Dave Johnson
+ */
+public class PlanetManagerTest extends TestCase
+{
+ private Roller roller = null;
+
+ public static void main(String[] args)
+ {
+ junit.textui.TestRunner.run(PlanetManagerTest.class);
+ }
+
+ public void testConfigurationStorage() throws Exception
+ {
+ Roller roller = getRoller();
+ assertNotNull(roller);
+ PlanetManager planet = roller.getPlanetManager();
+ assertNotNull(planet);
+
+ { // save config with default group
+ roller.begin();
+
+ PlanetConfigData config = new PlanetConfigData();
+ config.setCacheDir("test_cache_dir");
+ config.setTitle("test_title");
+ config.setAdminEmail("test_admin_email");
+
+ PlanetGroupData group = new PlanetGroupData();
+ group.setDescription("test_group_desc");
+ group.setHandle("test_handle");
+ group.setTitle("test_title");
+ planet.saveGroup(group);
+
+ config.setDefaultGroup(group);
+ planet.saveConfiguration(config);
+
+ roller.commit();
+ }
+ { // retrieve config and default group
+ roller.begin();
+ PlanetConfigData config = planet.getConfiguration();
+ assertEquals("test_cache_dir",config.getCacheDir());
+ assertEquals("test_title", config.getTitle());
+ assertEquals("test_admin_email", config.getAdminEmail());
+
+ PlanetGroupData group = config.getDefaultGroup();
+ assertEquals("test_group_desc",group.getDescription());
+ assertEquals("test_title",group.getTitle());
+
+ roller.rollback();
+ }
+ { // remove config
+ roller.begin();
+ PlanetConfigData config = planet.getConfiguration();
+ config.remove();
+ roller.commit();
+ }
+ {
+ // make sure config and group are gone
+ roller.begin();
+ PlanetConfigData config = planet.getConfiguration();
+ assertNull(config);
+ PlanetGroupData group = planet.getGroup("test_handle");
+ assertNull(group);
+ roller.rollback();
+ }
+ }
+
+ public void testGroupStorage() throws Exception
+ {
+ Roller roller = getRoller();
+ assertNotNull(roller);
+ PlanetManager planet = roller.getPlanetManager();
+ assertNotNull(planet);
+
+ { // save group
+ roller.begin(UserData.SYSTEM_USER);
+ PlanetGroupData group = new PlanetGroupData();
+ group.setDescription("test_group_desc");
+ group.setHandle("test_handle");
+ group.setTitle("test_title");
+ planet.saveGroup(group);
+ roller.commit();
+ }
+ { // retrieve group
+ roller.begin();
+ PlanetGroupData group = planet.getGroup("test_handle");
+ assertEquals("test_group_desc",group.getDescription());
+ assertEquals("test_title",group.getTitle());
+ assertEquals(1, planet.getGroupHandles().size());
+ roller.rollback();
+ }
+ { // remove group
+ roller.begin();
+ PlanetGroupData group = planet.getGroup("test_handle");
+ planet.deleteGroup(group);
+ roller.commit();
+ }
+ { // verify that it is gone
+ roller.begin();
+ PlanetGroupData group = planet.getGroup("test_handle");
+ assertNull(group);
+ roller.rollback();
+ }
+ }
+
+ public void testSubscriptionStorage() throws Exception
+ {
+ Roller roller = getRoller();
+ assertNotNull(roller);
+ PlanetManager planet = roller.getPlanetManager();
+ assertNotNull(planet);
+
+ { // save subscription
+ roller.begin();
+ PlanetSubscriptionData sub = new PlanetSubscriptionData();
+ sub.setFeedUrl("test_url");
+ planet.saveSubscription(sub);
+ roller.commit();
+ }
+ { // retrieve subscription and add to group
+ roller.begin();
+
+ PlanetGroupData group = new PlanetGroupData();
+ group.setDescription("test_group_desc");
+ group.setHandle("test_handle");
+ group.setTitle("test_title");
+ planet.saveGroup(group);
+
+ PlanetSubscriptionData sub = planet.getSubscription("test_url");
+ assertNotNull(sub);
+ group.addSubscription(sub);
+
+ PlanetSubscriptionData sub1 = new PlanetSubscriptionData();
+ sub1.setFeedUrl("test_url1");
+ planet.saveSubscription(sub1);
+
+ List subs = new ArrayList();
+ subs.add(sub1);
+ group.addSubscriptions(subs);
+
+ planet.saveGroup(group);
+
+ roller.commit();
+ }
+ { // get group and check it's subscriptions, remove it
+ roller.begin();
+ PlanetGroupData group = planet.getGroup("test_handle");
+ Set subs = group.getSubscriptions();
+ assertEquals(2, subs.size());
+ planet.deleteGroup(group);
+ roller.commit();
+ }
+ { // make sure group gone, subs still there, then remove them too
+ roller.begin();
+ PlanetGroupData group = planet.getGroup("test_handle");
+ assertNull(group);
+ PlanetSubscriptionData sub = planet.getSubscription("test_url");
+ assertNotNull(sub);
+ PlanetSubscriptionData sub1 = planet.getSubscription("test_url1");
+ assertNotNull(sub1);
+ planet.deleteSubscription(sub);
+ planet.deleteSubscription(sub1);
+ roller.commit();
+ }
+ { // make sure subscriptions are gone
+ roller.begin();
+ PlanetSubscriptionData sub = planet.getSubscription("test_url");
+ assertNull(sub);
+ PlanetSubscriptionData sub1 = planet.getSubscription("test_url1");
+ assertNull(sub1);
+ roller.rollback();
+ }
+ }
+ public void testSubscriptionEntryStorage() throws Exception
+ {
+ Roller roller = getRoller();
+ assertNotNull(roller);
+ PlanetManager planet = roller.getPlanetManager();
+ assertNotNull(planet);
+
+ { // save subscription
+ roller.begin();
+ PlanetSubscriptionData sub = new PlanetSubscriptionData();
+ sub.setFeedUrl("test_url");
+ planet.saveSubscription(sub);
+ roller.commit();
+ }
+ { // retrieve subscription and add entries
+ roller.begin();
+ PlanetSubscriptionData sub = planet.getSubscription("test_url");
+ assertNotNull(sub);
+
+ PlanetEntryData entry1 = new PlanetEntryData();
+ entry1.setPermalink("test_entry1");
+ entry1.setCategoriesString("test,test2");
+ entry1.setSubscription(sub);
+ entry1.setPublished(new Date());
+ entry1.save();
+ sub.addEntry(entry1);
+
+ PlanetEntryData entry2 = new PlanetEntryData();
+ entry2.setPermalink("test_entry2");
+ entry2.setCategoriesString("test_cat1,test_cat2,test_cat3");
+ entry2.setSubscription(sub);
+ entry2.setPublished(new Date());
+ entry2.save();
+ sub.addEntry(entry2);
+
+ roller.commit();
+ }
+ { // get sub and check it's entries, remove it
+ roller.begin();
+ PlanetSubscriptionData sub = planet.getSubscription("test_url");
+ assertEquals(2, sub.getEntries().size());
+ planet.deleteSubscription(sub);
+ roller.commit();
+ }
+ { // make sure sub is gone
+ roller.begin();
+ PlanetSubscriptionData sub = planet.getSubscription("test_url");
+ assertNull(sub);
+ roller.rollback();
+ }
+ }
+ public void testRefreshEntries()
+ {
+ try
+ {
+ Roller roller = getRoller();
+ assertNotNull(roller);
+ PlanetManager planet = roller.getPlanetManager();
+ assertNotNull(planet);
+ String feed_url1 = "http://rollerweblogger.org/rss/roller";
+ {
+ roller.begin();
+ PlanetConfigData config = new PlanetConfigData();
+ config.setCacheDir("/tmp"); // TODO use real temp dir
+ config.setTitle("test_title");
+ config.setAdminEmail("test_admin_email");
+ planet.saveConfiguration(config);
+
+ PlanetGroupData group = new PlanetGroupData();
+ group.setDescription("test_group_desc");
+ group.setHandle("test_handle");
+ group.setTitle("test_title");
+ planet.saveGroup(group);
+
+ PlanetSubscriptionData sub = new PlanetSubscriptionData();
+ sub.setFeedUrl(feed_url1);
+ planet.saveSubscription(sub);
+
+ group.addSubscription(sub);
+ planet.saveGroup(group);
+
+ roller.commit();
+ }
+ {
+ roller.begin();
+ planet.refreshEntries();
+ roller.commit();
+
+ roller.begin();
+ PlanetSubscriptionData sub = planet.getSubscription(feed_url1);
+ assertTrue(sub.getEntries().size() > 0);
+
+ PlanetGroupData group = planet.getGroup("test_handle");
+ assertNotNull(group);
+
+ planet.deleteSubscription(sub);
+ planet.deleteGroup(group);
+
+ PlanetConfigData config = planet.getConfiguration();
+ config.remove();
+ roller.commit();
+ }
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+ public void testAggregations() throws Exception
+ {
+ try
+ {
+ Roller roller = getRoller();
+ assertNotNull(roller);
+ PlanetManager planet = roller.getPlanetManager();
+ assertNotNull(planet);
+ String feed_url1 = "http://rollerweblogger.org/rss/roller";
+ String feed_url2 = "http://linuxintegrators.com/acoliver/?flavor=rss2";
+ {
+ roller.begin();
+ PlanetConfigData config = new PlanetConfigData();
+ config.setCacheDir("/tmp"); // TODO use real temp dir
+ config.setTitle("test_title");
+ config.setAdminEmail("test_admin_email");
+ planet.saveConfiguration(config);
+
+ PlanetGroupData group = new PlanetGroupData();
+ group.setDescription("test_group_desc");
+ group.setHandle("test_handle");
+ group.setTitle("test_title");
+ planet.saveGroup(group);
+
+ PlanetSubscriptionData sub1 = new PlanetSubscriptionData();
+ sub1.setFeedUrl(feed_url1);
+ planet.saveSubscription(sub1);
+
+ PlanetSubscriptionData sub2 = new PlanetSubscriptionData();
+ sub2.setFeedUrl(feed_url2);
+ planet.saveSubscription(sub2);
+
+ group.addSubscription(sub1);
+ group.addSubscription(sub2);
+ planet.saveGroup(group);
+
+ roller.commit();
+ }
+ {
+ roller.begin();
+ planet.refreshEntries();
+ roller.commit();
+
+ roller.begin();
+ int count = 0;
+ Iterator subs = planet.getAllSubscriptions();
+ while (subs.hasNext())
+ {
+ PlanetSubscriptionData sub= (PlanetSubscriptionData)subs.next();
+ count += sub.getEntries().size();
+ }
+ PlanetSubscriptionData sub1 = planet.getSubscription(feed_url1);
+ assertTrue(sub1.getEntries().size() > 0);
+ PlanetSubscriptionData sub2 = planet.getSubscription(feed_url2);
+ assertTrue(sub2.getEntries().size() > 0);
+ assertEquals(count, sub1.getEntries().size() + sub2.getEntries().size());
+
+ PlanetGroupData group = planet.getGroup("test_handle");
+ assertNotNull(group);
+
+ List bigag = planet.getAggregation(group, 1000);
+ assertEquals(bigag.size(), count);
+
+ List littleag = planet.getAggregation(group, 10);
+ assertEquals(littleag.size(), count);
+
+ planet.deleteSubscription(sub1);
+ planet.deleteSubscription(sub2);
+ planet.deleteGroup(group);
+
+ PlanetConfigData config = planet.getConfiguration();
+ config.remove();
+ roller.commit();
+ }
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+ public void testSubscriptionCount() throws Exception
+ {
+ try
+ {
+ Roller roller = getRoller();
+ assertNotNull(roller);
+ PlanetManager planet = roller.getPlanetManager();
+ assertNotNull(planet);
+ String feed_url1 = "http://rollerweblogger.org/rss/roller";
+ String feed_url2 = "http://linuxintegrators.com/acoliver/?flavor=rss2";
+ {
+ roller.begin();
+ PlanetSubscriptionData sub1 = new PlanetSubscriptionData();
+ sub1.setFeedUrl(feed_url1);
+ planet.saveSubscription(sub1);
+ PlanetSubscriptionData sub2 = new PlanetSubscriptionData();
+ sub2.setFeedUrl(feed_url2);
+ planet.saveSubscription(sub2);
+ roller.commit();
+
+ roller.begin();
+ assertEquals(2, planet.getSubscriptionCount());
+ roller.rollback();
+ }
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+ /*
+ public void testRankingRange()
+ {
+ int limit = 1000;
+ int count = 5500;
+ int mod = (count / limit) + 1;
+ for (int i=0; i<20; i++)
+ {
+ int start = (i % mod) * limit;
+ int end = start + 999;
+ end = end > count ? count : end;
+ System.out.println("start="+start+" end="+end);
+ }
+ }
+ */
+ public Roller getRoller() throws RollerException
+ {
+ return RollerFactory.getRoller();
+ }
+
+ public static Test suite()
+ {
+ return new TestSuite(PlanetManagerTest.class);
+ }
+}
+
Added: incubator/roller/trunk/tests/org/roller/business/RefererManagerTest.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/tests/org/roller/business/RefererManagerTest.java?rev=189695&view=auto
==============================================================================
--- incubator/roller/trunk/tests/org/roller/business/RefererManagerTest.java (added)
+++ incubator/roller/trunk/tests/org/roller/business/RefererManagerTest.java Wed Jun 8 20:18:46 2005
@@ -0,0 +1 @@
+package org.roller.business;
import java.sql.Timestamp;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.roller.RollerException;
import org.roller.model.PropertiesManager;
import org.roller.model.RefererManager;
import org.roller.model.Roller;
import org.roller.pojos.RefererData;
import org.roller.pojos.RollerPropertyData;
import org.roller.pojos.UserData;
import org.roller.pojos.WeblogEntryData;
import org.roller.pojos.WebsiteData;
import org.roller.util.DateUtil;
import org.roller.RollerTestBase;
/**
* Test Roller Referer Management.
*/
public class RefererManagerTest extends RollerTestBase
{
RefererManager rmgr;
//List refs;
int count = 20;
String testDay;
String origSpamWords;
//------------------------------------------------------------------------
public RefererManagerTest(String name)
{
super(name);
}
//------------------------------------------------------------------------
public static void main(String args[])
{
junit.textui.TestRunner.run(RefererManagerTest.class);
}
//------------------------------------------------------------------------
public static Test suite()
{
return new TestSuite(RefererManagerTest.class);
}
protected void setUp() throws Exception
{
super.setUp();
// add "spamtest" to refererSpamWords
Roller mRoller = getRoller();
PropertiesManager pmgr = mRoller.getPropertiesManager();
RollerPropertyData spamprop = pmgr.getProperty("spam.referers.ignorewords");
this.origSpamWords = spamprop.getValue();
spamprop.setValue(spamprop.getValue() + ", spamtest");
pmgr.store(spamprop);
// Process count unique referers
rmgr = getRoller().getRefererManager();
Calendar lCalendar = Calendar.getInstance();
lCalendar.setTime(new Date());
for (int i = 0; i < count; i++)
{
lCalendar.add(Calendar.DATE, -1);
Timestamp day = new Timestamp(lCalendar.getTime().getTime());
getRoller().begin(UserData.SYSTEM_USER);
MockRequest mock = new MockRequest(
DateUtil.format8chars(day),
"http://test"+i,
"http://test"+i,
null,
mWebsite
);
rmgr.processRequest(mock);
getRoller().commit();
testDay = mock.getDateString();
}
}
public void tearDown() throws Exception
{
List refs = rmgr.getReferers(mWebsite);
// Remove all referers processes
for (int i = 0; i < refs.size(); i++)
{
rmgr.removeReferer(((RefererData)refs.get(i)).getId());
}
// Make sure all were removed
refs = rmgr.getReferers(mWebsite);
assertEquals(0,refs.size());
// reset refererSpamWords to original value
Roller mRoller = getRoller();
PropertiesManager pmgr = mRoller.getPropertiesManager();
RollerPropertyData spamprop = pmgr.getProperty("spam.referers.ignorewords");
spamprop.setValue(this.origSpamWords);
pmgr.store(spamprop);
super.tearDown();
}
//------------------------------------------------------------------------
public void testGetReferersToDate() throws Exception
{
List referers = rmgr.getReferersToDate(mWebsite, testDay);
assertEquals("Should be one Referer.", referers.size(), 1);
}
//------------------------------------------------------------------------
public void testRefererProcessing() throws RollerException
{
List refs = rmgr.getReferers(mWebsite);
assertEquals("number of referers should equal count", count, refs.size());
int hits = rmgr.getDayHits(mWebsite);
assertEquals("There should be one fewer hits than referers", count, hits);
}
public void testSelfRefererDenial() throws RollerException
{
// test against "self referrals"
getRoller().begin(UserData.SYSTEM_USER);
// create "direct" referer
boolean isSpam = rmgr.processRequest(
new MockRequest(
"20020101",
"direct",
"http://test.com",
null, mWebsite
)
);
getRoller().commit();
assertFalse("is not spam", isSpam);
int newRefCount = rmgr.getReferers(mWebsite).size();
// now create self-referer
getRoller().begin(UserData.SYSTEM_USER);
isSpam = rmgr.processRequest(
new MockRequest(
"20020202",
"http://test.com/page/" + mWebsite.getUser().getUserName(),
"http://test.com",
null, mWebsite
)
);
getRoller().commit();
assertFalse("is not spam", isSpam);
// number of referrers should not have changed
List refs = rmgr.getReferers(mWebsite);
assertEquals("self referal not ignored", newRefCount, refs.size());
// now create self-referer from editor page
isSpam = rmgr.processRequest(
new MockRequest(
"20020202",
"http://test.com/weblog.do",
"http://test.com",
null, mWebsite
)
);
getRoller().commit();
assertFalse("is not spam", isSpam);
// number of referrers should not have changed
refs = rmgr.getReferers(mWebsite);
assertEquals("editor referal not ignored", newRefCount, refs.size());
}
/**
* Test to see if Referer Spam detection works.
*/
public void testSpamBlocking()
{
boolean isSpam = rmgr.processRequest(
new MockRequest(
"20040101",
"http://www.spamtest.com",
"http://test.com",
null, mWebsite
)
);
//assertTrue("failed to detect referer spam", isSpam);
}
public void testApplyRefererFilters() throws Exception
{
List refs = rmgr.getReferers(mWebsite);
assertEquals(count, refs.size());
String origWords = null;
getRoller().begin(UserData.SYSTEM_USER);
Roller mRoller = getRoller();
PropertiesManager pmgr = mRoller.getPropertiesManager();
RollerPropertyData spamprop = pmgr.getProperty("spam.referers.ignorewords");
origWords = spamprop.getValue();
spamprop.setValue(spamprop.getValue() + ", test");
pmgr.store(spamprop);
getRoller().commit();
getRoller().begin(UserData.SYSTEM_USER);
getRoller().getRefererManager().applyRefererFilters();
getRoller().commit();
refs = rmgr.getReferers(mWebsite);
assertEquals(0, refs.size());
getRoller().begin(UserData.SYSTEM_USER);
spamprop = pmgr.getProperty("spam.referers.ignorewords");
spamprop.setValue(origWords);
pmgr.store(spamprop);
getRoller().commit();
}
public void testApplyRefererFiltersWebsite() throws Exception
{
List refs = rmgr.getReferers(mWebsite);
assertEquals(count, refs.size());
String origWords = null;
getRoller().begin(UserData.SYSTEM_USER);
mWebsite = getRoller().getUserManager().retrieveWebsite(mWebsite.getId());
origWords = mWebsite.getIgnoreWords();
mWebsite.setIgnoreWords("test");
mWebsite.save();
getRoller().commit();
getRoller().begin(UserData.SYSTEM_USER);
getRoller().getRefererManager().applyRefererFilters();
getRoller().commit();
refs = rmgr.getReferers(mWebsite);
assertEquals(0, refs.size());
}
}
class MockRequest implements org.roller.model.ParsedRequest
{
private String mDateStr = null;
private String mRefUrl = null;
private String mReqUrl = null;
private WeblogEntryData mEntry = null;
private WebsiteData mWebsite = null;
private boolean mIsDateSpecified = false;
public MockRequest(
String dateStr, String refUrl, String reqUrl,
WeblogEntryData entry, WebsiteData website)
{
mDateStr = dateStr;
mRefUrl = refUrl;
mReqUrl = reqUrl;
mEntry = entry;
mWebsite = website;
if (mDateStr != null) mIsDateSpecified = true;
}
/**
* @see org.roller.pojos.ParsedRequest#getDateString()
*/
public String getDateString()
{
return mDateStr;
}
/**
* @see org.roller.pojos.ParsedRequest#getRefererURL()
*/
public String getRefererURL()
{
return mRefUrl;
}
/**
* @see org.roller.pojos.ParsedRequest#getRequestURL()
*/
public String getRequestURL()
{
return mReqUrl;
}
/**
* @see org.roller.pojos.ParsedRequest#getWeblogEntry()
*/
public WeblogEntryData getWeblogEntry()
{
return mEntry;
}
/**
* @see org.roller.pojos.ParsedRequest#getWebsite()
*/
public WebsiteData getWebsite()
{
return mWebsite;
}
/**
* Returns the isDateSpecified.
* @return boolean
*/
public boolean isDateSpecified()
{
return mIsDateSpecified;
}
/**
* Sets the isDateSpecified.
* @param isDateSpecified The isDateSpecified to set
*/
public void setDateSpecified(boolean isDateSpecified)
{
mIsDateSpecified = isDateSpecified;
}
/**
* @see org.roller.pojos.ParsedRequest#isEnableLinkback()
*/
public boolean isEnableLinkback()
{
return false;
}
}
\ No newline at end of file
Added: incubator/roller/trunk/tests/org/roller/business/TestAll.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/tests/org/roller/business/TestAll.java?rev=189695&view=auto
==============================================================================
--- incubator/roller/trunk/tests/org/roller/business/TestAll.java (added)
+++ incubator/roller/trunk/tests/org/roller/business/TestAll.java Wed Jun 8 20:18:46 2005
@@ -0,0 +1,39 @@
+package org.roller.business;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+
+/**
+ * Run the essential business layer tests (convenience test for IDEs)
+ *
+ * @author llavandowska
+ */
+public class TestAll extends TestCase
+{
+ public static Test suite()
+ {
+ TestSuite suite = new TestSuite();
+ suite.addTest(BookmarkManagerTest.suite());
+ suite.addTest(ConfigManagerTest.suite());
+ suite.addTest(FileManagerTest.suite());
+ suite.addTest(IndexManagerTest.suite());
+ suite.addTest(PermissionsTest.suite());
+ suite.addTest(PlanetManagerTest.suite());
+ suite.addTest(RefererManagerTest.suite());
+ suite.addTest(UserManagerTest.suite());
+ suite.addTest(WeblogManagerTest.suite());
+ return suite;
+ }
+ public TestAll(String testName)
+ {
+ super(testName);
+ }
+
+ public static void main(String[] args)
+ {
+ String[] testCaseName = { TestAll.class.getName() };
+ junit.textui.TestRunner.main(testCaseName);
+ }
+}
\ No newline at end of file