/*******************************************************************************
* Copyright (c) 2008, 2009 Innoopract Informationssysteme GmbH.
* 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:
* Innoopract Informationssysteme GmbH - initial API and implementation
* EclipseSource - ongoing development
******************************************************************************/
package org.eclipse.rwt.internal.theme;
import junit.framework.TestCase;
import org.eclipse.rwt.Fixture;
public class QxImage_Test extends TestCase {
private static final ResourceLoader RESOURCE_LOADER
= ThemeTestUtil.createResourceLoader( Fixture.class );
public void testIllegalArguments() {
try {
QxImage.valueOf( null, null );
fail( "Must throw NPE" );
} catch( NullPointerException e ) {
// expected
}
try {
QxImage.valueOf( "", null );
fail( "Must throw NPE" );
} catch( NullPointerException e ) {
// expected
}
try {
QxImage.valueOf( "", RESOURCE_LOADER );
fail( "Must throw IAE" );
} catch( IllegalArgumentException e ) {
// expected
}
try {
QxImage.createGradient( null, new float[] {} );
fail( "Must throw NPE" );
} catch( NullPointerException e ) {
// expected
}
try {
QxImage.createGradient( new String[] {}, null );
fail( "Must throw NPE" );
} catch( NullPointerException e ) {
// expected
}
}
public void testNotExisting() {
try {
QxImage.valueOf( "not-existing.png", RESOURCE_LOADER );
fail();
} catch( IllegalArgumentException e ) {
// expected
}
}
public void testNone() {
assertSame( QxImage.NONE, QxImage.valueOf( "none", null ) );
assertSame( QxImage.NONE, QxImage.valueOf( "none", RESOURCE_LOADER ) );
assertTrue( QxImage.NONE.none );
assertNull( QxImage.NONE.path );
assertNull( QxImage.NONE.loader );
assertNull( QxImage.NONE.gradientColors );
assertNull( QxImage.NONE.gradientPercents );
assertEquals( 0, QxImage.NONE.width );
assertEquals( 0, QxImage.NONE.height );
}
public void testCreateImage() {
QxImage qxImage = QxImage.valueOf( Fixture.IMAGE_50x100,
RESOURCE_LOADER );
assertFalse( qxImage.none );
assertEquals( Fixture.IMAGE_50x100, qxImage.path );
assertSame( RESOURCE_LOADER, qxImage.loader );
assertNull( qxImage.gradientColors );
assertNull( qxImage.gradientPercents );
assertEquals( 50, qxImage.width );
assertEquals( 100, qxImage.height );
}
public void testCreateGradient() {
String[] gradientColors = new String[] { "#FF0000", "#00FF00", "#0000FF" };
float[] gradientPercents = new float[] { 0f, 50f, 100f };
QxImage qxImage = QxImage.createGradient( gradientColors,
gradientPercents );
assertSame( gradientColors, qxImage.gradientColors );
assertSame( gradientPercents, qxImage.gradientPercents );
assertTrue( qxImage.none );
assertNull( qxImage.path );
assertNull( qxImage.loader );
assertEquals( 0, qxImage.width );
assertEquals( 0, qxImage.height );
}
public void testDefaultString() {
assertEquals( "none", QxImage.NONE.toDefaultString() );
assertEquals( "", QxImage.valueOf( Fixture.IMAGE_50x100,
RESOURCE_LOADER ).toDefaultString() );
}
public void testHashCode() {
assertEquals( -1, QxImage.NONE.hashCode() );
QxImage qxImage1 = QxImage.valueOf( Fixture.IMAGE_50x100,
RESOURCE_LOADER );
QxImage qxImage2 = QxImage.valueOf( Fixture.IMAGE_50x100,
RESOURCE_LOADER );
assertEquals( qxImage1, qxImage2 );
assertEquals( qxImage1.hashCode(), qxImage2.hashCode() );
String[] gradientColors = new String[] { "#FF0000", "#00FF00", "#0000FF" };
float[] gradientPercents = new float[] { 0f, 50f, 100f };
QxImage gradient1 = QxImage.createGradient( gradientColors,
gradientPercents );
QxImage gradient2 = QxImage.createGradient( gradientColors,
gradientPercents );
assertEquals( gradient1, gradient2 );
assertEquals( gradient1.hashCode(), gradient2.hashCode() );
}
public void testGetResourceName() {
QxImage image = QxImage.NONE;
assertNull( image.getResourceName() );
image = QxImage.valueOf( Fixture.IMAGE_50x100, RESOURCE_LOADER );
assertEquals( "themes/images/cd56ce7d", image.getResourceName() );
}
}