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());
}
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());
}
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());
}
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());
}
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());
}
Aggregations