Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.core.filebuffers.tests/src/org/eclipse/core/filebuffers/tests/FileBufferFunctions.java')
-rw-r--r--org.eclipse.core.filebuffers.tests/src/org/eclipse/core/filebuffers/tests/FileBufferFunctions.java130
1 files changed, 130 insertions, 0 deletions
diff --git a/org.eclipse.core.filebuffers.tests/src/org/eclipse/core/filebuffers/tests/FileBufferFunctions.java b/org.eclipse.core.filebuffers.tests/src/org/eclipse/core/filebuffers/tests/FileBufferFunctions.java
index 82e517b73cf..e4d5da68809 100644
--- a/org.eclipse.core.filebuffers.tests/src/org/eclipse/core/filebuffers/tests/FileBufferFunctions.java
+++ b/org.eclipse.core.filebuffers.tests/src/org/eclipse/core/filebuffers/tests/FileBufferFunctions.java
@@ -19,6 +19,7 @@ import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.filebuffers.FileBuffers;
+import org.eclipse.core.filebuffers.IFileBuffer;
import org.eclipse.core.filebuffers.ITextFileBuffer;
import org.eclipse.core.filebuffers.ITextFileBufferManager;
@@ -288,4 +289,133 @@ public abstract class FileBufferFunctions extends TestCase {
}
}
+ /*
+ * Test IFileBufferListener#bufferCreated and IFileBufferListener#bufferDisposed
+ */
+ public void test10() throws Exception {
+ class Listener extends FileBufferListener {
+
+ public IFileBuffer buffer;
+ public int count;
+
+ public void bufferCreated(IFileBuffer buffer) {
+ ++count;
+ this.buffer= buffer;
+ }
+
+ public void bufferDisposed(IFileBuffer buffer) {
+ --count;
+ this.buffer= buffer;
+ }
+ }
+
+ Listener listener= new Listener();
+ fManager.addFileBufferListener(listener);
+
+ fManager.connect(fPath, null);
+ try {
+
+ assertTrue(listener.count == 1);
+ assertNotNull(listener.buffer);
+ IFileBuffer fileBuffer= fManager.getFileBuffer(fPath);
+ assertTrue(listener.buffer == fileBuffer);
+
+ fManager.disconnect(fPath, null);
+ assertTrue(listener.count == 0);
+ assertTrue(listener.buffer == fileBuffer);
+
+ } finally {
+ fManager.disconnect(fPath, null);
+ }
+ }
+
+ /*
+ * Test IFileBufferListener#dirtyStateChanged
+ */
+ public void test11_1() throws Exception {
+ class Listener extends FileBufferListener {
+
+ public IFileBuffer buffer;
+ public int count;
+ public boolean isDirty;
+
+ public void dirtyStateChanged(IFileBuffer buffer, boolean isDirty) {
+ ++count;
+ this.buffer= buffer;
+ this.isDirty= isDirty;
+ }
+ }
+
+ Listener listener= new Listener();
+ fManager.addFileBufferListener(listener);
+
+ ITextFileBuffer fileBuffer= fManager.getTextFileBuffer(fPath);
+ assertTrue(listener.count == 0 && listener.buffer == null);
+
+ fManager.connect(fPath, null);
+ try {
+
+ fileBuffer= fManager.getTextFileBuffer(fPath);
+ IDocument document= fileBuffer.getDocument();
+ document.replace(0, 0, "prefix");
+
+ assertTrue(listener.count == 1);
+ assertTrue(listener.buffer == fileBuffer);
+ assertTrue(listener.isDirty);
+
+ fileBuffer.commit(null, true);
+
+ assertTrue(listener.count == 2);
+ assertTrue(listener.buffer == fileBuffer);
+ assertFalse(listener.isDirty);
+
+ } finally {
+ fManager.disconnect(fPath, null);
+ }
+ }
+
+ /*
+ * Test IFileBufferListener#dirtyStateChanged
+ */
+ public void test11_2() throws Exception {
+ class Listener extends FileBufferListener {
+
+ public IFileBuffer buffer;
+ public int count;
+ public boolean isDirty;
+
+ public void dirtyStateChanged(IFileBuffer buffer, boolean isDirty) {
+ ++count;
+ this.buffer= buffer;
+ this.isDirty= isDirty;
+ }
+ }
+
+ Listener listener= new Listener();
+ fManager.addFileBufferListener(listener);
+
+ ITextFileBuffer fileBuffer= fManager.getTextFileBuffer(fPath);
+ assertTrue(listener.count == 0 && listener.buffer == null);
+
+ fManager.connect(fPath, null);
+ try {
+
+ fileBuffer= fManager.getTextFileBuffer(fPath);
+ IDocument document= fileBuffer.getDocument();
+ document.replace(0, 0, "prefix");
+
+ assertTrue(listener.count == 1);
+ assertTrue(listener.buffer == fileBuffer);
+ assertTrue(listener.isDirty);
+
+ fileBuffer.revert(null);
+
+ assertTrue(listener.count == 2);
+ assertTrue(listener.buffer == fileBuffer);
+ assertFalse(listener.isDirty);
+
+ } finally {
+ fManager.disconnect(fPath, null);
+ }
+ }
}

Back to the top