Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Davis2015-03-11 18:44:07 +0000
committerGerrit Code Review @ Eclipse.org2015-03-16 17:52:29 +0000
commit5386bb0f2e272965f9ee1ebe8f117d301f325c26 (patch)
tree6d851002eefe5cc70b149e3f8a9b8c37c8c0667a /org.eclipse.mylyn.tasks.tests
parenta26e2ec4abd72c0b14c96fd634264677dcd1497f (diff)
downloadorg.eclipse.mylyn.tasks-5386bb0f2e272965f9ee1ebe8f117d301f325c26.tar.gz
org.eclipse.mylyn.tasks-5386bb0f2e272965f9ee1ebe8f117d301f325c26.tar.xz
org.eclipse.mylyn.tasks-5386bb0f2e272965f9ee1ebe8f117d301f325c26.zip
378032: BooleanAttributeEditor should initialize attribute to false
Change-Id: I29c92306b8055e6d9867f77ef222f1d301020443 Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=378032
Diffstat (limited to 'org.eclipse.mylyn.tasks.tests')
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/AttributeEditorTest.java36
1 files changed, 36 insertions, 0 deletions
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/AttributeEditorTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/AttributeEditorTest.java
index 17e46b94b..73a398106 100644
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/AttributeEditorTest.java
+++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/AttributeEditorTest.java
@@ -11,6 +11,8 @@
package org.eclipse.mylyn.tasks.tests.ui;
+import java.util.concurrent.atomic.AtomicBoolean;
+
import junit.framework.TestCase;
import org.eclipse.core.runtime.CoreException;
@@ -23,12 +25,15 @@ import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
import org.eclipse.mylyn.tasks.core.data.TaskData;
import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
+import org.eclipse.mylyn.tasks.core.data.TaskDataModelEvent;
+import org.eclipse.mylyn.tasks.core.data.TaskDataModelListener;
import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
import org.eclipse.mylyn.tasks.tests.connector.MockTask;
import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.forms.widgets.FormToolkit;
@@ -212,12 +217,43 @@ public class AttributeEditorTest extends TestCase {
}
public void testBooleanAttribute() throws Exception {
+ FormToolkit toolkit = new FormToolkit(Display.getDefault());
TaskAttribute attribute = new TaskAttribute(taskData.getRoot(), "a.required.boolean");
attribute.getMetaData().setType(TaskAttribute.TYPE_BOOLEAN);
attribute.getMetaData().setRequired(true);
+ final AtomicBoolean firedAttributeChanged = new AtomicBoolean();
+ manager.addModelListener(new TaskDataModelListener() {
+ @Override
+ public void attributeChanged(TaskDataModelEvent event) {
+ firedAttributeChanged.set(true);
+ }
+ });
MockBooleanAttributeEditor editor = new MockBooleanAttributeEditor(manager, attribute);
assertFalse(editor.needsValue());
+ assertFalse(editor.getValue());
+ assertFalse(attribute.hasValue());
+ editor.createControl(WorkbenchUtil.getShell(), toolkit);
+ assertFalse(attribute.hasValue());
+ processAllEvents();
+ assertTrue(attribute.hasValue());
+ assertEquals(Boolean.toString(false), attribute.getValue());
+ assertFalse(firedAttributeChanged.get());
+
+ attribute.setValue(Boolean.toString(true));
+ editor = new MockBooleanAttributeEditor(manager, attribute);
+ editor.createControl(WorkbenchUtil.getShell(), toolkit);
+ processAllEvents();
+ assertEquals(Boolean.toString(true), attribute.getValue());
+ assertFalse(firedAttributeChanged.get());
+ }
+
+ /**
+ * wait for the async call in BooleanAttributeEditor to run
+ */
+ private void processAllEvents() {
+ while (Display.getDefault().readAndDispatch()) {
+ }
}
private TaskDataModel createManager() throws Exception {

Back to the top