Search in sources :

Example 96 with WikiPage

use of org.apache.wiki.WikiPage in project jspwiki by apache.

the class VersioningFileProviderTest method testMigrationWithSimpleHistory.

/*
     * Checks if migration from FileSystemProvider to VersioningFileProvider
     * works when a simple text file and its associated properties exist, but
     * when there is not yet any corresponding history content in OLD/
     */
@Test
public void testMigrationWithSimpleHistory() throws IOException {
    // we cannot switch PageProviders within a single test, so the
    // initial FileSystemProvider wiki page must be faked.
    final String fakeWikiPage = "foobar";
    injectFile(NAME1 + AbstractFileProvider.FILE_EXT, fakeWikiPage);
    // now create the associated properties file with some history
    injectFile(NAME1 + FileSystemProvider.PROP_EXT, FAKE_HISTORY);
    String res = engine.getText(NAME1);
    Assert.assertEquals("fetch latest did not work", fakeWikiPage, res);
    // Should be the first version.
    res = engine.getText(NAME1, 1);
    Assert.assertEquals("fetch by direct version did not work", fakeWikiPage, res);
    WikiPage page = engine.getPage(NAME1, 1);
    Assert.assertEquals("original version expected", 1, page.getVersion());
    Assert.assertEquals("original author", OLD_AUTHOR, page.getAuthor());
}
Also used : WikiPage(org.apache.wiki.WikiPage) Test(org.junit.Test)

Example 97 with WikiPage

use of org.apache.wiki.WikiPage in project jspwiki by apache.

the class VersioningFileProviderTest method testGetByVersion.

@Test
public void testGetByVersion() throws Exception {
    String text = "diddo\r\n";
    engine.saveText(NAME1, text);
    WikiPage page = engine.getPage(NAME1, 1);
    Assert.assertEquals("name", NAME1, page.getName());
    Assert.assertEquals("version", 1, page.getVersion());
}
Also used : WikiPage(org.apache.wiki.WikiPage) Test(org.junit.Test)

Example 98 with WikiPage

use of org.apache.wiki.WikiPage in project jspwiki by apache.

the class VersioningFileProviderTest method testMigrationSimple.

/*
     * Checks if migration from FileSystemProvider to VersioningFileProvider
     * works when a simple text file (without associated properties) exists,
     * but there is not yet any corresponding history content in OLD/
     */
@Test
public void testMigrationSimple() throws IOException {
    // we cannot switch PageProviders within a single test, so the
    // initial FileSystemProvider wiki page must be faked.
    injectFile(NAME1 + AbstractFileProvider.FILE_EXT, "foobar");
    String res = engine.getText(NAME1);
    Assert.assertEquals("fetch latest did not work", "foobar", res);
    // Should be the first version.
    res = engine.getText(NAME1, 1);
    Assert.assertEquals("fetch by direct version did not work", "foobar", res);
    WikiPage page = engine.getPage(NAME1);
    Assert.assertEquals("original version expected", 1, page.getVersion());
    Assert.assertNull("original author not expected", page.getAuthor());
}
Also used : WikiPage(org.apache.wiki.WikiPage) Test(org.junit.Test)

Example 99 with WikiPage

use of org.apache.wiki.WikiPage in project jspwiki by apache.

the class VersioningFileProviderTest method testMigrationMultiChangesNoCache.

/*
     * A variation of testMigrationMultiChangesHistory when caching
     * is disabled.
     */
@Test
public void testMigrationMultiChangesNoCache() throws Exception {
    // discard the default engine, and get another with different properties
    // note: the originating properties file is unchanged.
    String cacheState = PROPS.getProperty(PageManager.PROP_USECACHE);
    Assert.assertEquals("should cache", "true", cacheState);
    cacheState = "false";
    PROPS.setProperty(PageManager.PROP_USECACHE, cacheState);
    engine = new TestEngine(PROPS);
    // the new TestEngine will have assigned a new page directory
    files = PROPS.getProperty(AbstractFileProvider.PROP_PAGEDIR);
    // we cannot switch PageProviders within a single test, so the
    // initial FileSystemProvider wiki page must be faked.
    final String fakeWikiPage = "foobar";
    injectFile(NAME1 + AbstractFileProvider.FILE_EXT, fakeWikiPage);
    // also create an associated properties file with some history
    injectFile(NAME1 + FileSystemProvider.PROP_EXT, FAKE_HISTORY);
    // next update the wiki page to create a version number 2
    // with a different user name
    final String text2 = "diddo\r\n";
    engine.saveTextAsJanne(NAME1, text2);
    // finally update the wiki page to create a version number 3
    final String text3 = "whateverNext\r\n";
    engine.saveText(NAME1, text3);
    // confirm the right number of versions have been recorded
    Collection versionHistory = engine.getVersionHistory(NAME1);
    Assert.assertEquals("number of versions", 3, versionHistory.size());
    // fetch the latest version of the page
    String result = engine.getText(NAME1);
    Assert.assertEquals("latest should be newest version", text3, result);
    String result2 = engine.getText(NAME1, 3);
    Assert.assertEquals("fetch new by version did not work", text3, result2);
    // confirm the original page was archived
    String result3 = engine.getText(NAME1, 1);
    Assert.assertEquals("fetch original by version Assert.failed", fakeWikiPage, result3);
    // confirm the first update was archived
    String result4 = engine.getText(NAME1, 2);
    Assert.assertEquals("fetch original by version Assert.failed", text2, result4);
    WikiPage pageNew = engine.getPage(NAME1);
    Assert.assertEquals("newest version", 3, pageNew.getVersion());
    Assert.assertEquals("newest author", "Guest", pageNew.getAuthor());
    WikiPage pageMiddle = engine.getPage(NAME1, 2);
    Assert.assertEquals("middle version", 2, pageMiddle.getVersion());
    Assert.assertEquals("middle author", Users.JANNE, pageMiddle.getAuthor());
    WikiPage pageOld = engine.getPage(NAME1, 1);
    Assert.assertEquals("old version", 1, pageOld.getVersion());
    Assert.assertEquals("old author", OLD_AUTHOR, pageOld.getAuthor());
}
Also used : WikiPage(org.apache.wiki.WikiPage) Collection(java.util.Collection) TestEngine(org.apache.wiki.TestEngine) Test(org.junit.Test)

