@Test public void deleteAttachment() throws IOException, GitAPIException { register(globalRepoManager.createProjectCentralRepository(PROJECT, USER)); ILockedRepository repo = globalRepoManager.createProjectBranchRepository(PROJECT, BRANCH_1, null); register(repo); saveRandomPage(BRANCH_1, PAGE); Page attachment = Page.fromData(new byte[] {1, 2, 3}, "application/octet-stream"); // $NON-NLS-1$ pageStore.saveAttachment(PROJECT, BRANCH_1, PAGE, "test.dat", attachment, USER); // $NON-NLS-1$ assertFalse(pageStore.listPageAttachments(PROJECT, BRANCH_1, PAGE).isEmpty()); File pageFile = new File( new File(new File(RepositoryUtil.getWorkingDir(repo.r()), "attachments"), PAGE), "test.dat.page"); //$NON-NLS-1$ //$NON-NLS-2$ File metaFile = new File( new File(new File(RepositoryUtil.getWorkingDir(repo.r()), "attachments"), PAGE), "test.dat.meta"); //$NON-NLS-1$ //$NON-NLS-2$ assertTrue(pageFile.exists()); assertTrue(metaFile.exists()); pageStore.deleteAttachment(PROJECT, BRANCH_1, PAGE, "test.dat", USER); // $NON-NLS-1$ assertTrue(pageStore.listPageAttachments(PROJECT, BRANCH_1, PAGE).isEmpty()); assertFalse(pageFile.exists()); assertFalse(metaFile.exists()); assertClean(repo.r()); }
@Test public void saveAndGetAttachment() throws IOException, GitAPIException { register(globalRepoManager.createProjectCentralRepository(PROJECT, USER)); ILockedRepository repo = globalRepoManager.createProjectBranchRepository(PROJECT, BRANCH_1, null); register(repo); saveRandomPage(BRANCH_1, "foo/bar/baz"); // $NON-NLS-1$ Page attachment = Page.fromData(new byte[] {1, 2, 3}, "application/octet-stream"); // $NON-NLS-1$ pageStore.saveAttachment( PROJECT, BRANCH_1, "foo/bar/baz", "test.dat", attachment, USER); //$NON-NLS-1$ //$NON-NLS-2$ Page result = pageStore.getAttachment( PROJECT, BRANCH_1, "foo/bar/baz", "test.dat"); // $NON-NLS-1$ //$NON-NLS-2$ assertTrue(ArrayUtils.isEquals(attachment.getData(), result.getData())); assertEquals(attachment.getContentType(), result.getContentType()); assertClean(repo.r()); }
@Test public void savePageWithSameBaseCommitAndConflictingChanges() throws IOException, GitAPIException { register(globalRepoManager.createProjectCentralRepository(PROJECT, USER)); ILockedRepository repo = globalRepoManager.createProjectBranchRepository(PROJECT, BRANCH_1, null); register(repo); Page page = Page.fromText("title", "a\nb\nc\nd\ne\nf\ng\nh\ni\nj\n"); // $NON-NLS-1$ //$NON-NLS-2$ pageStore.savePage(PROJECT, BRANCH_1, PAGE, page, null, USER); String baseCommit = pageStore.getPageMetadata(PROJECT, BRANCH_1, PAGE).getCommit(); page = Page.fromText("title", "a\nbbb\nc\nd\ne\nf\ng\nh\ni\nj\n"); // $NON-NLS-1$ //$NON-NLS-2$ pageStore.savePage(PROJECT, BRANCH_1, PAGE, page, baseCommit, USER); page = Page.fromText("title", "a\nxxx\nc\nd\ne\nf\ng\nh\ni\nj\n"); // $NON-NLS-1$ //$NON-NLS-2$ MergeConflict conflict = pageStore.savePage(PROJECT, BRANCH_1, PAGE, page, baseCommit, USER); Page result = pageStore.getPage(PROJECT, BRANCH_1, PAGE, true); assertNotNull(conflict); assertEquals( "a\nbbb\nc\nd\ne\nf\ng\nh\ni\nj\n", ((PageTextData) result.getData()).getText()); // $NON-NLS-1$ assertEquals( "a\n<<<<<<< OURS\nbbb\n=======\nxxx\n>>>>>>> THEIRS\nc\nd\ne\nf\ng\nh\ni\nj\n", conflict.getText()); // $NON-NLS-1$ assertClean(repo.r()); }
@Test public void saveAndGetPage() throws IOException, GitAPIException { register(globalRepoManager.createProjectCentralRepository(PROJECT, USER)); ILockedRepository repo = globalRepoManager.createProjectBranchRepository(PROJECT, BRANCH_1, null); register(repo); Page page = saveRandomPage(BRANCH_1, "home/foo"); // $NON-NLS-1$ Page result = pageStore.getPage(PROJECT, BRANCH_1, "home/foo", true); // $NON-NLS-1$ assertEquals(page.getTitle(), result.getTitle()); assertEquals( ((PageTextData) page.getData()).getText(), ((PageTextData) result.getData()).getText()); assertEquals(page.getContentType(), result.getContentType()); assertEquals("home", result.getParentPagePath()); // $NON-NLS-1$ assertNull(result.getViewRestrictionRole()); verify(eventBus).post(new PageChangedEvent(PROJECT, BRANCH_1, "home/foo")); // $NON-NLS-1$ assertClean(repo.r()); }
@Test public void relocatePage() throws IOException, GitAPIException { register(globalRepoManager.createProjectCentralRepository(PROJECT, USER)); ILockedRepository repo = globalRepoManager.createProjectBranchRepository(PROJECT, BRANCH_1, null); register(repo); saveRandomPage(BRANCH_1, "home"); // $NON-NLS-1$ saveRandomPage(BRANCH_1, "home/foo"); // $NON-NLS-1$ Page page = saveRandomPage(BRANCH_1, "home/foo/bar"); // $NON-NLS-1$ saveRandomPage(BRANCH_1, "home/foo/bar/quuux"); // $NON-NLS-1$ saveRandomPage(BRANCH_1, "home/foo/quux"); // $NON-NLS-1$ saveRandomPage(BRANCH_1, "home/baz"); // $NON-NLS-1$ saveRandomPage(BRANCH_1, "home/baz/bar"); // $NON-NLS-1$ saveRandomPage(BRANCH_1, "home/baz/qux"); // $NON-NLS-1$ Page attachment = saveRandomAttachment(BRANCH_1, "home/foo/bar", "test.txt"); // $NON-NLS-1$ //$NON-NLS-2$ saveRandomAttachment(BRANCH_1, "home/baz/bar", "test.txt"); // $NON-NLS-1$ //$NON-NLS-2$ pageStore.relocatePage( PROJECT, BRANCH_1, "home/foo/bar", "home/baz", USER); // $NON-NLS-1$ //$NON-NLS-2$ assertEquals( Sets.newHashSet("home/foo/quux"), // $NON-NLS-1$ Sets.newHashSet( pageStore.listChildPagePaths(PROJECT, BRANCH_1, "home/foo"))); // $NON-NLS-1$ assertEquals( Sets.newHashSet("home/baz/bar", "home/baz/qux"), // $NON-NLS-1$ //$NON-NLS-2$ Sets.newHashSet( pageStore.listChildPagePaths(PROJECT, BRANCH_1, "home/baz"))); // $NON-NLS-1$ assertEquals( Sets.newHashSet("home/baz/bar/quuux"), // $NON-NLS-1$ Sets.newHashSet( pageStore.listChildPagePaths(PROJECT, BRANCH_1, "home/baz/bar"))); // $NON-NLS-1$ assertEquals( page.getData(), pageStore.getPage(PROJECT, BRANCH_1, "home/baz/bar", true).getData()); // $NON-NLS-1$ assertEquals( attachment.getData(), pageStore .getAttachment(PROJECT, BRANCH_1, "home/baz/bar", "test.txt") .getData()); //$NON-NLS-1$ //$NON-NLS-2$ assertClean(repo.r()); }
@Test public void savePageWithViewRestrictionRole() throws IOException, GitAPIException { register(globalRepoManager.createProjectCentralRepository(PROJECT, USER)); ILockedRepository repo = globalRepoManager.createProjectBranchRepository(PROJECT, BRANCH_1, null); register(repo); Page page = Page.fromText("title", "text"); // $NON-NLS-1$ //$NON-NLS-2$ page.setViewRestrictionRole("viewRole"); // $NON-NLS-1$ pageStore.savePage(PROJECT, BRANCH_1, "home/foo", page, null, USER); // $NON-NLS-1$ Page result = pageStore.getPage(PROJECT, BRANCH_1, "home/foo", true); // $NON-NLS-1$ assertEquals(page.getTitle(), result.getTitle()); assertEquals( ((PageTextData) page.getData()).getText(), ((PageTextData) result.getData()).getText()); assertEquals(page.getContentType(), result.getContentType()); assertEquals(page.getViewRestrictionRole(), result.getViewRestrictionRole()); assertEquals("home", result.getParentPagePath()); // $NON-NLS-1$ assertClean(repo.r()); }
@Test public void restorePageVersion() throws IOException, GitAPIException { register(globalRepoManager.createProjectCentralRepository(PROJECT, USER)); ILockedRepository repo = globalRepoManager.createProjectBranchRepository(PROJECT, BRANCH_1, null); register(repo); Page page = Page.fromText("old", "old"); // $NON-NLS-1$ //$NON-NLS-2$ pageStore.savePage(PROJECT, BRANCH_1, PAGE, page, null, USER); page = Page.fromText("new", "new"); // $NON-NLS-1$ //$NON-NLS-2$ pageStore.savePage(PROJECT, BRANCH_1, PAGE, page, null, USER); List<PageVersion> versions = pageStore.listPageVersions(PROJECT, BRANCH_1, PAGE); pageStore.restorePageVersion(PROJECT, BRANCH_1, PAGE, versions.get(1).getCommitName(), USER); Page result = pageStore.getPage(PROJECT, BRANCH_1, PAGE, true); assertEquals("old", ((PageTextData) result.getData()).getText()); // $NON-NLS-1$ versions = pageStore.listPageVersions(PROJECT, BRANCH_1, PAGE); assertEquals(3, versions.size()); assertClean(repo.r()); }
@Test public void deletePage() throws IOException, GitAPIException { register(globalRepoManager.createProjectCentralRepository(PROJECT, USER)); ILockedRepository repo = globalRepoManager.createProjectBranchRepository(PROJECT, BRANCH_1, null); register(repo); saveRandomPage(BRANCH_1, "home"); // $NON-NLS-1$ saveRandomPage(BRANCH_1, "home/foo"); // $NON-NLS-1$ saveRandomAttachment(BRANCH_1, "home/foo", "test.txt"); // $NON-NLS-1$ //$NON-NLS-2$ saveRandomPage(BRANCH_1, "home/foo/bar"); // $NON-NLS-1$ File pageFile = new File( new File(new File(RepositoryUtil.getWorkingDir(repo.r()), "pages"), "home"), "foo.page"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ File metaFile = new File( new File(new File(RepositoryUtil.getWorkingDir(repo.r()), "pages"), "home"), "foo.meta"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ File subPagesDir = new File( new File(new File(RepositoryUtil.getWorkingDir(repo.r()), "pages"), "home"), "foo"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ File attachmentsDir = new File( new File(new File(RepositoryUtil.getWorkingDir(repo.r()), "attachments"), "home"), "foo"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ assertTrue(pageFile.isFile()); assertTrue(metaFile.isFile()); assertTrue(subPagesDir.isDirectory()); assertTrue(attachmentsDir.isDirectory()); pageStore.deletePage(PROJECT, BRANCH_1, "home/foo", USER); // $NON-NLS-1$ List<String> result = pageStore.listChildPagePaths(PROJECT, BRANCH_1, "home"); // $NON-NLS-1$ assertTrue(result.isEmpty()); assertFalse(pageFile.exists()); assertFalse(metaFile.exists()); assertFalse(subPagesDir.exists()); assertFalse(attachmentsDir.exists()); assertClean(repo.r()); }