Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Läubrich2020-10-30 10:00:58 +0000
committerKalyan Prasad Tatavarthi2020-11-06 08:02:23 +0000
commit2f50cc83ef83a0f9bf0b7b5b40b57cbe578f3bde (patch)
treeabf98ff66535a5993fc472d91e10f9bac666b50a
parent77934fe98c4193278376716ac88a91584d75f71f (diff)
downloadeclipse.platform.ui-2f50cc83ef83a0f9bf0b7b5b40b57cbe578f3bde.tar.gz
eclipse.platform.ui-2f50cc83ef83a0f9bf0b7b5b40b57cbe578f3bde.tar.xz
eclipse.platform.ui-2f50cc83ef83a0f9bf0b7b5b40b57cbe578f3bde.zip
Bug 567905 - fix unit test on windows/mac
This fixes failing tests because comparing ImageData does not work by simply compare the data byte array Change-Id: I6343264b8ad791e0884683af11c045dfa5a059b1 Signed-off-by: Christoph Läubrich <laeubi@laeubi-soft.de>
-rw-r--r--bundles/org.eclipse.jface/src/org/eclipse/jface/action/ActionContributionItem.java2
-rw-r--r--tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/action/ToolBarManagerTest.java50
2 files changed, 28 insertions, 24 deletions
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ActionContributionItem.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ActionContributionItem.java
index b143136cfef..8ef02dee467 100644
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ActionContributionItem.java
+++ b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ActionContributionItem.java
@@ -1004,7 +1004,7 @@ public class ActionContributionItem extends ContributionItem {
// If there is no disabled image, but there is a regular image generate a
// disabled one
if (disabledImage == null && image != null) {
- disabledImage = ImageDescriptor.createWithFlags(image, SWT.IMAGE_GRAY);
+ disabledImage = ImageDescriptor.createWithFlags(image, SWT.IMAGE_DISABLE);
}
if (image != null && !USE_COLOR_ICONS) {
image = ImageDescriptor.createWithFlags(image, SWT.IMAGE_GRAY);
diff --git a/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/action/ToolBarManagerTest.java b/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/action/ToolBarManagerTest.java
index 298f8466c67..3ae1d18cd4e 100644
--- a/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/action/ToolBarManagerTest.java
+++ b/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/action/ToolBarManagerTest.java
@@ -143,24 +143,9 @@ public class ToolBarManagerTest extends JFaceActionTest {
assertEquals(1, items.length);
ToolItem item = items[0];
- assertTrue(
- Arrays.equals(hoverDescriptor.getImageData(100).data, item.getHotImage().getImageData(100).data));
- assertTrue(Arrays.equals(disabledDescriptor.getImageData(100).data,
- item.getDisabledImage().getImageData(100).data));
- ImageData imageData = item.getImage().getImageData(100);
- for (int x = 0; x < imageData.width; x++) {
- for (int y = 0; y < imageData.height; y++) {
- if (imageData.getAlpha(x, y) == 255) {
- int rgb = imageData.getPixel(x, y);
- int r = rgb & 0xFF;
- int g = (rgb >> 8) & 0xFF;
- int b = (rgb >> 16) & 0xFF;
- assertEquals(r, g);
- assertEquals(g, b);
- }
- }
-
- }
+ assertImageEqualsDescriptor(hoverDescriptor, item.getHotImage());
+ assertImageEqualsDescriptor(disabledDescriptor, item.getDisabledImage());
+ assertImageEqualsDescriptor(ImageDescriptor.createWithFlags(descriptor, SWT.IMAGE_GRAY), item.getImage());
} finally {
ActionContributionItem.setUseColorIconsInToolbars(oldState);
}
@@ -187,16 +172,35 @@ public class ToolBarManagerTest extends JFaceActionTest {
assertEquals(1, items.length);
ToolItem item = items[0];
- assertTrue(Arrays.equals(descriptor.getImageData(100).data, item.getImage().getImageData(100).data));
- assertTrue(
- Arrays.equals(hoverDescriptor.getImageData(100).data, item.getHotImage().getImageData(100).data));
- assertTrue(Arrays.equals(disabledDescriptor.getImageData(100).data,
- item.getDisabledImage().getImageData(100).data));
+ assertImageEqualsDescriptor(descriptor, item.getImage());
+ assertImageEqualsDescriptor(hoverDescriptor, item.getHotImage());
+ assertImageEqualsDescriptor(disabledDescriptor, item.getDisabledImage());
} finally {
ActionContributionItem.setUseColorIconsInToolbars(oldState);
}
}
+ private static void assertImageEqualsDescriptor(ImageDescriptor descriptor, Image image) {
+ Image createImage = descriptor.createImage();
+ try {
+ assertImageDataEquals(createImage.getImageData(), image.getImageData());
+ } finally {
+ createImage.dispose();
+ }
+ }
+
+ private static void assertImageDataEquals(ImageData im1, ImageData im2) {
+ assertNotNull("ImageData 1 is null", im1);
+ assertNotNull("ImageData 2 is null", im2);
+ assertEquals("ImageData width missmatch", im1.width, im2.width);
+ assertEquals("ImageData height missmatch", im1.height, im2.height);
+ for (int x = 0; x < im1.width; x++) {
+ for (int y = 0; y < im1.height; y++) {
+ assertEquals("pixel (" + x + "," + y + ") are not equal", im1.getPixel(x, y), im2.getPixel(x, y));
+ }
+ }
+ }
+
public void testMissingIsSet() {
boolean oldState = ActionContributionItem.getUseColorIconsInToolbars();
try {

Back to the top