2009-02-02 14:36:08 +00:00
/ *
* dialog _options . js
* /
( function ( $ ) {
module ( "dialog: options" ) ;
2012-12-07 19:54:21 +00:00
test ( "appendTo" , function ( ) {
expect ( 8 ) ;
var detached = $ ( "<div>" ) ,
element = $ ( "#dialog1" ) . dialog ( ) ;
equal ( element . dialog ( "widget" ) . parent ( ) [ 0 ] , document . body , "defaults to body" ) ;
element . dialog ( "destroy" ) ;
element . dialog ( {
appendTo : ".wrap"
} ) ;
equal ( element . dialog ( "widget" ) . parent ( ) [ 0 ] , $ ( "#wrap1" ) [ 0 ] , "first found element" ) ;
equal ( $ ( "#wrap2 .ui-dialog" ) . length , 0 , "only appends to one element" ) ;
element . dialog ( "destroy" ) ;
element . dialog ( {
appendTo : null
} ) ;
equal ( element . dialog ( "widget" ) . parent ( ) [ 0 ] , document . body , "null" ) ;
element . dialog ( "destroy" ) ;
element . dialog ( { autoOpen : false } ) . dialog ( "option" , "appendTo" , "#wrap1" ) . dialog ( "open" ) ;
equal ( element . dialog ( "widget" ) . parent ( ) [ 0 ] , $ ( "#wrap1" ) [ 0 ] , "modified after init" ) ;
element . dialog ( "destroy" ) ;
element . dialog ( {
appendTo : detached
} ) ;
equal ( element . dialog ( "widget" ) . parent ( ) [ 0 ] , detached [ 0 ] , "detached jQuery object" ) ;
element . dialog ( "destroy" ) ;
element . dialog ( {
appendTo : detached [ 0 ]
} ) ;
equal ( element . dialog ( "widget" ) . parent ( ) [ 0 ] , detached [ 0 ] , "detached DOM element" ) ;
element . dialog ( "destroy" ) ;
element . dialog ( { autoOpen : false } ) . dialog ( "option" , "appendTo" , detached ) ;
equal ( element . dialog ( "widget" ) . parent ( ) [ 0 ] , detached [ 0 ] , "detached DOM element via option()" ) ;
element . dialog ( "destroy" ) ;
} ) ;
2009-02-04 04:35:18 +00:00
test ( "autoOpen" , function ( ) {
expect ( 2 ) ;
2012-11-03 20:17:16 +00:00
var el = $ ( '<div></div>' ) . dialog ( { autoOpen : false } ) ;
ok ( ! el . dialog ( "widget" ) . is ( ":visible" ) , '.dialog({ autoOpen: false })' ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
el = $ ( '<div></div>' ) . dialog ( { autoOpen : true } ) ;
2012-11-03 20:17:16 +00:00
ok ( el . dialog ( "widget" ) . is ( ":visible" ) , '.dialog({ autoOpen: true })' ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
} ) ;
test ( "buttons" , function ( ) {
2011-03-02 17:52:21 +00:00
expect ( 21 ) ;
2009-02-04 04:35:18 +00:00
2012-04-19 14:27:06 +00:00
var btn , i , newButtons ,
buttons = {
2012-11-03 20:17:16 +00:00
"Ok" : function ( ev ) {
ok ( true , "button click fires callback" ) ;
equal ( this , el [ 0 ] , "context of callback" ) ;
equal ( ev . target , btn [ 0 ] , "event target" ) ;
} ,
"Cancel" : function ( ev ) {
ok ( true , "button click fires callback" ) ;
equal ( this , el [ 0 ] , "context of callback" ) ;
equal ( ev . target , btn [ 1 ] , "event target" ) ;
}
2009-02-04 04:35:18 +00:00
} ,
2012-11-03 20:17:16 +00:00
el = $ ( '<div></div>' ) . dialog ( { buttons : buttons } ) ;
2009-02-04 04:35:18 +00:00
2012-11-15 21:29:24 +00:00
btn = el . dialog ( "widget" ) . find ( ".ui-dialog-buttonpane button" ) ;
2012-02-28 14:56:32 +00:00
equal ( btn . length , 2 , "number of buttons" ) ;
2009-02-04 04:35:18 +00:00
2012-04-19 14:27:06 +00:00
i = 0 ;
2012-10-23 14:36:42 +00:00
$ . each ( buttons , function ( key ) {
2012-02-28 14:56:32 +00:00
equal ( btn . eq ( i ) . text ( ) , key , "text of button " + ( i + 1 ) ) ;
2009-02-04 04:35:18 +00:00
i ++ ;
} ) ;
2010-07-30 00:56:28 +00:00
ok ( btn . parent ( ) . hasClass ( 'ui-dialog-buttonset' ) , "buttons in container" ) ;
2011-03-02 17:52:21 +00:00
ok ( el . parent ( ) . hasClass ( 'ui-dialog-buttons' ) , "dialog wrapper adds class about having buttons" ) ;
2012-02-28 14:56:32 +00:00
2009-02-04 04:35:18 +00:00
btn . trigger ( "click" ) ;
2012-04-19 14:27:06 +00:00
newButtons = {
2012-10-23 14:36:42 +00:00
"Close" : function ( ev ) {
2009-02-04 04:35:18 +00:00
ok ( true , "button click fires callback" ) ;
2012-02-28 14:56:32 +00:00
equal ( this , el [ 0 ] , "context of callback" ) ;
equal ( ev . target , btn [ 0 ] , "event target" ) ;
2009-02-04 04:35:18 +00:00
}
} ;
2012-02-28 14:56:32 +00:00
deepEqual ( el . dialog ( "option" , "buttons" ) , buttons , '.dialog("option", "buttons") getter' ) ;
2009-11-09 01:50:23 +00:00
el . dialog ( "option" , "buttons" , newButtons ) ;
2012-02-28 14:56:32 +00:00
deepEqual ( el . dialog ( "option" , "buttons" ) , newButtons , '.dialog("option", "buttons", ...) setter' ) ;
2009-02-04 04:35:18 +00:00
2012-11-15 21:29:24 +00:00
btn = el . dialog ( "widget" ) . find ( ".ui-dialog-buttonpane button" ) ;
2012-02-28 14:56:32 +00:00
equal ( btn . length , 1 , "number of buttons after setter" ) ;
2009-02-04 04:35:18 +00:00
btn . trigger ( 'click' ) ;
i = 0 ;
2012-10-23 14:36:42 +00:00
$ . each ( newButtons , function ( key ) {
2012-02-28 14:56:32 +00:00
equal ( btn . eq ( i ) . text ( ) , key , "text of button " + ( i + 1 ) ) ;
2009-02-04 04:35:18 +00:00
i += 1 ;
} ) ;
2012-02-28 14:56:32 +00:00
2011-03-02 17:52:21 +00:00
el . dialog ( "option" , "buttons" , null ) ;
2012-11-15 21:29:24 +00:00
btn = el . dialog ( "widget" ) . find ( ".ui-dialog-buttonpane button" ) ;
2012-02-28 14:56:32 +00:00
equal ( btn . length , 0 , "all buttons have been removed" ) ;
equal ( el . find ( ".ui-dialog-buttonset" ) . length , 0 , "buttonset has been removed" ) ;
equal ( el . parent ( ) . hasClass ( 'ui-dialog-buttons' ) , false , "dialog wrapper removes class about having buttons" ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
} ) ;
2010-08-31 14:17:53 +00:00
test ( "buttons - advanced" , function ( ) {
2012-11-16 18:26:22 +00:00
expect ( 7 ) ;
2010-08-31 14:17:53 +00:00
2012-11-03 20:17:16 +00:00
var buttons ,
el = $ ( "<div></div>" ) . dialog ( {
buttons : [
{
text : "a button" ,
"class" : "additional-class" ,
id : "my-button-id" ,
click : function ( ) {
equal ( this , el [ 0 ] , "correct context" ) ;
2012-11-16 18:26:22 +00:00
} ,
icons : {
primary : "ui-icon-cancel"
} ,
showText : false
2010-08-31 14:17:53 +00:00
}
2012-11-03 20:17:16 +00:00
]
} ) ;
2012-11-15 21:29:24 +00:00
buttons = el . dialog ( "widget" ) . find ( ".ui-dialog-buttonpane button" ) ;
2012-02-28 14:56:32 +00:00
equal ( buttons . length , 1 , "correct number of buttons" ) ;
equal ( buttons . attr ( "id" ) , "my-button-id" , "correct id" ) ;
equal ( buttons . text ( ) , "a button" , "correct label" ) ;
2010-08-31 14:17:53 +00:00
ok ( buttons . hasClass ( "additional-class" ) , "additional classes added" ) ;
2012-11-16 18:26:22 +00:00
deepEqual ( buttons . button ( "option" , "icons" ) , { primary : "ui-icon-cancel" , secondary : null } ) ;
equal ( buttons . button ( "option" , "text" ) , false ) ;
2010-08-31 14:17:53 +00:00
buttons . click ( ) ;
el . remove ( ) ;
} ) ;
2009-02-04 04:35:18 +00:00
test ( "closeOnEscape" , function ( ) {
2012-06-27 15:32:48 +00:00
expect ( 6 ) ;
2012-11-03 20:17:16 +00:00
var el = $ ( '<div></div>' ) . dialog ( { closeOnEscape : false } ) ;
2009-09-19 10:16:08 +00:00
ok ( true , 'closeOnEscape: false' ) ;
2012-11-03 20:17:16 +00:00
ok ( el . dialog ( 'widget' ) . is ( ':visible' ) && ! el . dialog ( 'widget' ) . is ( ':hidden' ) , 'dialog is open before ESC' ) ;
2009-09-19 10:16:08 +00:00
el . simulate ( 'keydown' , { keyCode : $ . ui . keyCode . ESCAPE } )
. simulate ( 'keypress' , { keyCode : $ . ui . keyCode . ESCAPE } )
. simulate ( 'keyup' , { keyCode : $ . ui . keyCode . ESCAPE } ) ;
2012-11-03 20:17:16 +00:00
ok ( el . dialog ( 'widget' ) . is ( ':visible' ) && ! el . dialog ( 'widget' ) . is ( ':hidden' ) , 'dialog is open after ESC' ) ;
2012-02-28 14:56:32 +00:00
2009-09-19 10:16:08 +00:00
el . remove ( ) ;
2012-02-28 14:56:32 +00:00
2009-09-19 10:16:08 +00:00
el = $ ( '<div></div>' ) . dialog ( { closeOnEscape : true } ) ;
ok ( true , 'closeOnEscape: true' ) ;
2012-11-03 20:17:16 +00:00
ok ( el . dialog ( 'widget' ) . is ( ':visible' ) && ! el . dialog ( 'widget' ) . is ( ':hidden' ) , 'dialog is open before ESC' ) ;
2009-09-19 10:16:08 +00:00
el . simulate ( 'keydown' , { keyCode : $ . ui . keyCode . ESCAPE } )
. simulate ( 'keypress' , { keyCode : $ . ui . keyCode . ESCAPE } )
. simulate ( 'keyup' , { keyCode : $ . ui . keyCode . ESCAPE } ) ;
2012-11-03 20:17:16 +00:00
ok ( el . dialog ( 'widget' ) . is ( ':hidden' ) && ! el . dialog ( 'widget' ) . is ( ':visible' ) , 'dialog is closed after ESC' ) ;
2009-02-04 04:35:18 +00:00
} ) ;
test ( "closeText" , function ( ) {
expect ( 3 ) ;
2012-11-03 20:17:16 +00:00
var el = $ ( '<div></div>' ) . dialog ( ) ;
equal ( el . dialog ( 'widget' ) . find ( '.ui-dialog-titlebar-close span' ) . text ( ) , 'close' ,
2009-02-04 04:35:18 +00:00
'default close text' ) ;
el . remove ( ) ;
el = $ ( '<div></div>' ) . dialog ( { closeText : "foo" } ) ;
2012-11-03 20:17:16 +00:00
equal ( el . dialog ( 'widget' ) . find ( '.ui-dialog-titlebar-close span' ) . text ( ) , 'foo' ,
2009-02-04 04:35:18 +00:00
'closeText on init' ) ;
el . remove ( ) ;
el = $ ( '<div></div>' ) . dialog ( ) . dialog ( 'option' , 'closeText' , 'bar' ) ;
2012-11-03 20:17:16 +00:00
equal ( el . dialog ( 'widget' ) . find ( '.ui-dialog-titlebar-close span' ) . text ( ) , 'bar' ,
2009-02-04 04:35:18 +00:00
'closeText via option method' ) ;
el . remove ( ) ;
} ) ;
test ( "dialogClass" , function ( ) {
2012-11-15 21:51:26 +00:00
expect ( 6 ) ;
2009-02-04 04:35:18 +00:00
2012-11-03 20:17:16 +00:00
var el = $ ( '<div></div>' ) . dialog ( ) ;
equal ( el . dialog ( 'widget' ) . is ( ".foo" ) , false , 'dialogClass not specified. foo class added' ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
el = $ ( '<div></div>' ) . dialog ( { dialogClass : "foo" } ) ;
2012-11-03 20:17:16 +00:00
equal ( el . dialog ( 'widget' ) . is ( ".foo" ) , true , 'dialogClass in init. foo class added' ) ;
2012-11-15 21:51:26 +00:00
el . dialog ( "option" , "dialogClass" , "foobar" ) ;
equal ( el . dialog ( 'widget' ) . is ( ".foo" ) , false , "dialogClass changed, previous one was removed" ) ;
equal ( el . dialog ( 'widget' ) . is ( ".foobar" ) , true , "dialogClass changed, new one was added" ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
el = $ ( '<div></div>' ) . dialog ( { dialogClass : "foo bar" } ) ;
2012-11-03 20:17:16 +00:00
equal ( el . dialog ( 'widget' ) . is ( ".foo" ) , true , 'dialogClass in init, two classes. foo class added' ) ;
equal ( el . dialog ( 'widget' ) . is ( ".bar" ) , true , 'dialogClass in init, two classes. bar class added' ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
} ) ;
test ( "draggable" , function ( ) {
expect ( 4 ) ;
2012-11-03 20:17:16 +00:00
var el = $ ( '<div></div>' ) . dialog ( { draggable : false } ) ;
TestHelpers . dialog . testDrag ( el , 50 , - 50 , 0 , 0 ) ;
2009-09-19 10:16:08 +00:00
el . dialog ( 'option' , 'draggable' , true ) ;
2012-11-03 20:17:16 +00:00
TestHelpers . dialog . testDrag ( el , 50 , - 50 , 50 , - 50 ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
el = $ ( '<div></div>' ) . dialog ( { draggable : true } ) ;
2012-11-03 20:17:16 +00:00
TestHelpers . dialog . testDrag ( el , 50 , - 50 , 50 , - 50 ) ;
2009-09-19 10:16:08 +00:00
el . dialog ( 'option' , 'draggable' , false ) ;
2012-11-03 20:17:16 +00:00
TestHelpers . dialog . testDrag ( el , 50 , - 50 , 0 , 0 ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
} ) ;
test ( "height" , function ( ) {
2011-11-28 21:52:10 +00:00
expect ( 4 ) ;
2009-02-04 04:35:18 +00:00
2012-11-03 20:17:16 +00:00
var el = $ ( '<div></div>' ) . dialog ( ) ;
equal ( el . dialog ( 'widget' ) . outerHeight ( ) , 150 , "default height" ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
2010-09-07 12:58:20 +00:00
el = $ ( '<div></div>' ) . dialog ( { height : 237 } ) ;
2012-11-03 20:17:16 +00:00
equal ( el . dialog ( 'widget' ) . outerHeight ( ) , 237 , "explicit height" ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
el = $ ( '<div></div>' ) . dialog ( ) ;
2010-09-07 12:58:20 +00:00
el . dialog ( 'option' , 'height' , 238 ) ;
2012-11-03 20:17:16 +00:00
equal ( el . dialog ( 'widget' ) . outerHeight ( ) , 238 , "explicit height set after init" ) ;
2011-11-28 21:52:10 +00:00
el . remove ( ) ;
2012-02-28 14:56:32 +00:00
2011-11-28 21:52:10 +00:00
el = $ ( '<div></div>' ) . css ( "padding" , "20px" )
. dialog ( { height : 240 } ) ;
2012-11-03 20:17:16 +00:00
equal ( el . dialog ( 'widget' ) . outerHeight ( ) , 240 , "explicit height with padding" ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
} ) ;
2012-11-30 12:08:56 +00:00
asyncTest ( "hide, #5860 - don't leave effects wrapper behind" , function ( ) {
expect ( 1 ) ;
$ ( "#dialog1" ) . dialog ( { hide : "clip" } ) . dialog ( "close" ) . dialog ( "destroy" ) ;
setTimeout ( function ( ) {
equal ( $ ( ".ui-effects-wrapper" ) . length , 0 ) ;
start ( ) ;
} , 500 ) ;
} ) ;
2009-02-04 04:35:18 +00:00
test ( "maxHeight" , function ( ) {
expect ( 3 ) ;
2012-11-03 20:17:16 +00:00
var el = $ ( '<div></div>' ) . dialog ( { maxHeight : 200 } ) ;
TestHelpers . dialog . drag ( el , '.ui-resizable-s' , 1000 , 1000 ) ;
2012-11-09 20:02:12 +00:00
closeEnough ( el . dialog ( 'widget' ) . height ( ) , 200 , 1 , "maxHeight" ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
2010-09-07 12:58:20 +00:00
el = $ ( '<div></div>' ) . dialog ( { maxHeight : 200 } ) ;
2012-11-03 20:17:16 +00:00
TestHelpers . dialog . drag ( el , '.ui-resizable-n' , - 1000 , - 1000 ) ;
2012-11-09 20:02:12 +00:00
closeEnough ( el . dialog ( 'widget' ) . height ( ) , 200 , 1 , "maxHeight" ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
2010-09-07 12:58:20 +00:00
el = $ ( '<div></div>' ) . dialog ( { maxHeight : 200 } ) . dialog ( 'option' , 'maxHeight' , 300 ) ;
2012-11-03 20:17:16 +00:00
TestHelpers . dialog . drag ( el , '.ui-resizable-s' , 1000 , 1000 ) ;
2012-11-09 20:02:12 +00:00
closeEnough ( el . dialog ( 'widget' ) . height ( ) , 300 , 1 , "maxHeight" ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
} ) ;
test ( "maxWidth" , function ( ) {
expect ( 3 ) ;
2012-11-03 20:17:16 +00:00
var el = $ ( '<div></div>' ) . dialog ( { maxWidth : 200 } ) ;
TestHelpers . dialog . drag ( el , '.ui-resizable-e' , 1000 , 1000 ) ;
2012-11-09 20:02:12 +00:00
closeEnough ( el . dialog ( 'widget' ) . width ( ) , 200 , 1 , "maxWidth" ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
2010-09-07 12:58:20 +00:00
el = $ ( '<div></div>' ) . dialog ( { maxWidth : 200 } ) ;
2012-11-03 20:17:16 +00:00
TestHelpers . dialog . drag ( el , '.ui-resizable-w' , - 1000 , - 1000 ) ;
2012-11-09 20:02:12 +00:00
closeEnough ( el . dialog ( 'widget' ) . width ( ) , 200 , 1 , "maxWidth" ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
2010-09-07 12:58:20 +00:00
el = $ ( '<div></div>' ) . dialog ( { maxWidth : 200 } ) . dialog ( 'option' , 'maxWidth' , 300 ) ;
2012-11-03 20:17:16 +00:00
TestHelpers . dialog . drag ( el , '.ui-resizable-w' , - 1000 , - 1000 ) ;
2012-11-09 20:02:12 +00:00
closeEnough ( el . dialog ( 'widget' ) . width ( ) , 300 , 1 , "maxWidth" ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
} ) ;
test ( "minHeight" , function ( ) {
expect ( 3 ) ;
2012-11-03 20:17:16 +00:00
var el = $ ( '<div></div>' ) . dialog ( { minHeight : 10 } ) ;
TestHelpers . dialog . drag ( el , '.ui-resizable-s' , - 1000 , - 1000 ) ;
2012-11-09 20:02:12 +00:00
closeEnough ( el . dialog ( 'widget' ) . height ( ) , 10 , 1 , "minHeight" ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
el = $ ( '<div></div>' ) . dialog ( { minHeight : 10 } ) ;
2012-11-03 20:17:16 +00:00
TestHelpers . dialog . drag ( el , '.ui-resizable-n' , 1000 , 1000 ) ;
2012-11-09 20:02:12 +00:00
closeEnough ( el . dialog ( 'widget' ) . height ( ) , 10 , 1 , "minHeight" ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
2009-11-09 01:50:23 +00:00
el = $ ( '<div></div>' ) . dialog ( { minHeight : 10 } ) . dialog ( 'option' , 'minHeight' , 30 ) ;
2012-11-03 20:17:16 +00:00
TestHelpers . dialog . drag ( el , '.ui-resizable-n' , 1000 , 1000 ) ;
2012-11-09 20:02:12 +00:00
closeEnough ( el . dialog ( 'widget' ) . height ( ) , 30 , 1 , "minHeight" ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
} ) ;
test ( "minWidth" , function ( ) {
expect ( 3 ) ;
2012-11-03 20:17:16 +00:00
var el = $ ( '<div></div>' ) . dialog ( { minWidth : 10 } ) ;
TestHelpers . dialog . drag ( el , '.ui-resizable-e' , - 1000 , - 1000 ) ;
2012-11-09 20:02:12 +00:00
closeEnough ( el . dialog ( 'widget' ) . width ( ) , 10 , 1 , "minWidth" ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
el = $ ( '<div></div>' ) . dialog ( { minWidth : 10 } ) ;
2012-11-03 20:17:16 +00:00
TestHelpers . dialog . drag ( el , '.ui-resizable-w' , 1000 , 1000 ) ;
2012-11-09 20:02:12 +00:00
closeEnough ( el . dialog ( 'widget' ) . width ( ) , 10 , 1 , "minWidth" ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
2009-11-09 01:50:23 +00:00
el = $ ( '<div></div>' ) . dialog ( { minWidth : 30 } ) . dialog ( 'option' , 'minWidth' , 30 ) ;
2012-11-03 20:17:16 +00:00
TestHelpers . dialog . drag ( el , '.ui-resizable-w' , 1000 , 1000 ) ;
2012-11-09 20:02:12 +00:00
closeEnough ( el . dialog ( 'widget' ) . width ( ) , 30 , 1 , "minWidth" ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
} ) ;
2012-12-22 20:46:57 +00:00
test ( "position, default center on window" , function ( ) {
2012-06-27 15:32:48 +00:00
expect ( 2 ) ;
2012-12-22 20:46:57 +00:00
// dialogs alter the window width and height in FF and IE7
// so we collect that information before creating the dialog
// Support: FF, IE7
var winWidth = $ ( window ) . width ( ) ,
winHeight = $ ( window ) . height ( ) ,
el = $ ( "<div></div>" ) . dialog ( ) ,
dialog = el . dialog ( "widget" ) ,
2012-04-19 14:27:06 +00:00
offset = dialog . offset ( ) ;
2012-12-22 20:46:57 +00:00
closeEnough ( offset . left , Math . round ( winWidth / 2 - dialog . outerWidth ( ) / 2 ) + $ ( window ) . scrollLeft ( ) , 1 , "dialog left position of center on window on initilization" ) ;
closeEnough ( offset . top , Math . round ( winHeight / 2 - dialog . outerHeight ( ) / 2 ) + $ ( window ) . scrollTop ( ) , 1 , "dialog top position of center on window on initilization" ) ;
2009-09-19 14:03:53 +00:00
el . remove ( ) ;
} ) ;
2012-12-22 20:46:57 +00:00
test ( "position, right bottom at right bottom via ui.position args" , function ( ) {
expect ( 2 ) ;
2012-11-09 20:02:12 +00:00
2012-12-22 20:46:57 +00:00
// dialogs alter the window width and height in FF and IE7
// so we collect that information before creating the dialog
// Support: FF, IE7
var winWidth = $ ( window ) . width ( ) ,
winHeight = $ ( window ) . height ( ) ,
el = $ ( "<div></div>" ) . dialog ( {
position : {
my : "right bottom" ,
at : "right bottom"
}
} ) ,
dialog = el . dialog ( "widget" ) ,
offset = dialog . offset ( ) ;
closeEnough ( offset . left , winWidth - dialog . outerWidth ( ) + $ ( window ) . scrollLeft ( ) , 1 , "dialog left position of right bottom at right bottom on initilization" ) ;
closeEnough ( offset . top , winHeight - dialog . outerHeight ( ) + $ ( window ) . scrollTop ( ) , 1 , "dialog top position of right bottom at right bottom on initilization" ) ;
el . remove ( ) ;
} ) ;
2010-06-06 22:00:49 +00:00
2012-12-22 20:46:57 +00:00
test ( "position, at another element" , function ( ) {
2012-06-27 15:32:48 +00:00
expect ( 4 ) ;
2010-06-06 22:00:49 +00:00
var parent = $ ( '<div></div>' ) . css ( {
2012-04-19 14:27:06 +00:00
position : 'absolute' ,
top : 400 ,
left : 600 ,
height : 10 ,
width : 10
2012-12-22 20:46:57 +00:00
} ) . appendTo ( "body" ) ,
2012-04-19 14:27:06 +00:00
2012-12-22 20:46:57 +00:00
el = $ ( "<div></div>" ) . dialog ( {
2012-04-19 14:27:06 +00:00
position : {
my : "left top" ,
at : "left top" ,
2012-12-22 20:46:57 +00:00
of : parent ,
collision : "none"
2012-04-19 14:27:06 +00:00
}
} ) ,
2010-06-06 22:00:49 +00:00
2012-12-22 20:46:57 +00:00
dialog = el . dialog ( "widget" ) ,
2012-04-19 14:27:06 +00:00
offset = dialog . offset ( ) ;
2010-06-06 22:00:49 +00:00
2012-12-22 20:46:57 +00:00
closeEnough ( offset . left , 600 , 1 , "dialog left position at another element on initilization" ) ;
closeEnough ( offset . top , 400 , 1 , "dialog top position at another element on initilization" ) ;
2010-06-06 22:00:49 +00:00
2012-12-22 20:46:57 +00:00
el . dialog ( "option" , "position" , {
2010-06-06 22:00:49 +00:00
my : "left top" ,
at : "right bottom" ,
2012-12-22 20:46:57 +00:00
of : parent ,
collision : "none"
2010-06-06 22:00:49 +00:00
} ) ;
2012-04-19 14:27:06 +00:00
offset = dialog . offset ( ) ;
2010-07-16 12:50:40 +00:00
2012-12-22 20:46:57 +00:00
closeEnough ( offset . left , 610 , 1 , "dialog left position at another element via setting option" ) ;
closeEnough ( offset . top , 410 , 1 , "dialog top position at another element via setting option" ) ;
2010-06-06 22:00:49 +00:00
el . remove ( ) ;
parent . remove ( ) ;
} ) ;
2009-02-04 04:35:18 +00:00
test ( "resizable" , function ( ) {
expect ( 4 ) ;
2012-11-03 20:17:16 +00:00
var el = $ ( '<div></div>' ) . dialog ( ) ;
TestHelpers . dialog . shouldResize ( el , 50 , 50 , "[default]" ) ;
2009-11-09 01:50:23 +00:00
el . dialog ( 'option' , 'resizable' , false ) ;
2012-11-03 20:17:16 +00:00
TestHelpers . dialog . shouldResize ( el , 0 , 0 , 'disabled after init' ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
el = $ ( '<div></div>' ) . dialog ( { resizable : false } ) ;
2012-11-03 20:17:16 +00:00
TestHelpers . dialog . shouldResize ( el , 0 , 0 , "disabled in init options" ) ;
2009-11-09 01:50:23 +00:00
el . dialog ( 'option' , 'resizable' , true ) ;
2012-11-03 20:17:16 +00:00
TestHelpers . dialog . shouldResize ( el , 50 , 50 , 'enabled after init' ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
} ) ;
2012-11-09 17:26:30 +00:00
test ( "title" , function ( ) {
expect ( 11 ) ;
2009-02-04 04:35:18 +00:00
function titleText ( ) {
2012-11-09 17:26:30 +00:00
return el . dialog ( 'widget' ) . find ( ".ui-dialog-title" ) . html ( ) ;
2009-02-04 04:35:18 +00:00
}
2012-11-09 17:26:30 +00:00
var el = $ ( '<div></div>' ) . dialog ( ) ;
2010-09-07 13:49:58 +00:00
// some browsers return a non-breaking space and some return " "
2012-11-15 15:47:36 +00:00
// so we generate a non-breaking space for comparison
2012-11-09 17:26:30 +00:00
equal ( titleText ( ) , $ ( "<span> </span>" ) . html ( ) , "[default]" ) ;
equal ( el . dialog ( "option" , "title" ) , null , "option not changed" ) ;
el . remove ( ) ;
el = $ ( '<div title="foo">' ) . dialog ( ) ;
equal ( titleText ( ) , "foo" , "title in element attribute" ) ;
equal ( el . dialog ( "option" , "title" ) , "foo" , "option updated from attribute" ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
2012-11-09 17:26:30 +00:00
el = $ ( '<div></div>' ) . dialog ( { title : 'foo' } ) ;
equal ( titleText ( ) , "foo" , "title in init options" ) ;
equal ( el . dialog ( "option" , "title" ) , "foo" , "opiton set from options hash" ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
2012-11-09 17:26:30 +00:00
el = $ ( '<div title="foo">' ) . dialog ( { title : 'bar' } ) ;
equal ( titleText ( ) , "bar" , "title in init options should override title in element attribute" ) ;
equal ( el . dialog ( "option" , "title" ) , "bar" , "opiton set from options hash" ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
2012-11-09 17:26:30 +00:00
el = $ ( '<div></div>' ) . dialog ( ) . dialog ( 'option' , 'title' , 'foo' ) ;
equal ( titleText ( ) , 'foo' , 'title after init' ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
2012-11-09 17:26:30 +00:00
// make sure attroperties are properly ignored - #5742 - .attr() might return a DOMElement
el = $ ( '<form><input name="title"></form>' ) . dialog ( ) ;
// some browsers return a non-breaking space and some return " "
// so we get the text to normalize to the actual non-breaking space
equal ( titleText ( ) , $ ( "<span> </span>" ) . html ( ) , "[default]" ) ;
equal ( el . dialog ( "option" , "title" ) , null , "option not changed" ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
} ) ;
test ( "width" , function ( ) {
expect ( 3 ) ;
2012-11-03 20:17:16 +00:00
var el = $ ( '<div></div>' ) . dialog ( ) ;
2012-11-09 20:02:12 +00:00
closeEnough ( el . dialog ( 'widget' ) . width ( ) , 300 , 1 , "default width" ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
el = $ ( '<div></div>' ) . dialog ( { width : 437 } ) ;
2012-11-09 20:02:12 +00:00
closeEnough ( el . dialog ( 'widget' ) . width ( ) , 437 , 1 , "explicit width" ) ;
2009-11-09 01:50:23 +00:00
el . dialog ( 'option' , 'width' , 438 ) ;
2012-11-09 20:02:12 +00:00
closeEnough ( el . dialog ( 'widget' ) . width ( ) , 438 , 1 , 'explicit width after init' ) ;
2009-02-04 04:35:18 +00:00
el . remove ( ) ;
2009-02-02 14:36:08 +00:00
} ) ;
2012-12-08 01:06:29 +00:00
test ( "#4826: setting resizable false toggles resizable on dialog" , function ( ) {
expect ( 6 ) ;
var i ,
el = $ ( '<div></div>' ) . dialog ( { resizable : false } ) ;
TestHelpers . dialog . shouldResize ( el , 0 , 0 , "[default]" ) ;
for ( i = 0 ; i < 2 ; i ++ ) {
el . dialog ( 'close' ) . dialog ( 'open' ) ;
TestHelpers . dialog . shouldResize ( el , 0 , 0 , 'initialized with resizable false toggle (' + ( i + 1 ) + ')' ) ;
}
el . remove ( ) ;
el = $ ( '<div></div>' ) . dialog ( { resizable : true } ) ;
TestHelpers . dialog . shouldResize ( el , 50 , 50 , "[default]" ) ;
for ( i = 0 ; i < 2 ; i ++ ) {
el . dialog ( 'close' ) . dialog ( 'option' , 'resizable' , false ) . dialog ( 'open' ) ;
TestHelpers . dialog . shouldResize ( el , 0 , 0 , 'set option resizable false toggle (' + ( i + 1 ) + ')' ) ;
}
el . remove ( ) ;
} ) ;
2009-02-02 14:36:08 +00:00
} ) ( jQuery ) ;