Example 100 with WikiPage

use of org.apache.wiki.WikiPage in project jspwiki by apache.

the class VersioningFileProviderTest method testMigrationMultiChangesHistory.

/*
     * Checks migration from FileSystemProvider to VersioningFileProvider
     * works after multiple updates to a page with existing properties.
     */
@Test
public void testMigrationMultiChangesHistory() throws Exception {
    // we cannot switch PageProviders within a single test, so the
    // initial FileSystemProvider wiki page must be faked.
    final String fakeWikiPage = "foobar";
    injectFile(NAME1 + AbstractFileProvider.FILE_EXT, fakeWikiPage);
    // also create an associated properties file with some history
    injectFile(NAME1 + FileSystemProvider.PROP_EXT, FAKE_HISTORY);
    // next update the wiki page to create a version number 2
    // with a different user name
    final String text2 = "diddo\r\n";
    engine.saveTextAsJanne(NAME1, text2);
    // finally update the wiki page to create a version number 3
    final String text3 = "whateverNext\r\n";
    engine.saveText(NAME1, text3);
    // confirm the right number of versions have been recorded
    Collection versionHistory = engine.getVersionHistory(NAME1);
    Assert.assertEquals("number of versions", 3, versionHistory.size());
    // fetch the latest version of the page
    String result = engine.getText(NAME1);
    Assert.assertEquals("latest should be newest version", text3, result);
    String result2 = engine.getText(NAME1, 3);
    Assert.assertEquals("fetch new by version did not work", text3, result2);
    // confirm the original page was archived
    String result3 = engine.getText(NAME1, 1);
    Assert.assertEquals("fetch original by version Assert.failed", fakeWikiPage, result3);
    // confirm the first update was archived
    String result4 = engine.getText(NAME1, 2);
    Assert.assertEquals("fetch original by version Assert.failed", text2, result4);
    WikiPage pageNew = engine.getPage(NAME1);
    Assert.assertEquals("newest version", 3, pageNew.getVersion());
    Assert.assertEquals("newest author", "Guest", pageNew.getAuthor());
    WikiPage pageMiddle = engine.getPage(NAME1, 2);
    Assert.assertEquals("middle version", 2, pageMiddle.getVersion());
    Assert.assertEquals("middle author", Users.JANNE, pageMiddle.getAuthor());
    WikiPage pageOld = engine.getPage(NAME1, 1);
    Assert.assertEquals("old version", 1, pageOld.getVersion());
    Assert.assertEquals("old author", OLD_AUTHOR, pageOld.getAuthor());
}
Also used : WikiPage(org.apache.wiki.WikiPage) Collection(java.util.Collection) Test(org.junit.Test)

Aggregations

WikiPage (org.apache.wiki.WikiPage)186 Test (org.junit.Test)77 WikiContext (org.apache.wiki.WikiContext)63 WikiEngine (org.apache.wiki.WikiEngine)29 Attachment (org.apache.wiki.attachment.Attachment)26 ProviderException (org.apache.wiki.api.exceptions.ProviderException)22 Date (java.util.Date)17 File (java.io.File)16 Collection (java.util.Collection)16 TestEngine (org.apache.wiki.TestEngine)15 Iterator (java.util.Iterator)13 StringReader (java.io.StringReader)9 Hashtable (java.util.Hashtable)9 IOException (java.io.IOException)8 ArrayList (java.util.ArrayList)8 Calendar (java.util.Calendar)8 Vector (java.util.Vector)8 StringWriter (java.io.StringWriter)7 InternalWikiException (org.apache.wiki.InternalWikiException)7 PagePermission (org.apache.wiki.auth.permissions.PagePermission)7