diff options
author | Sam Davis | 2015-03-11 18:44:07 +0000 |
---|---|---|
committer | Gerrit Code Review @ Eclipse.org | 2015-03-16 17:52:29 +0000 |
commit | 5386bb0f2e272965f9ee1ebe8f117d301f325c26 (patch) | |
tree | 6d851002eefe5cc70b149e3f8a9b8c37c8c0667a /org.eclipse.mylyn.tasks.tests | |
parent | a26e2ec4abd72c0b14c96fd634264677dcd1497f (diff) | |
download | org.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.java | 36 |
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 { |