blob: 9abb1b4d606206a86e71441de6e13887e8ce3c6e [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010, 2012 EclipseSource 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:
* EclipseSource - initial API and implementation
******************************************************************************/
qx.Class.define( "org.eclipse.rwt.test.tests.ProgressBarTest", {
extend : qx.core.Object,
construct : function() {
this.base( arguments );
this._gfxBorder = new org.eclipse.rwt.Border( 2, "rounded", "black", [ 7, 7, 7, 7 ] );
this._gfxBorder2 = new org.eclipse.rwt.Border( 2, "rounded", "black", [ 0, 4, 6, 8 ] );
this._cssBorder = new org.eclipse.rwt.Border( 2, "outset", null );
this._gradient = [ [ 0, "red" ], [ 1, "yellow" ] ];
},
members : {
testCreateProgressBarByProtocol : function() {
var TestUtil = org.eclipse.rwt.test.fixture.TestUtil;
var shell = TestUtil.createShellByProtocol( "w2" );
var processor = rwt.protocol.MessageProcessor;
processor.processOperation( {
"target" : "w3",
"action" : "create",
"type" : "rwt.widgets.ProgressBar",
"properties" : {
"style" : [ "HORIZONTAL" ],
"parent" : "w2"
}
} );
var ObjectManager = rwt.protocol.ObjectRegistry;
var widget = ObjectManager.getObject( "w3" );
assertTrue( widget instanceof rwt.widgets.ProgressBar );
assertIdentical( shell, widget.getParent() );
assertTrue( widget.getUserData( "isControl") );
assertEquals( "progressbar", widget.getAppearance() );
assertTrue( widget._isHorizontal() );
assertFalse( widget._isVertical() );
assertFalse( widget._isIndeterminate() );
assertEquals( 0, widget._minimum );
assertEquals( 100, widget._maximum );
assertEquals( 0, widget._selection );
assertTrue( widget.hasState( "normal" ) );
shell.destroy();
widget.destroy();
},
testCreateProgressBarWithVerticalByProtocol : function() {
var TestUtil = org.eclipse.rwt.test.fixture.TestUtil;
var shell = TestUtil.createShellByProtocol( "w2" );
var processor = rwt.protocol.MessageProcessor;
processor.processOperation( {
"target" : "w3",
"action" : "create",
"type" : "rwt.widgets.ProgressBar",
"properties" : {
"style" : [ "VERTICAL" ],
"parent" : "w2"
}
} );
var ObjectManager = rwt.protocol.ObjectRegistry;
var widget = ObjectManager.getObject( "w3" );
assertFalse( widget._isHorizontal() );
assertTrue( widget._isVertical() );
assertFalse( widget._isIndeterminate() );
shell.destroy();
widget.destroy();
},
testCreateProgressBarWithVerticalAndIndeterminateByProtocol : function() {
var TestUtil = org.eclipse.rwt.test.fixture.TestUtil;
var shell = TestUtil.createShellByProtocol( "w2" );
var processor = rwt.protocol.MessageProcessor;
processor.processOperation( {
"target" : "w3",
"action" : "create",
"type" : "rwt.widgets.ProgressBar",
"properties" : {
"style" : [ "VERTICAL", "INDETERMINATE" ],
"parent" : "w2"
}
} );
var ObjectManager = rwt.protocol.ObjectRegistry;
var widget = ObjectManager.getObject( "w3" );
assertFalse( widget._isHorizontal() );
assertTrue( widget._isVertical() );
assertTrue( widget._isIndeterminate() );
shell.destroy();
widget.destroy();
},
testSetMinimumByProtocol : function() {
var TestUtil = org.eclipse.rwt.test.fixture.TestUtil;
var shell = TestUtil.createShellByProtocol( "w2" );
var processor = rwt.protocol.MessageProcessor;
processor.processOperation( {
"target" : "w3",
"action" : "create",
"type" : "rwt.widgets.ProgressBar",
"properties" : {
"style" : [ "HORIZONTAL" ],
"parent" : "w2",
"minimum" : 50
}
} );
var ObjectManager = rwt.protocol.ObjectRegistry;
var widget = ObjectManager.getObject( "w3" );
assertEquals( 50, widget._minimum );
shell.destroy();
widget.destroy();
},
testSetMaximumByProtocol : function() {
var TestUtil = org.eclipse.rwt.test.fixture.TestUtil;
var shell = TestUtil.createShellByProtocol( "w2" );
var processor = rwt.protocol.MessageProcessor;
processor.processOperation( {
"target" : "w3",
"action" : "create",
"type" : "rwt.widgets.ProgressBar",
"properties" : {
"style" : [ "HORIZONTAL" ],
"parent" : "w2",
"maximum" : 150
}
} );
var ObjectManager = rwt.protocol.ObjectRegistry;
var widget = ObjectManager.getObject( "w3" );
assertEquals( 150, widget._maximum );
shell.destroy();
widget.destroy();
},
testSetMinimumBiggerThanCurrentMaximumByProtocol : function() {
var TestUtil = org.eclipse.rwt.test.fixture.TestUtil;
var shell = TestUtil.createShellByProtocol( "w2" );
var processor = rwt.protocol.MessageProcessor;
processor.processOperation( {
"target" : "w3",
"action" : "create",
"type" : "rwt.widgets.ProgressBar",
"properties" : {
"style" : [ "HORIZONTAL" ],
"parent" : "w2",
"minimum" : 150,
"maximum" : 200
}
} );
var ObjectManager = rwt.protocol.ObjectRegistry;
var widget = ObjectManager.getObject( "w3" );
assertEquals( 150, widget._minimum );
assertEquals( 200, widget._maximum );
shell.destroy();
widget.destroy();
},
testSetSelectionByProtocol : function() {
var TestUtil = org.eclipse.rwt.test.fixture.TestUtil;
var shell = TestUtil.createShellByProtocol( "w2" );
var processor = rwt.protocol.MessageProcessor;
processor.processOperation( {
"target" : "w3",
"action" : "create",
"type" : "rwt.widgets.ProgressBar",
"properties" : {
"style" : [ "HORIZONTAL" ],
"parent" : "w2",
"selection" : 50
}
} );
var ObjectManager = rwt.protocol.ObjectRegistry;
var widget = ObjectManager.getObject( "w3" );
assertEquals( 50, widget._selection );
shell.destroy();
widget.destroy();
},
testSetBackgroundImageByProtocol : function() {
var TestUtil = org.eclipse.rwt.test.fixture.TestUtil;
var shell = TestUtil.createShellByProtocol( "w2" );
var processor = rwt.protocol.MessageProcessor;
processor.processOperation( {
"target" : "w3",
"action" : "create",
"type" : "rwt.widgets.ProgressBar",
"properties" : {
"style" : [ "HORIZONTAL" ],
"parent" : "w2",
"backgroundImage" : [ "image.png", 10, 20 ]
}
} );
var ObjectManager = rwt.protocol.ObjectRegistry;
var widget = ObjectManager.getObject( "w3" );
assertNull( widget.getBackgroundImage() );
var backgroundImage = widget.getBackgroundImageSized();
assertNotNull( backgroundImage );
assertEquals( "image.png", backgroundImage[ 0 ] );
assertEquals( 10, backgroundImage[ 1 ] );
assertEquals( 20, backgroundImage[ 2 ] );
shell.destroy();
widget.destroy();
},
testResetBackgroundImageByProtocol : function() {
var TestUtil = org.eclipse.rwt.test.fixture.TestUtil;
TestUtil.fakeAppearance( "progressbar", {
style : function( states ) {
return {
"backgroundImageSized" : [ "fromTheme.png", 10, 20 ]
};
}
} );
var shell = TestUtil.createShellByProtocol( "w2" );
var processor = rwt.protocol.MessageProcessor;
processor.processOperation( {
"target" : "w3",
"action" : "create",
"type" : "rwt.widgets.ProgressBar",
"properties" : {
"style" : [ "HORIZONTAL" ],
"parent" : "w2",
"backgroundImage" : [ "image.png", 10, 20 ]
}
} );
var ObjectManager = rwt.protocol.ObjectRegistry;
var widget = ObjectManager.getObject( "w3" );
var backgroundImage = widget.getBackgroundImageSized();
assertEquals( "image.png", backgroundImage[ 0 ] );
TestUtil.protocolSet( "w3", { "backgroundImage" : null } );
backgroundImage = widget.getBackgroundImageSized();
assertEquals( "fromTheme.png", backgroundImage[ 0 ] );
shell.destroy();
widget.destroy();
},
testCreateSimpleBar : function() {
var gfxUtil = org.eclipse.rwt.GraphicsUtil;
var bar = new rwt.widgets.ProgressBar();
assertFalse( bar._isVertical() );
assertFalse( bar._isIndeterminate() );
bar.setDimension( 200, 30 );
bar.addToDocument();
bar.setBorder( null );
bar.setSelection( 50 );
rwt.widgets.base.Widget.flushGlobalQueues();
assertNotNull( bar._getTargetNode() );
assertNotNull( bar._canavs );
assertTrue( bar._gfxCanvasAppended );
assertNotNull( bar._backgroundShape );
assertNotNull( bar._indicatorShape );
assertTrue( gfxUtil.getDisplay( bar._indicatorShape ) );
assertNull( bar._borderShape );
assertFalse( bar._useBorderShape );
assertEquals( 0, bar._gfxBorderWidth );
assertEquals( 100, bar._getIndicatorLength() );
assertEquals( [ 0, 0, 0, 0 ], bar._getIndicatorRadii( 0, 100 ) );
var TestUtil = org.eclipse.rwt.test.fixture.TestUtil;
assertFalse( TestUtil.hasCssBorder( bar.getElement() ) ) ;
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testComplexBorder : function() {
var gfxUtil = org.eclipse.rwt.GraphicsUtil;
var bar = new rwt.widgets.ProgressBar();
assertFalse( bar._isVertical() );
bar.setDimension( 200, 30 );
bar.addToDocument();
bar.setBorder( new org.eclipse.rwt.Border( 2, "inset", null ) );
bar.setSelection( 50 );
rwt.widgets.base.Widget.flushGlobalQueues();
assertNotNull( bar._getTargetNode() );
assertNotNull( bar._canavs );
assertTrue( bar._gfxCanvasAppended );
assertNotNull( bar._backgroundShape );
assertTrue( gfxUtil.getDisplay( bar._indicatorShape ) );
assertNotNull( bar._indicatorShape );
assertNull( bar._borderShape );
assertFalse( bar._useBorderShape );
assertEquals( 0, bar._gfxBorderWidth );
assertEquals( 98, bar._getIndicatorLength() );
assertEquals( [ 0, 0, 0, 0 ], bar._getIndicatorRadii( 0, 100 ) );
var edge = bar.getElement().style.borderLeftStyle;
assertFalse( edge === "" || edge === "none" );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testRoundedBorder : function() {
var gfxUtil = org.eclipse.rwt.GraphicsUtil;
var bar = new rwt.widgets.ProgressBar();
bar.setDimension( 200, 30 );
bar.addToDocument();
bar.setBorder( this._gfxBorder );
bar.setSelection( 50 );
rwt.widgets.base.Widget.flushGlobalQueues();
assertNotNull( bar._getTargetNode() );
assertNotNull( bar._canavs );
assertTrue( bar._gfxCanvasAppended );
assertNotNull( bar._backgroundShape );
assertNotNull( bar._indicatorShape );
assertTrue( gfxUtil.getDisplay( bar._indicatorShape ) );
assertNotNull( bar._borderShape );
assertTrue( bar._useBorderShape );
assertEquals( 2, bar._gfxBorderWidth );
assertEquals( 98, bar._getIndicatorLength() );
assertEquals( [ 7, 0, 0, 7 ], bar._getIndicatorRadii( 0, 98 ) );
var edge = bar.getElement().style.borderLeftStyle;
assertTrue( edge === "" || edge === "none" );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testOnCanvasAppearOnEnhancedBorder : function() {
var TestUtil = org.eclipse.rwt.test.fixture.TestUtil;
TestUtil.fakeResponse( true );
var shell = new rwt.widgets.Shell( { "style" : [] } );
shell.setShadow( null );
shell.addToDocument();
shell.setBackgroundColor( null );
shell.setBorder( null );
shell.open();
var log = [];
var bar = new rwt.widgets.ProgressBar();
bar._onCanvasAppear = function(){ log.push( "bar" ); };
bar.setDimension( 200, 30 );
bar.setBorder( this._gfxBorder );
bar.setSelection( 50 );
bar.setParent( shell );
TestUtil.flush();
TestUtil.fakeResponse( false );
assertEquals( 1, log.length );
if( !rwt.client.Client.supportsCss3() ) {
shell.setBackgroundColor( "green" );
shell.setBorder( new org.eclipse.rwt.Border( 1, "rounded", "black", 2 ) );
TestUtil.flush();
assertEquals( 2, log.length );
}
shell.destroy();
TestUtil.flush();
},
testRoundedBorderIndicatorMinLength : function() {
var gfxUtil = org.eclipse.rwt.GraphicsUtil;
var bar = new rwt.widgets.ProgressBar();
bar.setDimension( 200, 30 );
bar.addToDocument();
bar.setBorder( this._gfxBorder );
bar.setSelection( 0.0001 );
rwt.widgets.base.Widget.flushGlobalQueues();
assertTrue( gfxUtil.getDisplay( bar._indicatorShape ) );
assertEquals( 6, bar._getIndicatorLength() );
assertEquals( [ 7, 0, 0, 7 ], bar._getIndicatorRadii( 0, 6 ) );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testRoundedBorderIndicatorZero : function() {
var gfxUtil = org.eclipse.rwt.GraphicsUtil;
var bar = new rwt.widgets.ProgressBar();
bar.setDimension( 200, 30 );
bar.addToDocument();
bar.setBorder( this._gfxBorder );
bar.setSelection( 0 );
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( 0, bar._getIndicatorLength() );
assertFalse( gfxUtil.getDisplay( bar._indicatorShape ) );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testRoundedBorderIndicatorMaxLength : function() {
var gfxUtil = org.eclipse.rwt.GraphicsUtil;
var bar = new rwt.widgets.ProgressBar();
bar.setDimension( 200, 30 );
bar.addToDocument();
bar.setBorder( this._gfxBorder );
bar.setSelection( 99.9999 );
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( 190, bar._getIndicatorLength() );
assertEquals( [ 7, 0, 0, 7 ], bar._getIndicatorRadii( 0, 190 ) );
assertTrue( gfxUtil.getDisplay( bar._indicatorShape ) );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testRoundedBorderIndicatorFull : function() {
var gfxUtil = org.eclipse.rwt.GraphicsUtil;
var bar = new rwt.widgets.ProgressBar();
bar.setDimension( 200, 30 );
bar.addToDocument();
bar.setBorder( this._gfxBorder );
bar.setSelection( 100 );
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( 196, bar._getIndicatorLength() );
assertEquals( [ 7, 7, 7, 7 ], bar._getIndicatorRadii( 0, 196 ) );
assertTrue( gfxUtil.getDisplay( bar._indicatorShape ) );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testDifferentRadii : function() {
var gfxUtil = org.eclipse.rwt.GraphicsUtil;
var bar = new rwt.widgets.ProgressBar();
bar.setDimension( 200, 30 );
bar.addToDocument();
bar.setBorder( this._gfxBorder2 );
bar.setSelection( 50 );
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( 98, bar._getIndicatorLength() );
assertEquals( [ 0, 0, 0, 8 ], bar._getIndicatorRadii( 0, 98 ) );
assertTrue( gfxUtil.getDisplay( bar._indicatorShape ) );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testDifferentRadiiIndicatorMinLength : function() {
var gfxUtil = org.eclipse.rwt.GraphicsUtil;
var bar = new rwt.widgets.ProgressBar();
bar.setDimension( 200, 30 );
bar.addToDocument();
bar.setBorder( this._gfxBorder2 );
bar.setSelection( 0.0001 );
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( 7, bar._getIndicatorLength() );
assertEquals( [ 0, 0, 0, 8 ], bar._getIndicatorRadii( 0, 7 ) );
assertTrue( gfxUtil.getDisplay( bar._indicatorShape ) );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testDifferentRadiiIndicatorZero : function() {
var gfxUtil = org.eclipse.rwt.GraphicsUtil;
var bar = new rwt.widgets.ProgressBar();
bar.setDimension( 200, 30 );
bar.addToDocument();
bar.setBorder( this._gfxBorder2 );
bar.setSelection( 0 );
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( 0, bar._getIndicatorLength() );
assertFalse( gfxUtil.getDisplay( bar._indicatorShape ) );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testDifferentRadiiIndicatorMaxLength : function() {
var gfxUtil = org.eclipse.rwt.GraphicsUtil;
var bar = new rwt.widgets.ProgressBar();
bar.setDimension( 200, 30 );
bar.addToDocument();
bar.setBorder( this._gfxBorder2 );
bar.setSelection( 99.9999 );
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( 191, bar._getIndicatorLength() );
assertEquals( [ 0, 0, 0, 8 ], bar._getIndicatorRadii( 0, 191 ) );
assertTrue( gfxUtil.getDisplay( bar._indicatorShape ) );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testDifferentRadiiIndicatorFull : function() {
var gfxUtil = org.eclipse.rwt.GraphicsUtil;
var bar = new rwt.widgets.ProgressBar();
bar.setDimension( 200, 30 );
bar.addToDocument();
bar.setBorder( this._gfxBorder2 );
bar.setSelection( 100 );
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( 196, bar._getIndicatorLength() );
assertEquals( [ 0, 4, 6, 8 ], bar._getIndicatorRadii( 0, 196 ) );
assertTrue( gfxUtil.getDisplay( bar._indicatorShape ) );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testCreateSimpleBarVertical : function() {
var gfxUtil = org.eclipse.rwt.GraphicsUtil;
var bar = new rwt.widgets.ProgressBar();
bar.addState( "rwt_VERTICAL" );
assertTrue( bar._isVertical() );
bar.setDimension( 50, 120 );
bar.addToDocument();
bar.setBorder( null );
bar.setSelection( 50 );
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( 60, bar._getIndicatorLength() );
assertEquals( [ 0, 0, 0, 0 ], bar._getIndicatorRadii( 0, 60 ) );
assertTrue( gfxUtil.getDisplay( bar._indicatorShape ) );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testRoundedBorderVertical : function() {
var gfxUtil = org.eclipse.rwt.GraphicsUtil;
var bar = new rwt.widgets.ProgressBar();
bar.addState( "rwt_VERTICAL" );
assertTrue( bar._isVertical() );
bar.setDimension( 50, 120 );
bar.setBorder( this._gfxBorder );
bar.addToDocument();
bar.setSelection( 50 );
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( 58, bar._getIndicatorLength() );
assertEquals( [ 0, 0, 7, 7 ], bar._getIndicatorRadii( 0, 58 ) );
assertTrue( gfxUtil.getDisplay( bar._indicatorShape ) );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testDifferentRadiiIndicatorVerticalZero : function() {
var gfxUtil = org.eclipse.rwt.GraphicsUtil;
var bar = new rwt.widgets.ProgressBar();
bar.addState( "rwt_VERTICAL" );
bar.setDimension( 50, 120 );
bar.setBorder( this._gfxBorder2 );
bar.addToDocument();
bar.setSelection( 0 );
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( 0, bar._getIndicatorLength() );
assertFalse( gfxUtil.getDisplay( bar._indicatorShape ) );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testDifferentRadiiIndicatorVerticalMinLength : function() {
var gfxUtil = org.eclipse.rwt.GraphicsUtil;
var bar = new rwt.widgets.ProgressBar();
bar.addState( "rwt_VERTICAL" );
bar.setDimension( 50, 120 );
bar.setBorder( this._gfxBorder2 );
bar.addToDocument();
bar.setSelection( 0.0001 );
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( 7, bar._getIndicatorLength() );
assertEquals( [ 0, 0, 6, 8 ], bar._getIndicatorRadii( 0, 7 ) );
assertTrue( gfxUtil.getDisplay( bar._indicatorShape ) );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testDifferentRadiiIndicatorVerticalMaxLength : function() {
var gfxUtil = org.eclipse.rwt.GraphicsUtil;
var bar = new rwt.widgets.ProgressBar();
bar.addState( "rwt_VERTICAL" );
bar.setDimension( 50, 120 );
bar.setBorder( this._gfxBorder2 );
bar.addToDocument();
bar.setSelection( 99.9999 );
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( 113, bar._getIndicatorLength() );
assertEquals( [ 0, 0, 6, 8 ], bar._getIndicatorRadii( 0, 113 ) );
assertTrue( gfxUtil.getDisplay( bar._indicatorShape ) );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testDifferentRadiiIndicatorVerticalFull : function() {
var gfxUtil = org.eclipse.rwt.GraphicsUtil;
var bar = new rwt.widgets.ProgressBar();
bar.addState( "rwt_VERTICAL" );
bar.setDimension( 50, 120 );
bar.setBorder( this._gfxBorder2 );
bar.addToDocument();
bar.setSelection( 100 );
bar.setIndicatorColor( "red" );
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( 116, bar._getIndicatorLength() );
assertTrue( gfxUtil.getDisplay( bar._indicatorShape ) );
assertEquals( [ 0, 4, 6, 8 ], bar._getIndicatorRadii( 0, 116 ) );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testIndicatorFill : function() {
var gfxUtil = org.eclipse.rwt.GraphicsUtil;
var bar = new rwt.widgets.ProgressBar();
bar.setDimension( 200, 30 );
bar.addToDocument();
bar.setSelection( 50 );
rwt.widgets.base.Widget.flushGlobalQueues();
bar.setIndicatorColor( "green" );
bar.setIndicatorGradient( null );
var shape = bar._indicatorShape;
assertEquals( "color", gfxUtil.getFillType( shape ) );
bar.setIndicatorGradient( [ [ 0, "red" ], [ 1, "yellow" ] ] );
assertEquals( "gradient", gfxUtil.getFillType( shape ) );
bar.setIndicatorImage( [ "./fake.jpg", 70, 70 ] );
assertEquals( "pattern", gfxUtil.getFillType( shape ) );
bar.setIndicatorColor( null );
bar.setIndicatorGradient( null );
bar.setIndicatorImage( null );
assertEquals( null, gfxUtil.getFillType( shape ) );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testBackgroundFill : function() {
var gfxUtil = org.eclipse.rwt.GraphicsUtil;
var bar = new rwt.widgets.ProgressBar();
bar.setDimension( 200, 30 );
bar.addToDocument();
bar.setSelection( 50 );
bar.setBackgroundColor( "green" );
bar.setBackgroundGradient( null );
bar.setBackgroundImageSized( null );
rwt.widgets.base.Widget.flushGlobalQueues();
var shape = bar._backgroundShape;
assertEquals( "color", gfxUtil.getFillType( shape ) );
bar.setBackgroundGradient( [ [ 0, "red" ], [ 1, "yellow" ] ] );
assertEquals( "gradient", gfxUtil.getFillType( shape ) );
bar.setBackgroundImageSized( [ "./fake.jpg", 70, 70 ] );
assertEquals( "pattern", gfxUtil.getFillType( shape ) );
bar.setBackgroundColor( null );
bar.setBackgroundGradient( null );
bar.setBackgroundImageSized( null );
assertEquals( null, gfxUtil.getFillType( shape ) );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testUndeterminedSimple : function() {
var TestUtil = org.eclipse.rwt.test.fixture.TestUtil;
TestUtil.prepareTimerUse();
var bar = new rwt.widgets.ProgressBar();
bar.addState( "rwt_INDETERMINATE" );
assertFalse( bar._isVertical() );
assertTrue( bar._isIndeterminate() );
assertNotNull( bar._timer );
assertTrue( bar._timer.getEnabled() );
bar.setDimension( 200, 30 );
bar.addToDocument();
bar.setBorder( null );
bar._indicatorVirtualPosition = 30;
// first step:
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( 40, bar._getIndicatorLength() );
assertEquals( 32, bar._indicatorVirtualPosition );
assertEquals( [ 0, 0, 0, 0 ], bar._getIndicatorRadii( 32, 40 ) );
// second step:
TestUtil.forceInterval( bar._timer );
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( 34, bar._indicatorVirtualPosition );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testUndeterminedRounded : function() {
var TestUtil = org.eclipse.rwt.test.fixture.TestUtil;
TestUtil.prepareTimerUse();
var bar = new rwt.widgets.ProgressBar();
bar.addState( "rwt_INDETERMINATE" );
assertFalse( bar._isVertical() );
assertTrue( bar._isIndeterminate() );
assertNotNull( bar._timer );
assertTrue( bar._timer.getEnabled() );
bar.setDimension( 200, 30 );
bar.addToDocument();
bar.setBorder( this._gfxBorder2 );
bar._indicatorVirtualPosition = 30;
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( 32, bar._indicatorVirtualPosition );
assertEquals( 40, bar._getIndicatorLength( 32 ) );
assertEquals( [ 0, 0, 0, 0 ], bar._getIndicatorRadii( 32, 100 ) );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testUndeterminedWrap : function() {
var gfxUtil = org.eclipse.rwt.GraphicsUtil;
var TestUtil = org.eclipse.rwt.test.fixture.TestUtil;
TestUtil.prepareTimerUse();
var bar = new rwt.widgets.ProgressBar();
bar.addState( "rwt_INDETERMINATE" );
bar.setDimension( 200, 30 );
bar.addToDocument();
bar.setBorder( null );
bar._indicatorVirtualPosition = 196;
// step 1:
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( 198, bar._indicatorVirtualPosition );
assertEquals( 2, bar._getIndicatorLength( 198 ) );
assertTrue( gfxUtil.getDisplay( bar._indicatorShape ) );
// step 2:
TestUtil.forceInterval( bar._timer );
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( -40, bar._indicatorVirtualPosition );
assertEquals( 0, bar._getIndicatorLength( -40 ) );
assertFalse( gfxUtil.getDisplay( bar._indicatorShape ) );
// step 2:
TestUtil.forceInterval( bar._timer );
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( -38, bar._indicatorVirtualPosition );
assertEquals( 2, bar._getIndicatorLength( -38 ) );
assertTrue( gfxUtil.getDisplay( bar._indicatorShape ) );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testUndeterminedRoundedWrap : function() {
var gfxUtil = org.eclipse.rwt.GraphicsUtil;
var TestUtil = org.eclipse.rwt.test.fixture.TestUtil;
TestUtil.prepareTimerUse();
var bar = new rwt.widgets.ProgressBar();
bar.addState( "rwt_INDETERMINATE" );
bar.setDimension( 200, 30 );
bar.addToDocument();
bar.setBorder( this._gfxBorder2 );
bar._indicatorVirtualPosition = 188;
// step 1:
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( 190, bar._indicatorVirtualPosition );
assertEquals( 6, bar._getIndicatorLength( 190 ) );
assertTrue( gfxUtil.getDisplay( bar._indicatorShape ) );
assertEquals( [ 0, 4, 6, 0 ], bar._getIndicatorRadii( 190, 6 ) );
// step 2:
TestUtil.forceInterval( bar._timer );
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( -40, bar._indicatorVirtualPosition );
assertEquals( 0, bar._getIndicatorLength( -40 ) );
assertFalse( gfxUtil.getDisplay( bar._indicatorShape ) );
// step 3:
TestUtil.forceInterval( bar._timer );
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( -33, bar._indicatorVirtualPosition );
assertEquals( 7, bar._getIndicatorLength( -33 ) );
assertTrue( gfxUtil.getDisplay( bar._indicatorShape ) );
assertEquals( [ 0, 0, 0, 8 ], bar._getIndicatorRadii( 0, 8 ) );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testUndeterminedRoundedWrapVertical : function() {
var gfxUtil = org.eclipse.rwt.GraphicsUtil;
var TestUtil = org.eclipse.rwt.test.fixture.TestUtil;
TestUtil.prepareTimerUse();
var bar = new rwt.widgets.ProgressBar();
bar.addState( "rwt_VERTICAL" );
bar.addState( "rwt_INDETERMINATE" );
assertTrue( bar._isVertical() );
assertTrue( bar._isIndeterminate() );
bar.setDimension( 50, 120 );
bar.setBorder( this._gfxBorder2 );
bar.addToDocument();
bar._indicatorVirtualPosition = 110;
// step 1:
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( 112, bar._indicatorVirtualPosition );
assertEquals( 4, bar._getIndicatorLength( 112 ) );
assertTrue( gfxUtil.getDisplay( bar._indicatorShape ) );
assertEquals( [ 0, 4, 0, 0 ], bar._getIndicatorRadii( 112, 4 ) );
// step 2:
TestUtil.forceInterval( bar._timer );
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( -40, bar._indicatorVirtualPosition );
assertEquals( 0, bar._getIndicatorLength( -40 ) );
assertFalse( gfxUtil.getDisplay( bar._indicatorShape ) );
// step 3:
TestUtil.forceInterval( bar._timer );
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( -33, bar._indicatorVirtualPosition );
assertEquals( 7, bar._getIndicatorLength( -33 ) );
assertTrue( gfxUtil.getDisplay( bar._indicatorShape ) );
assertEquals( [ 0, 0, 6, 8 ], bar._getIndicatorRadii( 0, 8 ) );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testUndeterminedRoundedSkipStart : function() {
var gfxUtil = org.eclipse.rwt.GraphicsUtil;
var TestUtil = org.eclipse.rwt.test.fixture.TestUtil;
TestUtil.prepareTimerUse();
var bar = new rwt.widgets.ProgressBar();
bar.addState( "rwt_INDETERMINATE" );
bar.setDimension( 200, 30 );
bar.addToDocument();
bar.setBorder( this._gfxBorder2 );
bar._indicatorVirtualPosition = -2;
// step 1:
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( 0, bar._indicatorVirtualPosition );
assertEquals( 40, bar._getIndicatorLength( 0 ) );
assertTrue( gfxUtil.getDisplay( bar._indicatorShape ) );
assertEquals( [ 0, 0, 0, 8 ], bar._getIndicatorRadii( 0, 40 ) );
// step 2:
TestUtil.forceInterval( bar._timer );
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( 7, bar._indicatorVirtualPosition );
assertEquals( 40, bar._getIndicatorLength( 7 ) );
assertEquals( [ 0, 0, 0, 0 ], bar._getIndicatorRadii( 8, 40 ) );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testUndeterminedRoundedSkipEnd : function() {
var gfxUtil = org.eclipse.rwt.GraphicsUtil;
var TestUtil = org.eclipse.rwt.test.fixture.TestUtil;
TestUtil.prepareTimerUse();
var bar = new rwt.widgets.ProgressBar();
bar.addState( "rwt_INDETERMINATE" );
bar.setDimension( 200, 30 );
bar.addToDocument();
bar.setBorder( this._gfxBorder2 );
bar._indicatorVirtualPosition = 148;
// step 1:
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( 150, bar._indicatorVirtualPosition );
assertEquals( 40, bar._getIndicatorLength( 150 ) );
assertTrue( gfxUtil.getDisplay( bar._indicatorShape ) );
assertEquals( [ 0, 0, 0, 0 ], bar._getIndicatorRadii( 150, 40 ) );
// step 2:
TestUtil.forceInterval( bar._timer );
rwt.widgets.base.Widget.flushGlobalQueues();
assertEquals( 156, bar._indicatorVirtualPosition );
assertEquals( 40, bar._getIndicatorLength( 156 ) );
assertEquals( [ 0, 4, 6, 0 ], bar._getIndicatorRadii( 156, 40 ) );
bar.destroy();
rwt.widgets.base.Widget.flushGlobalQueues();
},
testFiresSelectionChangedEvent : function() {
var TestUtil = org.eclipse.rwt.test.fixture.TestUtil;
var shell = TestUtil.createShellByProtocol( "w2" );
var processor = rwt.protocol.MessageProcessor;
processor.processOperation( {
"target" : "w3",
"action" : "create",
"type" : "rwt.widgets.ProgressBar",
"properties" : {
"style" : [ "HORIZONTAL" ],
"parent" : "w2"
}
} );
var ObjectManager = rwt.protocol.ObjectRegistry;
var progressBar = ObjectManager.getObject( "w3" );
var log = 0;
progressBar.addEventListener( "selectionChanged", function() {
log++;
} );
progressBar.setSelection( 33 );
assertEquals( 1, log );
shell.destroy();
progressBar.destroy();
},
testFiresMinimumChangedEvent : function() {
var TestUtil = org.eclipse.rwt.test.fixture.TestUtil;
var shell = TestUtil.createShellByProtocol( "w2" );
var processor = rwt.protocol.MessageProcessor;
processor.processOperation( {
"target" : "w3",
"action" : "create",
"type" : "rwt.widgets.ProgressBar",
"properties" : {
"style" : [ "HORIZONTAL" ],
"parent" : "w2"
}
} );
var ObjectManager = rwt.protocol.ObjectRegistry;
var progressBar = ObjectManager.getObject( "w3" );
var log = 0;
progressBar.addEventListener( "minimumChanged", function() {
log++;
} );
progressBar.setMinimum( 5 );
assertEquals( 1, log );
shell.destroy();
progressBar.destroy();
},
testFiresMaximumChangedEvent : function() {
var TestUtil = org.eclipse.rwt.test.fixture.TestUtil;
var shell = TestUtil.createShellByProtocol( "w2" );
var processor = rwt.protocol.MessageProcessor;
processor.processOperation( {
"target" : "w3",
"action" : "create",
"type" : "rwt.widgets.ProgressBar",
"properties" : {
"style" : [ "HORIZONTAL" ],
"parent" : "w2"
}
} );
var ObjectManager = rwt.protocol.ObjectRegistry;
var progressBar = ObjectManager.getObject( "w3" );
var log = 0;
progressBar.addEventListener( "maximumChanged", function() {
log++;
} );
progressBar.setMaximum( 200 );
assertEquals( 1, log );
shell.destroy();
progressBar.destroy();
}
}
} );