diff options
author | Kevin Sawicki | 2011-04-23 17:25:28 +0000 |
---|---|---|
committer | Chris Aniszczyk | 2011-04-28 17:07:30 +0000 |
commit | 27e3836c26d61419880be117e3a6131a034c3d44 (patch) | |
tree | 71c966a87685ad6e9fa8b091ec5f71b9ea4511da /org.eclipse.egit.ui.test/src/org | |
parent | bfc867ee6ee0ae1c9b9c6fa24db09eec141919eb (diff) | |
download | egit-27e3836c26d61419880be117e3a6131a034c3d44.tar.gz egit-27e3836c26d61419880be117e3a6131a034c3d44.tar.xz egit-27e3836c26d61419880be117e3a6131a034c3d44.zip |
Add diff formatter that generates a list of style ranges
This class will be used for a general purpose diff
viewer available as a tab in the commit viewer.
Bug: 343000
Change-Id: Ic2eb3e178f5a049154bd5744da3010fa791a9933
Signed-off-by: Kevin Sawicki <kevin@github.com>
Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
Diffstat (limited to 'org.eclipse.egit.ui.test/src/org')
-rw-r--r-- | org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/test/commit/DiffStyleRangeFormatterTest.java | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/test/commit/DiffStyleRangeFormatterTest.java b/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/test/commit/DiffStyleRangeFormatterTest.java new file mode 100644 index 0000000000..64cc3ba8d2 --- /dev/null +++ b/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/test/commit/DiffStyleRangeFormatterTest.java @@ -0,0 +1,79 @@ +/******************************************************************************* + * Copyright (c) 2011 GitHub Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Kevin Sawicki (GitHub Inc.) - initial API and implementation + *******************************************************************************/ +package org.eclipse.egit.ui.test.commit; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import java.io.File; + +import org.eclipse.egit.core.Activator; +import org.eclipse.egit.ui.common.LocalRepositoryTestCase; +import org.eclipse.egit.ui.internal.commit.DiffStyleRangeFormatter; +import org.eclipse.egit.ui.internal.commit.DiffStyleRangeFormatter.DiffStyleRange; +import org.eclipse.jface.text.Document; +import org.eclipse.jface.text.IDocument; +import org.eclipse.jgit.lib.Constants; +import org.eclipse.jgit.lib.Repository; +import org.eclipse.jgit.revwalk.RevCommit; +import org.eclipse.jgit.revwalk.RevWalk; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * Unit tests for {@link DiffStyleRangeFormatter} + */ +public class DiffStyleRangeFormatterTest extends LocalRepositoryTestCase { + + private static Repository repository; + + private static RevCommit commit; + + @BeforeClass + public static void setup() throws Exception { + File repoFile = createProjectAndCommitToRepository(); + assertNotNull(repoFile); + repository = Activator.getDefault().getRepositoryCache() + .lookupRepository(repoFile); + assertNotNull(repository); + + RevWalk walk = new RevWalk(repository); + try { + commit = walk.parseCommit(repository.resolve(Constants.HEAD)); + assertNotNull(commit); + walk.parseBody(commit.getParent(0)); + } finally { + walk.release(); + } + } + + @Test + public void testRanges() throws Exception { + IDocument document = new Document(); + DiffStyleRangeFormatter formatter = new DiffStyleRangeFormatter( + document); + formatter.setRepository(repository); + formatter.format(commit.getTree(), commit.getParent(0).getTree()); + assertTrue(document.getLength() > 0); + DiffStyleRange[] ranges = formatter.getRanges(); + assertNotNull(ranges); + assertTrue(ranges.length > 0); + for (DiffStyleRange range : ranges) { + assertNotNull(range); + assertNotNull(range.diffType); + assertTrue(range.start >= 0); + assertTrue(range.length >= 0); + assertTrue(range.start < document.getLength()); + } + + } + +} |