/*******************************************************************************
* Copyright (c) 2007, 2014 Innoopract Informationssysteme GmbH 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:
* Innoopract Informationssysteme GmbH - initial API and implementation
* EclipseSource - ongoing development
******************************************************************************/
package org.eclipse.rap.rwt.internal.theme;
import static org.eclipse.rap.rwt.internal.theme.CssColor.BLACK;
import static org.eclipse.rap.rwt.internal.theme.CssColor.WHITE;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
public class CssBorder_Test {
@Test( expected = NullPointerException.class )
public void testValueOf_null() {
CssBorder.valueOf( null );
}
@Test( expected = IllegalArgumentException.class )
public void testValueOf_empty1() {
CssBorder.valueOf( "" );
}
@Test( expected = IllegalArgumentException.class )
public void testValueOf_empty2() {
CssBorder.valueOf( " " );
}
@Test( expected = IllegalArgumentException.class )
public void testValueOf_negative() {
CssBorder.valueOf( "-1" );
}
@Test( expected = IllegalArgumentException.class )
public void testValueOf_tooManyArguments() {
CssBorder.valueOf( "1 solid red 2" );
}
@Test
public void testValueOf_widthOnly() {
CssBorder border = CssBorder.valueOf( "1px" );
assertEquals( CssBorder.NONE, border );
}
@Test
public void testValueOf_withoutStyle() {
CssBorder border = CssBorder.valueOf( "1px black" );
assertEquals( CssBorder.NONE, border );
}
@Test
public void testValueOf_colorOnly() {
CssBorder border = CssBorder.valueOf( "black" );
assertEquals( CssBorder.NONE, border );
}
@Test
public void testValueOf_none() {
CssBorder border = CssBorder.valueOf( "none" );
assertEquals( CssBorder.NONE, border );
}
@Test
public void testValueOf_hidden() {
CssBorder border = CssBorder.valueOf( "hidden" );
assertEquals( CssBorder.NONE, border );
}
@Test
public void testValueOf_zeroWidth() {
CssBorder border = CssBorder.valueOf( "0 solid black" );
assertEquals( CssBorder.NONE, border );
}
@Test
public void testValueOf_setsDefaults() {
CssBorder border = CssBorder.valueOf( "solid" );
assertEquals( 1, border.width );
assertEquals( "solid", border.style );
assertNull( border.color );
border = CssBorder.valueOf( "2 dashed" );
assertEquals( 2, border.width );
assertEquals( "dashed", border.style );
assertNull( border.color );
}
@Test
public void testNoneBorder() {
assertSame( CssBorder.NONE, CssBorder.valueOf( "none" ) );
assertEquals( 0, CssBorder.NONE.width );
assertEquals( "none", CssBorder.NONE.style );
assertNull( CssBorder.NONE.color );
}
@Test
public void testDefaultString() {
CssBorder red = CssBorder.valueOf( "red" );
assertEquals( "none", red.toDefaultString() );
CssBorder border1 = CssBorder.valueOf( "3 solid red" );
assertEquals( "3px solid #ff0000", border1.toDefaultString() );
CssBorder border2 = CssBorder.valueOf( "1 dashed #ff0000" );
assertEquals( "1px dashed #ff0000", border2.toDefaultString() );
}
@Test
public void testEquals() {
CssBorder border1 = CssBorder.create( 1, "solid", BLACK );
CssBorder border2 = CssBorder.create( 1, "solid", BLACK );
CssBorder border3 = CssBorder.create( 2, "dashed", WHITE );
assertNotNull( border1 );
assertTrue( border1.equals( border2 ) );
assertFalse( border1.equals( border3 ) );
}
}