Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarin Wright2009-09-24 20:33:44 +0000
committerDarin Wright2009-09-24 20:33:44 +0000
commit5de5ad6ee0005bd4ade572b1b6389c85088a3e32 (patch)
treebbbea7b45fdbca7e954284e767b70503c3d55b90 /org.eclipse.debug.tests/src
parent49be16da134c1238147da013cd1e02a822071b17 (diff)
downloadeclipse.platform.debug-5de5ad6ee0005bd4ade572b1b6389c85088a3e32.tar.gz
eclipse.platform.debug-5de5ad6ee0005bd4ade572b1b6389c85088a3e32.tar.xz
eclipse.platform.debug-5de5ad6ee0005bd4ade572b1b6389c85088a3e32.zip
Bug 289225 - Add new debug test plug-in to automated build
Diffstat (limited to 'org.eclipse.debug.tests/src')
-rw-r--r--org.eclipse.debug.tests/src/org/eclipe/debug/tests/launching/AcceleratorSubstitutionTests.java59
-rw-r--r--org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/DynamicRenderingBindings.java69
-rw-r--r--org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/MemoryBlock.java91
-rw-r--r--org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/MemoryBlockDynamic.java21
-rw-r--r--org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/MemoryBlockOne.java21
-rw-r--r--org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/MemoryBlockThree.java21
-rw-r--r--org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/MemoryBlockTwo.java21
-rw-r--r--org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/MemoryRenderingTests.java151
-rw-r--r--org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/RenderingTypeDelegate.java30
-rw-r--r--org.eclipse.debug.tests/src/org/eclipe/debug/tests/viewer/model/ChildrenUpdateTests.java221
-rw-r--r--org.eclipse.debug.tests/src/org/eclipe/debug/tests/viewer/model/FilterTransformTests.java136
-rw-r--r--org.eclipse.debug.tests/src/org/eclipe/debug/tests/viewer/model/PresentationContextTests.java53
-rw-r--r--org.eclipse.debug.tests/src/org/eclipse/debug/tests/AutomatedSuite.java16
13 files changed, 910 insertions, 0 deletions
diff --git a/org.eclipse.debug.tests/src/org/eclipe/debug/tests/launching/AcceleratorSubstitutionTests.java b/org.eclipse.debug.tests/src/org/eclipe/debug/tests/launching/AcceleratorSubstitutionTests.java
new file mode 100644
index 000000000..ddf76214e
--- /dev/null
+++ b/org.eclipse.debug.tests/src/org/eclipe/debug/tests/launching/AcceleratorSubstitutionTests.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2009 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipe.debug.tests.launching;
+
+import junit.framework.TestCase;
+
+import org.eclipse.debug.internal.ui.DebugUIPlugin;
+
+/**
+ * Tests accelerator adjustments for DBCS languages.
+ * See bug 186921.
+ *
+ * @since 3.3
+ */
+public class AcceleratorSubstitutionTests extends TestCase {
+
+ /**
+ * Constructor
+ * @param name the name of the test
+ */
+ public AcceleratorSubstitutionTests(String name) {
+ super(name);
+ }
+
+ /**
+ * tests a string with "..."
+ */
+ public void testWithEllipses() {
+ assertEquals("incorrect DBCS accelerator substitution",
+ "Open Run Dialog(&R)...",
+ DebugUIPlugin.adjustDBCSAccelerator("Open Run(&R) Dialog..."));
+ }
+
+ /**
+ * tests a string without "..."
+ */
+ public void testWithoutEllipses() {
+ assertEquals("incorrect DBCS accelerator substitution",
+ "Open Run Dialog(&R)",
+ DebugUIPlugin.adjustDBCSAccelerator("Open Run(&R) Dialog"));
+ }
+
+ /**
+ * tests a string that should not change (no DBCS style accelerator).
+ */
+ public void testWithoutDBCSAcclerator() {
+ assertEquals("incorrect DBCS accelerator substitution",
+ "Open &Run Dialog...",
+ DebugUIPlugin.adjustDBCSAccelerator("Open &Run Dialog..."));
+ }
+}
diff --git a/org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/DynamicRenderingBindings.java b/org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/DynamicRenderingBindings.java
new file mode 100644
index 000000000..0bf6f5c5e
--- /dev/null
+++ b/org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/DynamicRenderingBindings.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipe.debug.tests.view.memory;
+
+import org.eclipse.debug.core.model.IMemoryBlock;
+import org.eclipse.debug.ui.DebugUITools;
+import org.eclipse.debug.ui.memory.AbstractMemoryRenderingBindingsProvider;
+import org.eclipse.debug.ui.memory.IMemoryRenderingType;
+
+/**
+ * Contributed dynamic rendernig bindings.
+ * @since 3.1
+ */
+public class DynamicRenderingBindings extends AbstractMemoryRenderingBindingsProvider {
+
+ //
+ private static DynamicRenderingBindings fgSingleton = null;
+
+ // id of rendering type bound by this provider
+ private String fId = "rendering_type_1";
+
+ /**
+ * Constructor
+ */
+ public DynamicRenderingBindings() {
+ fgSingleton = this;
+ }
+
+ /**
+ * @see org.eclipse.debug.ui.memory.IMemoryRenderingBindingsProvider#getRenderingTypes(org.eclipse.debug.core.model.IMemoryBlock)
+ */
+ public IMemoryRenderingType[] getRenderingTypes(IMemoryBlock block) {
+ return new IMemoryRenderingType[]{getPrimaryRenderingType(block)};
+ }
+
+ /**
+ * @see org.eclipse.debug.ui.memory.IMemoryRenderingBindingsProvider#getDefaultRenderingTypes(org.eclipse.debug.core.model.IMemoryBlock)
+ */
+ public IMemoryRenderingType[] getDefaultRenderingTypes(IMemoryBlock block) {
+ return new IMemoryRenderingType[]{getPrimaryRenderingType(block)};
+ }
+
+ /**
+ * @see org.eclipse.debug.ui.memory.IMemoryRenderingBindingsProvider#getPrimaryRenderingType(org.eclipse.debug.core.model.IMemoryBlock)
+ */
+ public IMemoryRenderingType getPrimaryRenderingType(IMemoryBlock block) {
+ return DebugUITools.getMemoryRenderingManager().getRenderingType(fId);
+ }
+
+ /**
+ * Sets the current rendering bound to this provider, and notifies
+ * listeners of the change.
+ *
+ * @param id rendering id
+ */
+ public static void setBinding(String id) {
+ fgSingleton.fId = id;
+ fgSingleton.fireBindingsChanged();
+ }
+
+}
diff --git a/org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/MemoryBlock.java b/org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/MemoryBlock.java
new file mode 100644
index 000000000..d9705418f
--- /dev/null
+++ b/org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/MemoryBlock.java
@@ -0,0 +1,91 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipe.debug.tests.view.memory;
+
+import org.eclipse.debug.core.DebugException;
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.debug.core.model.IDebugTarget;
+import org.eclipse.debug.core.model.IMemoryBlock;
+
+/**
+ * Dummy memory block implementation.
+ *
+ * @since 3.1
+ */
+public class MemoryBlock implements IMemoryBlock {
+
+ /**
+ * @see org.eclipse.debug.core.model.IMemoryBlock#getStartAddress()
+ */
+ public long getStartAddress() {
+ return 0;
+ }
+
+ /**
+ * @see org.eclipse.debug.core.model.IMemoryBlock#getLength()
+ */
+ public long getLength() {
+ return 100;
+ }
+
+ /**
+ * @see org.eclipse.debug.core.model.IMemoryBlock#getBytes()
+ */
+ public byte[] getBytes() throws DebugException {
+ byte[] bytes = new byte[(int)getLength()];
+ for (int i = 0; i < bytes.length; i++) {
+ bytes[i] = (byte)i;
+ }
+ return bytes;
+ }
+
+ /**
+ * @see org.eclipse.debug.core.model.IMemoryBlock#supportsValueModification()
+ */
+ public boolean supportsValueModification() {
+ return false;
+ }
+
+ /**
+ * @see org.eclipse.debug.core.model.IMemoryBlock#setValue(long, byte[])
+ */
+ public void setValue(long offset, byte[] bytes) throws DebugException {
+
+ }
+
+ /**
+ * @see org.eclipse.debug.core.model.IDebugElement#getModelIdentifier()
+ */
+ public String getModelIdentifier() {
+ return "no.debugger";
+ }
+
+ /**
+ * @see org.eclipse.debug.core.model.IDebugElement#getDebugTarget()
+ */
+ public IDebugTarget getDebugTarget() {
+ return null;
+ }
+
+ /**
+ * @see org.eclipse.debug.core.model.IDebugElement#getLaunch()
+ */
+ public ILaunch getLaunch() {
+ return null;
+ }
+
+ /**
+ * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+ */
+ public Object getAdapter(Class adapter) {
+ return null;
+ }
+}
diff --git a/org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/MemoryBlockDynamic.java b/org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/MemoryBlockDynamic.java
new file mode 100644
index 000000000..53ffe59ca
--- /dev/null
+++ b/org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/MemoryBlockDynamic.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipe.debug.tests.view.memory;
+
+
+/**
+ * Dummy memory block
+ *
+ * @since 3.1
+ */
+public class MemoryBlockDynamic extends MemoryBlock {
+
+}
diff --git a/org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/MemoryBlockOne.java b/org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/MemoryBlockOne.java
new file mode 100644
index 000000000..06a07fafa
--- /dev/null
+++ b/org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/MemoryBlockOne.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipe.debug.tests.view.memory;
+
+
+/**
+ * Dummy memory block
+ *
+ * @since 3.1
+ */
+public class MemoryBlockOne extends MemoryBlock {
+
+}
diff --git a/org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/MemoryBlockThree.java b/org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/MemoryBlockThree.java
new file mode 100644
index 000000000..81ac323c1
--- /dev/null
+++ b/org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/MemoryBlockThree.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipe.debug.tests.view.memory;
+
+
+/**
+ * Dummy memory block
+ *
+ * @since 3.1
+ */
+public class MemoryBlockThree extends MemoryBlock {
+
+}
diff --git a/org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/MemoryBlockTwo.java b/org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/MemoryBlockTwo.java
new file mode 100644
index 000000000..63c22c7d0
--- /dev/null
+++ b/org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/MemoryBlockTwo.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipe.debug.tests.view.memory;
+
+
+/**
+ * Dummy memory block
+ *
+ * @since 3.1
+ */
+public class MemoryBlockTwo extends MemoryBlock {
+
+}
diff --git a/org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/MemoryRenderingTests.java b/org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/MemoryRenderingTests.java
new file mode 100644
index 000000000..448c7ef68
--- /dev/null
+++ b/org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/MemoryRenderingTests.java
@@ -0,0 +1,151 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipe.debug.tests.view.memory;
+
+import junit.framework.TestCase;
+
+import org.eclipse.debug.core.model.IMemoryBlock;
+import org.eclipse.debug.ui.DebugUITools;
+import org.eclipse.debug.ui.memory.IMemoryRenderingBindingsListener;
+import org.eclipse.debug.ui.memory.IMemoryRenderingManager;
+import org.eclipse.debug.ui.memory.IMemoryRenderingType;
+
+/**
+ * Tests memory rendering manager
+ */
+public class MemoryRenderingTests extends TestCase {
+
+ public MemoryRenderingTests(String name) {
+ super(name);
+ }
+
+ public void testRenderingTypes() {
+ IMemoryRenderingManager manager = DebugUITools.getMemoryRenderingManager();
+ IMemoryRenderingType[] types = manager.getRenderingTypes();
+ assertTrue("Wrong number of rendering types contributed", types.length > 6);
+ assertTrue("Missing type 1", indexOf(manager.getRenderingType("rendering_type_1"), types) >= 0);
+ assertTrue("Missing type 2", indexOf(manager.getRenderingType("rendering_type_2"), types) >= 0);
+ assertTrue("Missing type 3", indexOf(manager.getRenderingType("rendering_type_3"), types) >= 0);
+ assertTrue("Missing type", indexOf(manager.getRenderingType("org.eclipse.debug.ui.rendering.raw_memory"), types) >= 0);
+ assertTrue("Missing type", indexOf(manager.getRenderingType("org.eclipse.debug.ui.rendering.ascii"), types) >= 0);
+ assertTrue("Missing type", indexOf(manager.getRenderingType("org.eclipse.debug.ui.rendering.signedint"), types) >= 0);
+ assertTrue("Missing type", indexOf(manager.getRenderingType("org.eclipse.debug.ui.rendering.unsignedint"), types) >= 0);
+ }
+
+ public void testRenderingTypeNames() {
+ IMemoryRenderingManager manager = DebugUITools.getMemoryRenderingManager();
+ IMemoryRenderingType type = manager.getRenderingType("rendering_type_1");
+ assertEquals("Wrong name", "Rendering One", type.getLabel());
+ type = manager.getRenderingType("rendering_type_2");
+ assertEquals("Wrong name", "Rendering Two", type.getLabel());
+ }
+
+ public void testSingleBinding() {
+ IMemoryRenderingManager manager = DebugUITools.getMemoryRenderingManager();
+ IMemoryBlock block = new MemoryBlockOne();
+ IMemoryRenderingType[] types = manager.getRenderingTypes(block);
+ assertEquals("Wrong number of bindings", 1, types.length);
+ assertEquals("Wrong binding", "rendering_type_1", types[0].getId());
+ }
+
+ public void testDoubleBinding() {
+ IMemoryRenderingManager manager = DebugUITools.getMemoryRenderingManager();
+ IMemoryBlock block = new MemoryBlockTwo();
+ IMemoryRenderingType[] types = manager.getRenderingTypes(block);
+ assertEquals("Wrong number of bindings", 2, types.length);
+ assertTrue("Missing binding", indexOf(manager.getRenderingType("rendering_type_1"), types) >= 0);
+ assertTrue("Missing binding", indexOf(manager.getRenderingType("rendering_type_2"), types) >= 0);
+ }
+
+ public void testDefaultBinding() {
+ IMemoryRenderingManager manager = DebugUITools.getMemoryRenderingManager();
+ IMemoryBlock block = new MemoryBlockOne();
+ IMemoryRenderingType[] types = manager.getDefaultRenderingTypes(block);
+ assertEquals("Wrong number of bindings", 1, types.length);
+ assertEquals("Wrong binding", "rendering_type_1", types[0].getId());
+ }
+
+ public void testNoDefaultBinding() {
+ IMemoryRenderingManager manager = DebugUITools.getMemoryRenderingManager();
+ IMemoryBlock block = new MemoryBlockTwo();
+ IMemoryRenderingType[] types = manager.getDefaultRenderingTypes(block);
+ assertEquals("Wrong number of bindings", 0, types.length);
+ }
+
+ public void testPrimaryBinding() {
+ IMemoryRenderingManager manager = DebugUITools.getMemoryRenderingManager();
+ IMemoryBlock block = new MemoryBlockOne();
+ IMemoryRenderingType type = manager.getPrimaryRenderingType(block);
+ assertEquals("Wrong binding", "rendering_type_1", type.getId());
+ }
+
+ public void testNoPrimaryBinding() {
+ IMemoryRenderingManager manager = DebugUITools.getMemoryRenderingManager();
+ IMemoryBlock block = new MemoryBlockTwo();
+ IMemoryRenderingType type = manager.getPrimaryRenderingType(block);
+ assertNull("Wrong binding", type);
+ }
+
+ public void testDefaultWithoutPrimaryBinding() {
+ IMemoryRenderingManager manager = DebugUITools.getMemoryRenderingManager();
+ IMemoryBlock block = new MemoryBlockThree();
+ IMemoryRenderingType[] types = manager.getDefaultRenderingTypes(block);
+ assertEquals("Wrong number of bindings", 1, types.length);
+ assertEquals("Wrong binding", "rendering_type_3", types[0].getId());
+ }
+
+ public void testDynamicBinding() {
+ IMemoryRenderingManager manager = DebugUITools.getMemoryRenderingManager();
+ IMemoryBlock block = new MemoryBlockDynamic();
+ IMemoryRenderingType[] types = manager.getRenderingTypes(block);
+ assertEquals("Wrong number of bindings", 1, types.length);
+ assertEquals("Wrong binding", "rendering_type_1", types[0].getId());
+ types = manager.getDefaultRenderingTypes(block);
+ assertEquals("Wrong number of bindings", 1, types.length);
+ assertEquals("Wrong binding", "rendering_type_1", types[0].getId());
+ IMemoryRenderingType type = manager.getPrimaryRenderingType(block);
+ assertEquals("Wrong bindings", manager.getRenderingType("rendering_type_1"), type);
+ }
+
+ public void testBindingChangeNotification() {
+ final boolean[] changed = new boolean[1];
+ IMemoryRenderingBindingsListener listener = new IMemoryRenderingBindingsListener() {
+ public void memoryRenderingBindingsChanged() {
+ changed[0] = true;
+ }
+ };
+ IMemoryRenderingManager manager = DebugUITools.getMemoryRenderingManager();
+ try {
+ manager.addListener(listener);
+ assertFalse("Renderings should not have changed yet", changed[0]);
+ DynamicRenderingBindings.setBinding("rendering_type_2");
+ assertTrue("Renderings should have changed", changed[0]);
+ IMemoryBlock block = new MemoryBlockDynamic();
+ IMemoryRenderingType[] types = manager.getRenderingTypes(block);
+ assertEquals("Wrong number of bindings", 1, types.length);
+ assertEquals("Wrong binding", "rendering_type_2", types[0].getId());
+ } finally {
+ // restore original bindings
+ DynamicRenderingBindings.setBinding("rendering_type_1");
+ manager.removeListener(listener);
+ }
+ }
+
+ protected int indexOf(Object thing, Object[] list) {
+ for (int i = 0; i < list.length; i++) {
+ Object object2 = list[i];
+ if (object2.equals(thing)) {
+ return i;
+ }
+ }
+ return -1;
+ }
+}
diff --git a/org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/RenderingTypeDelegate.java b/org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/RenderingTypeDelegate.java
new file mode 100644
index 000000000..b4f9a70be
--- /dev/null
+++ b/org.eclipse.debug.tests/src/org/eclipe/debug/tests/view/memory/RenderingTypeDelegate.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipe.debug.tests.view.memory;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.ui.memory.IMemoryRendering;
+import org.eclipse.debug.ui.memory.IMemoryRenderingTypeDelegate;
+
+/**
+ * Test memory rendering type delegate.
+ *
+ * @since 3.1
+ */
+public class RenderingTypeDelegate implements IMemoryRenderingTypeDelegate {
+
+ /**
+ * @see org.eclipse.debug.ui.memory.IMemoryRenderingTypeDelegate#createRendering(java.lang.String)
+ */
+ public IMemoryRendering createRendering(String id) throws CoreException {
+ return null;
+ }
+}
diff --git a/org.eclipse.debug.tests/src/org/eclipe/debug/tests/viewer/model/ChildrenUpdateTests.java b/org.eclipse.debug.tests/src/org/eclipe/debug/tests/viewer/model/ChildrenUpdateTests.java
new file mode 100644
index 000000000..c0244be14
--- /dev/null
+++ b/org.eclipse.debug.tests/src/org/eclipe/debug/tests/viewer/model/ChildrenUpdateTests.java
@@ -0,0 +1,221 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2009 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipe.debug.tests.viewer.model;
+
+import junit.framework.TestCase;
+
+import org.eclipse.debug.internal.ui.DebugUIPlugin;
+import org.eclipse.debug.internal.ui.viewers.model.ChildrenUpdate;
+import org.eclipse.debug.internal.ui.viewers.model.ILabelUpdateListener;
+import org.eclipse.debug.internal.ui.viewers.model.ITreeModelContentProviderTarget;
+import org.eclipse.debug.internal.ui.viewers.model.TreeModelContentProvider;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelChangedListener;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdateListener;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.ModelDelta;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.TreePath;
+import org.eclipse.jface.viewers.ViewerFilter;
+import org.eclipse.jface.viewers.ViewerLabel;
+import org.eclipse.swt.widgets.Display;
+
+/**
+ * Tests coalescing of children update requests.
+ *
+ * @since 3.3
+ */
+public class ChildrenUpdateTests extends TestCase {
+
+ class BogusModelContentProvider extends TreeModelContentProvider {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.internal.ui.viewers.model.ModelContentProvider#getViewer()
+ */
+ protected ITreeModelContentProviderTarget getViewer() {
+ return new ITreeModelContentProviderTarget(){
+
+ public void setSelection(ISelection selection) {
+ }
+
+ public void removeSelectionChangedListener(ISelectionChangedListener listener) {
+ }
+
+ public void addSelectionChangedListener(ISelectionChangedListener listener) {
+ }
+
+ public void updateViewer(IModelDelta delta) {
+ }
+
+ public void setSelection(ISelection selection, boolean reveal, boolean force) {
+ }
+
+ public void setInput(Object object) {
+ }
+
+ public void setAutoExpandLevel(int level) {
+ }
+
+ public void saveElementState(TreePath path, ModelDelta delta) {
+ }
+
+ public void removeViewerUpdateListener(IViewerUpdateListener listener) {
+ }
+
+ public void removeModelChangedListener(IModelChangedListener listener) {
+ }
+
+ public void removeLabelUpdateListener(ILabelUpdateListener listener) {
+ }
+
+ public ISelection getSelection() {
+ return null;
+ }
+
+ public IPresentationContext getPresentationContext() {
+ return null;
+ }
+
+ public Object getInput() {
+ return null;
+ }
+
+ public ViewerLabel getElementLabel(TreePath path, String columnId) {
+ return null;
+ }
+
+ public Display getDisplay() {
+ return DebugUIPlugin.getStandardDisplay();
+ }
+
+ public int getAutoExpandLevel() {
+ return 0;
+ }
+
+ public void addViewerUpdateListener(IViewerUpdateListener listener) {
+ }
+
+ public void addModelChangedListener(IModelChangedListener listener) {
+ }
+
+ public void addLabelUpdateListener(ILabelUpdateListener listener) {
+ }
+
+ public void update(Object element) {
+ }
+
+ public void setHasChildren(Object elementOrTreePath, boolean hasChildren) {
+ }
+
+ public void setExpandedState(Object elementOrTreePath, boolean expanded) {
+ }
+
+ public void setChildCount(Object elementOrTreePath, int count) {
+ }
+
+ public void reveal(TreePath path, int index) {
+ }
+
+ public void replace(Object parentOrTreePath, int index, Object element) {
+ }
+
+ public void remove(Object parentOrTreePath, int index) {
+ }
+
+ public void remove(Object elementOrTreePath) {
+ }
+
+ public void refresh() {
+ }
+
+ public void refresh(Object element) {
+ }
+
+ public boolean overrideSelection(ISelection current, ISelection candidate) {
+ return false;
+ }
+
+ public void insert(Object parentOrTreePath, Object element, int position) {
+ }
+
+ public TreePath getTopElementPath() {
+ return null;
+ }
+
+ public ViewerFilter[] getFilters() {
+ return null;
+ }
+
+ public boolean getExpandedState(Object elementOrTreePath) {
+ return false;
+ }
+
+ public Object getChildElement(TreePath path, int index) {
+ return null;
+ }
+
+ public int getChildCount(TreePath path) {
+ return 0;
+ }
+
+ public int findElementIndex(TreePath parentPath, Object element) {
+ return 0;
+ }
+
+ public void expandToLevel(Object elementOrTreePath, int level) {
+ }
+
+ public void autoExpand(TreePath elementPath) {
+ }
+ };
+ }
+ }
+
+ /**
+ * @param name
+ */
+ public ChildrenUpdateTests(String name) {
+ super(name);
+ }
+
+ protected TreeModelContentProvider getContentProvider() {
+ return new BogusModelContentProvider();
+ }
+
+ /**
+ * Tests coalescing of requests
+ */
+ public void testCoalesce () {
+ Object element = new Object();
+ TreeModelContentProvider cp = getContentProvider();
+ ChildrenUpdate update1 = new ChildrenUpdate(cp, element, TreePath.EMPTY, element, 1, null, null);
+ ChildrenUpdate update2 = new ChildrenUpdate(cp, element, TreePath.EMPTY, element, 2, null, null);
+ assertTrue("Should coalesce", update1.coalesce(update2));
+ assertEquals("Wrong offset", 1, update1.getOffset());
+ assertEquals("Wrong length", 2, update1.getLength());
+
+ update2 = new ChildrenUpdate(cp, element, TreePath.EMPTY, element, 3, null, null);
+ assertTrue("Should coalesce", update1.coalesce(update2));
+ assertEquals("Wrong offset", 1, update1.getOffset());
+ assertEquals("Wrong length", 3, update1.getLength());
+
+ update2 = new ChildrenUpdate(cp, element, TreePath.EMPTY, element, 2, null, null);
+ assertTrue("Should coalesce", update1.coalesce(update2));
+ assertEquals("Wrong offset", 1, update1.getOffset());
+ assertEquals("Wrong length", 3, update1.getLength());
+
+ update2 = new ChildrenUpdate(cp, element, TreePath.EMPTY, element, 5, null, null);
+ assertFalse("Should not coalesce", update1.coalesce(update2));
+ assertEquals("Wrong offset", 1, update1.getOffset());
+ assertEquals("Wrong length", 3, update1.getLength());
+ }
+}
diff --git a/org.eclipse.debug.tests/src/org/eclipe/debug/tests/viewer/model/FilterTransformTests.java b/org.eclipse.debug.tests/src/org/eclipe/debug/tests/viewer/model/FilterTransformTests.java
new file mode 100644
index 000000000..67b65d111
--- /dev/null
+++ b/org.eclipse.debug.tests/src/org/eclipe/debug/tests/viewer/model/FilterTransformTests.java
@@ -0,0 +1,136 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2009 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipe.debug.tests.viewer.model;
+
+import junit.framework.TestCase;
+
+import org.eclipse.debug.internal.ui.viewers.model.FilterTransform;
+import org.eclipse.jface.viewers.TreePath;
+
+/**
+ * Tests the virtual viewer's filter transform
+ * @since 3.3
+ */
+public class FilterTransformTests extends TestCase {
+
+ public Object root;
+ public Object element0;
+ public Object element1;
+ public Object element2;
+ public Object element3;
+ public Object element4;
+ public Object element5;
+ public Object element6;
+ public Object element7;
+
+ public FilterTransform transform;
+
+ /**
+ * @param name
+ */
+ public FilterTransformTests(String name) {
+ super(name);
+ }
+
+ /**
+ * Builds a filter transform. Model has 8 elements,
+ * and elements 0, 2, 3, 6, 7 are filtered. Elements
+ * 1, 4, 5 are visible.
+ */
+ protected void setUp() throws Exception {
+ super.setUp();
+ transform = new FilterTransform();
+ root = new Object();
+ element0 = new Object();
+ element1 = new Object();
+ element2 = new Object();
+ element3 = new Object();
+ element4 = new Object();
+ element5 = new Object();
+ element6 = new Object();
+ element7 = new Object();
+ assertTrue(transform.addFilteredIndex(TreePath.EMPTY, 0, element0));
+ assertTrue(transform.addFilteredIndex(TreePath.EMPTY, 2, element2));
+ assertTrue(transform.addFilteredIndex(TreePath.EMPTY, 3, element3));
+ assertTrue(transform.addFilteredIndex(TreePath.EMPTY, 6, element6));
+ assertTrue(transform.addFilteredIndex(TreePath.EMPTY, 7, element7));
+ }
+
+ protected boolean equals(int[] a, int[] b) {
+ if (a.length == b.length) {
+ for (int i = 0; i < b.length; i++) {
+ if (a[i] != b[i]) {
+ return false;
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+
+ public void testRemoveMiddleElementFromFilters() {
+ assertTrue("Element should be filtered", transform.isFiltered(TreePath.EMPTY, 3));
+ transform.removeElementFromFilters(TreePath.EMPTY, element3);
+ assertFalse("Element should be unfiltered", transform.isFiltered(TreePath.EMPTY, 3));
+ assertTrue("Wrong filter state", equals(transform.getFilteredChildren(TreePath.EMPTY), new int[]{0, 2, 5, 6}));
+ }
+
+ public void testRemoveFirstElementFromFilters() {
+ assertTrue("Element should be filtered", transform.isFiltered(TreePath.EMPTY, 0));
+ transform.removeElementFromFilters(TreePath.EMPTY, element0);
+ assertFalse("Element should be unfiltered", transform.isFiltered(TreePath.EMPTY, 0));
+ assertTrue("Wrong filter state", equals(transform.getFilteredChildren(TreePath.EMPTY), new int[]{1, 2, 5, 6}));
+ }
+
+ public void testRemoveLastFromFilters() {
+ assertTrue("Element should be filtered", transform.isFiltered(TreePath.EMPTY, 7));
+ transform.removeElementFromFilters(TreePath.EMPTY, element7);
+ assertFalse("Element should be unfiltered", transform.isFiltered(TreePath.EMPTY, 7));
+ assertTrue("Wrong filter state", equals(transform.getFilteredChildren(TreePath.EMPTY), new int[]{0, 2, 3, 6}));
+ }
+
+ public void testClearMiddleElementFromFilters() {
+ assertTrue("Element should be filtered", transform.isFiltered(TreePath.EMPTY, 3));
+ transform.clear(TreePath.EMPTY, 3);
+ assertFalse("Element should be unfiltered", transform.isFiltered(TreePath.EMPTY, 3));
+ assertTrue("Wrong filter state", equals(transform.getFilteredChildren(TreePath.EMPTY), new int[]{0, 2, 6, 7}));
+ }
+
+ public void testClearFirstElementFromFilters() {
+ assertTrue("Element should be filtered", transform.isFiltered(TreePath.EMPTY, 0));
+ transform.clear(TreePath.EMPTY, 0);
+ assertFalse("Element should be unfiltered", transform.isFiltered(TreePath.EMPTY, 0));
+ assertTrue("Wrong filter state", equals(transform.getFilteredChildren(TreePath.EMPTY), new int[]{2, 3, 6, 7}));
+ }
+
+ public void testClearLastFromFilters() {
+ assertTrue("Element should be filtered", transform.isFiltered(TreePath.EMPTY, 7));
+ transform.clear(TreePath.EMPTY, 7);
+ assertFalse("Element should be unfiltered", transform.isFiltered(TreePath.EMPTY, 7));
+ assertTrue("Wrong filter state", equals(transform.getFilteredChildren(TreePath.EMPTY), new int[]{0, 2, 3, 6}));
+ }
+
+ public void testViewToModelCount() {
+ assertEquals("Wrong model count", 8, transform.viewToModelCount(TreePath.EMPTY, 3));
+ }
+
+ public void testViewToModelIndex() {
+ assertEquals("Wrong model index", 1, transform.viewToModelIndex(TreePath.EMPTY, 0));
+ assertEquals("Wrong model index", 4, transform.viewToModelIndex(TreePath.EMPTY, 1));
+ assertEquals("Wrong model index", 5, transform.viewToModelIndex(TreePath.EMPTY, 2));
+ }
+
+ public void testAddAlreadyFiltered() {
+ assertTrue("Element should be filtered", transform.isFiltered(TreePath.EMPTY, 0));
+ boolean added = transform.addFilteredIndex(TreePath.EMPTY, 0, element0);
+ assertFalse("Filter should not be added - should already have been there", added);
+ }
+}
diff --git a/org.eclipse.debug.tests/src/org/eclipe/debug/tests/viewer/model/PresentationContextTests.java b/org.eclipse.debug.tests/src/org/eclipe/debug/tests/viewer/model/PresentationContextTests.java
new file mode 100644
index 000000000..8e5028935
--- /dev/null
+++ b/org.eclipse.debug.tests/src/org/eclipe/debug/tests/viewer/model/PresentationContextTests.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 Wind River Systems and others.
+ * 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:
+ * Wind River Systems - initial API and implementation
+ * IBM - moved to debug platform tests from JDT
+ *******************************************************************************/
+package org.eclipe.debug.tests.viewer.model;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.debug.internal.ui.viewers.model.provisional.PresentationContext;
+import org.eclipse.ui.IPersistableElement;
+import org.eclipse.ui.XMLMemento;
+
+/**
+ * Test the serialization of presentation context properties.
+ *
+ * @since 3.4
+ */
+public class PresentationContextTests extends TestCase {
+
+ public PresentationContextTests(String name) {
+ super(name);
+ }
+
+ /**
+ * Tests saving and restoring presentation context properties.
+ */
+ public void testSaveRestore () {
+ PresentationContext context = new PresentationContext("test");
+ context.setProperty("string", "string");
+ context.setProperty("integer", new Integer(1));
+ context.setProperty("boolean", new Boolean(true));
+ context.setProperty("persistable", ResourcesPlugin.getWorkspace().getRoot().getAdapter(IPersistableElement.class));
+
+ final XMLMemento memento = XMLMemento.createWriteRoot("TEST");
+ context.saveProperites(memento);
+
+ context = new PresentationContext("test");
+ context.initProperties(memento);
+ assertEquals("Wrong value restored", "string", context.getProperty("string"));
+ assertEquals("Wrong value restored", new Integer(1), context.getProperty("integer"));
+ assertEquals("Wrong value restored", new Boolean(true), context.getProperty("boolean"));
+ assertEquals("Wrong value restored", ResourcesPlugin.getWorkspace().getRoot(), context.getProperty("persistable"));
+ }
+
+}
diff --git a/org.eclipse.debug.tests/src/org/eclipse/debug/tests/AutomatedSuite.java b/org.eclipse.debug.tests/src/org/eclipse/debug/tests/AutomatedSuite.java
index fe757360c..0843a77d8 100644
--- a/org.eclipse.debug.tests/src/org/eclipse/debug/tests/AutomatedSuite.java
+++ b/org.eclipse.debug.tests/src/org/eclipse/debug/tests/AutomatedSuite.java
@@ -13,12 +13,17 @@ package org.eclipse.debug.tests;
import junit.framework.Test;
import junit.framework.TestSuite;
+import org.eclipe.debug.tests.launching.AcceleratorSubstitutionTests;
+import org.eclipe.debug.tests.view.memory.MemoryRenderingTests;
+import org.eclipe.debug.tests.viewer.model.ChildrenUpdateTests;
+import org.eclipe.debug.tests.viewer.model.FilterTransformTests;
import org.eclipe.debug.tests.viewer.model.JFaceViewerCheckTests;
import org.eclipe.debug.tests.viewer.model.JFaceViewerContentTests;
import org.eclipe.debug.tests.viewer.model.JFaceViewerDeltaTests;
import org.eclipe.debug.tests.viewer.model.JFaceViewerSelectionTests;
import org.eclipe.debug.tests.viewer.model.JFaceViewerStateTests;
import org.eclipe.debug.tests.viewer.model.JFaceViewerUpdateTests;
+import org.eclipe.debug.tests.viewer.model.PresentationContextTests;
import org.eclipe.debug.tests.viewer.model.VirtualViewerDeltaTests;
import org.eclipe.debug.tests.viewer.model.VirtualViewerLazyModeTests;
import org.eclipe.debug.tests.viewer.model.VirtualViewerSelectionTests;
@@ -59,5 +64,16 @@ public class AutomatedSuite extends TestSuite {
addTest(new TestSuite(VirtualViewerSelectionTests.class));
addTest(new TestSuite(VirtualViewerStateTests.class));
addTest(new TestSuite(VirtualViewerUpdateTests.class));
+
+ // Viewer neutral tests
+ addTest(new TestSuite(FilterTransformTests.class));
+ addTest(new TestSuite(ChildrenUpdateTests.class));
+ addTest(new TestSuite(PresentationContextTests.class));
+
+ // Memory view
+ addTest(new TestSuite(MemoryRenderingTests.class));
+
+ // Launch framework
+ addTest(new TestSuite(AcceleratorSubstitutionTests.class));
}
}

Back to the top