diff options
author | Christoph Läubrich | 2020-10-30 10:00:58 +0000 |
---|---|---|
committer | Kalyan Prasad Tatavarthi | 2020-11-06 08:02:23 +0000 |
commit | 2f50cc83ef83a0f9bf0b7b5b40b57cbe578f3bde (patch) | |
tree | abf98ff66535a5993fc472d91e10f9bac666b50a | |
parent | 77934fe98c4193278376716ac88a91584d75f71f (diff) | |
download | eclipse.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.java | 2 | ||||
-rw-r--r-- | tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/action/ToolBarManagerTest.java | 50 |
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 { |