/* * Copyright (c) 2007-2008 Matthew Hall 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: * Matthew Hall - initial API and implementation */ package org.eclipse.nebula.paperclips.core.internal; import junit.framework.TestCase; import org.eclipse.nebula.paperclips.core.internal.util.SWTUtil; import org.eclipse.swt.graphics.ImageData; import org.eclipse.swt.graphics.PaletteData; import org.eclipse.swt.graphics.RGB; public class SWTUtilTest extends TestCase { public void testDeriveRGB() { assertEquals(new RGB(255, 0, 0), SWTUtil.deriveRGB(0xFF0000)); assertEquals(new RGB(0, 255, 0), SWTUtil.deriveRGB(0x00FF00)); assertEquals(new RGB(0, 0, 255), SWTUtil.deriveRGB(0x0000FF)); } public void testEqualImageData_opaque() { ImageData imageData = createImageData(100, 0, (byte) 0xFF); assertTrue(SWTUtil.equal(imageData, createImageData(100, 0, (byte) 0xFF))); assertFalse(SWTUtil.equal(imageData, createImageData(101, 0, (byte) 0xFF))); assertFalse(SWTUtil.equal(imageData, createImageData(100, 1, (byte) 0xFF))); } public void testEqualImageData_transparent() { assertTrue(SWTUtil.equal(createImageData(100, 0xFFFFFF, (byte) 0x7F), createImageData(100, 0xFFFFFF, (byte) 0x7F))); assertFalse(SWTUtil.equal(createImageData(99, 0xFFFFFF, (byte) 0x7F), createImageData(99, 0xFFFFFF, (byte) 0xFF))); assertTrue(SWTUtil.equal(createImageData(100, 0x000000, (byte) 0x00), createImageData(100, 0xFFFFFF, (byte) 0x00))); } private ImageData createImageData(int size, int color, byte alpha) { ImageData imageData = new ImageData(size, size, 24, new PaletteData( 0xFF0000, 0x00FF00, 0x0000FF)); int[] pixels = new int[size]; byte[] alphas = new byte[size]; for (int x = 0; x < size; x++) { pixels[x] = color; alphas[x] = alpha; } for (int y = 0; y < size; y++) { imageData.setPixels(0, y, size, pixels, 0); imageData.setAlphas(0, y, size, alphas, 0); } return imageData; } }