Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F947768
ContentPane.html
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
16 KB
Subscribers
None
ContentPane.html
View Options
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<
html
>
<
head
>
<
title
>
Test ContentPane
</
title
>
<
style
type
=
"text/css"
>
@
import
"../../../dojo/resources/dojo.css"
;
@
import
"../../themes/tundra/tundra.css"
;
@
import
"../css/dijitTests.css"
;
.
box
{
border
:
1
px
solid
black
;
padding
:
8
px
;
}
.
dijitTestWidget
{
border
:
1
px
dashed
red
;
background-color
:
#C0E209
;
}
</
style
>
<
script
type
=
"text/javascript"
src
=
"../../../dojo/dojo.js"
djConfig
=
"isDebug: true"
></
script
>
<
script
type
=
"text/javascript"
>
dojo
.
require
(
"doh.runner"
);
dojo
.
require
(
"dijit.layout.ContentPane"
);
dojo
.
require
(
"dijit._Container"
);
dojo
.
require
(
"dijit._Templated"
);
dojo
.
require
(
"dijit.layout.StackContainer"
);
// create a do nothing, only for test widget
dojo
.
declare
(
"dijit.TestWidget"
,
[
dijit
.
_Widget
,
dijit
.
_Templated
],
{
templateString
:
"<span class='dijitTestWidget'></span>"
});
dojo
.
addOnLoad
(
function
(){
doh
.
register
(
"pane1"
,
[
{
name
:
"no_autoparse"
,
runTest
:
function
(
t
){
if
(
dijit
.
byId
(
"pane1"
)){
throw
doh
.
_AssertFailure
(
"Page got autoparsed when it shouldn't"
);
}
}
}
]
);
var
pane2
;
doh
.
registerGroup
(
"pane2"
,
[
{
name
:
"clear_content"
,
setUp
:
function
(
t
){
pane2
=
new
dijit
.
layout
.
ContentPane
({},
dojo
.
byId
(
"pane2"
));
pane2
.
setContent
();
// pass undefined on purpose
},
runTest
:
function
(
t
){
t
.
assertEqual
(
0
,
dijit
.
_Container
.
prototype
.
getChildren
.
call
(
pane2
).
length
);
t
.
assertEqual
(
""
,
pane2
.
domNode
.
innerHTML
)
}
},
{
name
:
"setContent_String"
,
setUp
:
function
(){
pane2
.
setContent
();
},
runTest
:
function
(
t
){
var
msg
=
"<h3>a simple html string</h3>"
;
pane2
.
setContent
(
msg
);
t
.
assertEqual
(
msg
,
pane2
.
domNode
.
innerHTML
.
toLowerCase
());
}
},
{
name
:
"setContent_DOMNode"
,
setUp
:
function
(
t
){
var
div
=
dojo
.
doc
.
createElement
(
'div'
);
div
.
innerHTML
=
"setContent( [DOMNode] )"
;
div
.
setAttribute
(
'dojoType'
,
'dijit.TestWidget'
);
pane2
.
setContent
(
div
);
},
runTest
:
function
(
t
){
t
.
assertEqual
(
1
,
dijit
.
_Container
.
prototype
.
getChildren
.
call
(
pane2
).
length
);
},
tearDown
:
function
(
t
){
pane2
.
setContent
();
// clear content for next test
}
},
{
name
:
"setContent_NodeList"
,
setUp
:
function
(
t
){
var
div
=
dojo
.
doc
.
createElement
(
'div'
);
div
.
innerHTML
=
"<div dojotype='dijit.TestWidget'>above</div>"
+
"Testing!<div><p><span><b>Deep nested</b></span></p></div>"
+
"<div dojotype='dijit.TestWidget'>below</div>"
;
var
list
=
div
.
childNodes
;
pane2
.
setContent
(
div
.
childNodes
);
},
runTest
:
function
(
t
){
t
.
assertEqual
(
2
,
dijit
.
_Container
.
prototype
.
getChildren
.
call
(
pane2
).
length
);
//regular DOM check
var
children
=
pane2
.
domNode
.
childNodes
;
t
.
assertEqual
(
4
,
children
.
length
);
t
.
assertEqual
(
"Testing!"
,
children
[
1
].
nodeValue
);
t
.
assertEqual
(
"div"
,
children
[
2
].
nodeName
.
toLowerCase
());
t
.
assertEqual
(
"<p><span><b>deep nested</b></span></p>"
,
children
[
2
].
innerHTML
.
toLowerCase
());
}
},
{
name
:
"setContent_dojo_NodeList"
,
setUp
:
function
(
t
){
pane2
.
setContent
();
},
runTest
:
function
(
t
){
var
div
=
dojo
.
doc
.
createElement
(
'div'
);
div
.
innerHTML
=
"<div dojotype='dijit.TestWidget'>above</div>"
+
"Testing!<div><p><span><b>Deep nested</b></span></p></div>"
+
"<div dojotype='dijit.TestWidget'>below</div>"
;
var
list
=
new
dojo
.
NodeList
();
dojo
.
forEach
(
div
.
childNodes
,
function
(
n
){
list
.
push
(
n
.
cloneNode
(
true
));
});
pane2
.
setContent
(
list
);
t
.
assertEqual
(
4
,
pane2
.
domNode
.
childNodes
.
length
);
}
},
{
name
:
"extractContent"
,
runTest
:
function
(
t
){
var
def
=
pane2
.
extractContent
;
t
.
assertFalse
(
def
);
// test that it's actually working
pane2
.
extractContent
=
true
;
pane2
.
setContent
(
'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" '
+
'"http://www.w3.org/TR/html4/strict.dtd">'
+
'<html><head><style>body{font-weight:bold;}</style></head>'
+
'<body>extractContent test</body></html>'
);
t
.
assertEqual
(
"extractContent test"
,
pane2
.
domNode
.
innerHTML
);
// reset back to default
pane2
.
extractContent
=
def
;
}
},
/////////////////////////////////////////////////////////////////////////
// We assume that our network connection has a maximum of 1.5 sec latency
/////////////////////////////////////////////////////////////////////////
{
name
:
"setHref_loading"
,
timeout
:
1800
,
setUp
:
function
(
t
){
pane2
.
setHref
(
'getResponse.php?messId=1'
);
},
runTest
:
function
(
t
){
var
d
=
new
tests
.
Deferred
();
setTimeout
(
d
.
getTestCallback
(
function
(){
t
.
assertEqual
(
1
,
dijit
.
_Container
.
prototype
.
getChildren
.
call
(
pane2
).
length
);
})
,
1500
);
return
d
;
}
},
{
name
:
"setHref_then_cancel"
,
timeout
:
2800
,
setUp
:
function
(
t
){
pane2
.
setContent
();
// clear previous
},
runTest
:
function
(
t
){
var
msg
=
"This should NEVER be seen!"
;
pane2
.
setHref
(
'getResponse.php?delay=1000&message='
+
encodeURI
(
msg
));
var
d
=
new
t
.
Deferred
();
setTimeout
(
d
.
getTestCallback
(
function
(){
t
.
assertFalse
(
pane2
.
domNode
.
innerHTML
==
msg
);
}
),
2500
);
pane2
.
cancel
();
return
d
;
}
},
{
// test that setHref cancels a inflight setHref
name
:
"setHref_cancels_previous_setHref"
,
timeout
:
2800
,
setUp
:
function
(
t
){
pane2
.
setContent
();
},
runTest
:
function
(
t
){
var
msgCanceled
=
"This should be canceled"
;
pane2
.
setHref
(
"getResponse.php?delay=1000&message="
+
encodeURI
(
msgCanceled
));
var
msg
=
"This message should win over the previous"
;
setTimeout
(
function
(){
pane2
.
setHref
(
"getResponse.php?message="
+
encodeURI
(
msg
));
},
900
);
var
d
=
new
t
.
Deferred
();
setTimeout
(
d
.
getTestCallback
(
function
(){
t
.
assertEqual
(
msg
,
pane2
.
domNode
.
innerHTML
);
}
),
2500
);
return
d
;
}
},
{
name
:
"setContent_cancels_setHref"
,
timeout
:
2800
,
setUp
:
function
(
t
){
pane2
.
setContent
();
},
runTest
:
function
(
t
){
var
msgCanceled
=
"This message be canceled"
;
pane2
.
setHref
(
"getResponse.php?delay=1000&message="
+
encodeURI
(
msgCanceled
));
var
msg
=
"This message should win over the inflight one"
;
setTimeout
(
function
(){
pane2
.
setContent
(
msg
);
},
900
);
var
d
=
new
t
.
Deferred
();
setTimeout
(
d
.
getTestCallback
(
function
(){
t
.
assertEqual
(
msg
,
pane2
.
domNode
.
innerHTML
);
}
),
2500
);
return
d
;
}
},
{
name
:
"refresh"
,
timeout
:
1900
,
setUp
:
function
(
t
){
pane2
.
setHref
(
"getResponse.php?message="
+
encodeURI
(
'initial load'
));
},
runTest
:
function
(
t
){
var
msg
=
'refreshed load'
setTimeout
(
function
(){
pane2
.
href
=
"getResponse.php?message="
+
encodeURI
(
msg
);
pane2
.
refresh
();
},
100
);
var
d
=
new
t
.
Deferred
();
setTimeout
(
d
.
getTestCallback
(
function
(){
t
.
assertEqual
(
msg
,
pane2
.
domNode
.
innerHTML
);
}
),
1600
);
return
d
;
}
},
{
name
:
"preventCache"
,
timeout
:
1800
,
setUp
:
function
(
t
){
pane2
.
setContent
();
},
runTest
:
function
(
t
){
var
def
=
pane2
.
preventCache
;
t
.
assertFalse
(
def
);
pane2
.
preventCache
=
true
;
pane2
.
setHref
(
"getResponse.php?bounceGetStr=1&message="
+
encodeURI
(
'initial'
));
var
d
=
new
t
.
Deferred
();
setTimeout
(
d
.
getTestCallback
(
function
(){
var
getStr
=
dojo
.
byId
(
'bouncedGetStr'
);
t
.
assertTrue
(
getStr
.
innerHTML
.
indexOf
(
'preventCache='
)
>
-
1
);
}
),
1500
);
pane2
.
preventCache
=
def
;
return
d
;
},
tearDown
:
function
(
t
){
pane2
.
preventCache
=
false
;
}
},
{
name
:
"isLoaded"
,
timeout
:
1800
,
setUp
:
function
(
t
){
pane2
.
setContent
();
},
runTest
:
function
(
t
){
t
.
assertTrue
(
pane2
.
isLoaded
);
pane2
.
setHref
(
"getResponse.php?delay=300&message=test"
);
t
.
assertFalse
(
pane2
.
isLoaded
);
var
ilObj
=
{};
// a object to get a reference instead of copy
// probe after 200ms
setTimeout
(
function
(){
ilObj
.
probed
=
pane2
.
isLoaded
;
},
200
);
var
d
=
new
t
.
Deferred
();
setTimeout
(
d
.
getTestCallback
(
function
(){
t
.
assertTrue
(
pane2
.
isLoaded
);
t
.
assertFalse
(
ilObj
.
probed
);
}
),
1500
);
return
d
;
}
},
{
// test that we does'nt load a response if we are hidden
name
:
"wait_with_load_when_domNode_hidden"
,
timeout
:
1800
,
setUp
:
function
(
t
){
pane2
.
domNode
.
style
.
display
=
'none'
;
pane2
.
setContent
();
},
runTest
:
function
(
t
){
pane2
.
_msg
=
"This text should not be loaded until after widget is shown"
;
pane2
.
setHref
(
"getResponse.php?message="
+
encodeURI
(
pane2
.
_msg
));
var
d
=
new
t
.
Deferred
();
setTimeout
(
d
.
getTestCallback
(
function
(){
t
.
assertFalse
(
pane2
.
domNode
.
innerHTML
==
pane2
.
_msg
);
}
),
1500
);
return
d
;
},
tearDown
:
function
(
t
){
pane2
.
domNode
.
style
.
display
=
""
;
}
},
{
name
:
"onDownloadError"
,
timeout
:
1800
,
setUp
:
function
(
t
){
pane2
.
setContent
();
},
runTest
:
function
(
t
){
var
res
=
{};
var
msg
=
"Error downloading modified message"
;
var
orig
=
pane2
.
onDownloadError
;
pane2
.
onDownloadError
=
function
(){
return
msg
;
}
this
.
onError
=
function
(
e
){
res
.
onError
=
true
;
res
.
onError_Arg
=
!!
e
;
return
"This message should be ignored as it gets invoked by dojo.connect"
;
}
var
evtHandle
=
dojo
.
connect
(
pane2
,
'onDownloadError'
,
this
,
'onError'
);
// test onDownloadError
pane2
.
setHref
(
'nonexistant'
);
// do the test
var
d
=
new
t
.
Deferred
();
setTimeout
(
function
(){
try
{
if
(
!
res
.
onError
){
d
.
errback
(
new
doh
.
_AssertFailure
(
"onDownloadError was never invoked"
));
}
if
(
!
res
.
onError_Arg
){
d
.
errback
(
new
doh
.
_AssertFailure
(
"onDownloadError did'nt get any argument on invokation"
));
}
if
(
pane2
.
domNode
.
innerHTML
!=
msg
){
d
.
errback
(
new
doh
.
_AssertFailure
(
"custom errortext not set"
));
}
d
.
callback
(
true
);
}
catch
(
e
){
d
.
errback
(
e
);
}
finally
{
// reset to default
dojo
.
disconnect
(
evtHandle
);
pane2
.
onDownloadError
=
orig
;
}
},
1500
);
return
d
;
}
},
{
name
:
"onLoad|Unload_onDownloadStart|End"
,
timeout
:
2400
,
setUp
:
function
(
t
){
pane2
.
setContent
();
},
runTest
:
function
(
t
){
var
obj
=
{
start
:
function
(){
this
.
start_called
=
1
;
// check that custom message gets set
setTimeout
(
function
(){
obj
.
start_msg
=
(
pane2
.
domNode
.
innerHTML
==
msg
);
},
20
);
},
end
:
function
(){
this
.
end_called
=
1
;
},
load
:
function
(){
this
.
load_called
=
1
;
},
unload
:
function
(){
this
.
unload_called
=
1
;
}
};
//set custom message
var
origStart
=
pane2
.
onDownloadStart
;
var
msg
=
"custom downloadstart message"
;
pane2
.
onDownloadStart
=
function
(){
return
msg
;
};
var
startHandler
=
dojo
.
connect
(
pane2
,
'onDownloadStart'
,
obj
,
'start'
);
var
endHandler
=
dojo
.
connect
(
pane2
,
'onDownloadEnd'
,
obj
,
'end'
);
var
loadHandler
=
dojo
.
connect
(
pane2
,
'onLoad'
,
obj
,
'load'
);
var
unloadHandler
=
dojo
.
connect
(
pane2
,
'onUnload'
,
obj
,
'unload'
);
pane2
.
setHref
(
'getResponse.php?delay=400'
);
var
d
=
new
t
.
Deferred
();
setTimeout
(
function
(){
try
{
if
(
!
obj
.
start_called
){
d
.
errback
(
new
doh
.
_AssertFailure
(
'onDownloadStart not called'
));
}
if
(
!
obj
.
start_msg
){
d
.
errback
(
new
doh
.
_AssertFailure
(
'custom download message not set'
));
}
if
(
!
obj
.
end_called
){
d
.
errback
(
new
doh
.
_AssertFailure
(
'onDownloadEnd not called'
));
}
if
(
!
obj
.
unload_called
){
d
.
errback
(
new
doh
.
_AssertFailure
(
'onUnload not called'
));
}
if
(
!
obj
.
load_called
){
d
.
errback
(
new
doh
.
_AssertFailure
(
'onLoad not called'
));
}
d
.
callback
(
true
);
}
catch
(
e
){
d
.
errback
(
e
);
}
finally
{
dojo
.
disconnect
(
endHandler
);
dojo
.
disconnect
(
startHandler
);
dojo
.
disconnect
(
unloadHandler
);
dojo
.
disconnect
(
loadHandler
);
pane2
.
onDownloadStart
=
origStart
;
}
},
1900
);
return
d
;
}
}
]
);
var
pane3
,
st
,
tmp
;
doh
.
registerGroup
(
"child_to_StackContainer"
,
[
{
// TODO: this test should be moved to registerGroup setUp when #3504 is fixed
// We actually dont need to test anything here, just setUp
name
:
"setUp_StackContainer"
,
setUp
:
function
(
t
){
st
=
dojo
.
byId
(
'stackcontainer'
);
dojo
.
addClass
(
st
,
'box'
);
st
=
new
dijit
.
layout
.
StackContainer
({},
st
);
st
.
addChild
(
new
dijit
.
TestWidget
());
pane3
=
new
dijit
.
layout
.
ContentPane
({
href
:
'getResponse.php?delay=300&message=Loaded!'
},
dojo
.
doc
.
createElement
(
'div'
));
st
.
addChild
(
pane3
);
pane3
.
startup
();
// starts the ContentPane
},
runTest
:
function
(
t
){
t
.
assertTrue
(
st
);
t
.
assertEqual
(
2
,
st
.
getChildren
().
length
);
}
},
{
name
:
"preload_false_by_default"
,
runTest
:
function
(
t
){
t
.
assertFalse
(
pane3
.
isLoaded
);
t
.
assertEqual
(
''
,
pane3
.
domNode
.
innerHTML
);
}
},
{
name
:
"startLoad when selected"
,
timeout
:
2100
,
runTest
:
function
(
t
){
st
.
selectChild
(
pane3
);
var
d
=
new
t
.
Deferred
();
setTimeout
(
d
.
getTestCallback
(
function
(){
t
.
assertTrue
(
pane3
.
isLoaded
);
t
.
assertEqual
(
'Loaded!'
,
pane3
.
domNode
.
innerHTML
);
}
),
1800
);
return
d
;
}
},
{
name
:
"refreshOnShow"
,
timeout
:
2100
,
setUp
:
function
(
t
){
tmp
=
{
onUnload
:
function
(){
this
.
_unload_fired
=
1
;
},
onLoad
:
function
(){
this
.
_load_fired
=
1
;
}
};
tmp
.
unload
=
dojo
.
connect
(
pane3
,
'onUnload'
,
tmp
,
'onUnload'
);
tmp
.
load
=
dojo
.
connect
(
pane3
,
'onLoad'
,
tmp
,
'onLoad'
);
pane3
.
refreshOnShow
=
true
;
},
runTest
:
function
(
t
){
var
d
=
new
t
.
Deferred
();
st
.
back
();
st
.
forward
();
setTimeout
(
d
.
getTestCallback
(
function
(){
t
.
assertTrue
(
tmp
.
_unload_fired
);
t
.
assertTrue
(
tmp
.
_load_fired
);
t
.
assertEqual
(
'Loaded!'
,
pane3
.
domNode
.
innerHTML
);
}),
1800
);
return
d
;
},
tearDown
:
function
(){
dojo
.
disconnect
(
tmp
.
unload
);
dojo
.
disconnect
(
tmp
.
load
);
pane3
.
refreshOnShow
=
pane3
.
constructor
.
prototype
.
refreshOnShow
;
}
},
{
name
:
"downloadTriggeredOnStartup"
,
timeout
:
1800
,
runTest
:
function
(
t
){
var
href
=
'getResponse.php?message=Loaded!'
var
pane4
=
new
dijit
.
layout
.
ContentPane
({
href
:
href
},
dojo
.
doc
.
createElement
(
'div'
));
dojo
.
place
(
pane4
.
domNode
,
pane3
.
domNode
,
'after'
);
pane4
.
startup
();
// parser should call startup when djConfig.parseOnLoad=true
var
d
=
new
t
.
Deferred
();
setTimeout
(
d
.
getTestCallback
(
function
(){
t
.
assertEqual
(
'Loaded!'
,
pane4
.
domNode
.
innerHTML
);
pane4
.
destroy
();
}),
1500
);
return
d
;
}
}
]
);
doh
.
run
();
});
</
script
>
</
head
>
<
body
class
=
"tundra"
>
<
h2
>
dijit.layout.ContentPane test
</
h2
>
<
h3
>
Test designed to run on localhost (minimize impact from network latency)
</
h3
>
<
h4
>
This should NOT be parsed automatically
</
h4
>
<
div
dojoType
=
"dijit.layout.ContentPane"
class
=
"box"
hasShadow
=
"true"
id
=
"pane1"
>
<
div
dojoType
=
'dijit.TestWidget'
>
If this has a different background and a red border, the page parsed when it shouldn't
</
div
>
</
div
>
<
br
/><
h3
>
Testing ContentPane
</
h3
>
<
div
id
=
'pane2'
class
=
'box'
>
Even tough the entire page isn't scanned for widgets,
any sub widgets of a ContentPane will be created when a ContentPane is created
<
br
/>
<
span
id
=
"zero"
dojoType
=
'dijit.TestWidget'
>
This should have a backgroundcolor and a border
</
span
>
<
div
id
=
"one"
dojoType
=
"dijit._Widget"
></
div
>
<
div
id
=
"two"
dojoType
=
"dijit._Widget"
></
div
>
<
div
id
=
"three"
dojoType
=
"dijit._Widget"
></
div
>
</
div
>
<
br
/><
br
/>
<
div
id
=
'stackcontainer'
></
div
>
</
body
>
</
html
>
File Metadata
Details
Attached
Mime Type
text/html
Expires
Sat, Apr 26, 13:16 (19 h, 53 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27025
Default Alt Text
ContentPane.html (16 KB)
Attached To
rZEDHG ZedLegacy
Event Timeline
Log In to Comment