Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F885240
xhr.html
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
10 KB
Subscribers
None
xhr.html
View Options
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<
html
>
<
head
>
<
title
>
testing form and xhr utils
</
title
>
<
style
type
=
"text/css"
>
@
import
"../../resources/dojo.css"
;
</
style
>
<
script
type
=
"text/javascript"
src
=
"../../dojo.js"
djConfig
=
"isDebug: true"
></
script
>
<
script
type
=
"text/javascript"
>
dojo
.
require
(
"doh.runner"
);
dojo
.
addOnLoad
(
function
(){
var
f1fo
=
{
blah
:
"blah"
};
var
f1foStr
=
"blah=blah"
;
var
f1foJson
=
'{"blah": "blah"}'
;
var
f2fo
=
{
blah
:
"blah"
,
multi
:
[
"thud"
,
"thonk"
],
textarea
:
"textarea_value"
};
var
f2foStr
=
"blah=blah&multi=thud&multi=thonk&textarea=textarea_value"
;
var
f2foJson
=
'{"blah": "blah", "multi": ["thud", "thonk"], "textarea": "textarea_value"}'
;
var
f3fo
=
{
spaces
:
"string with spaces"
};
var
f3foStr
=
"spaces=string%20with%20spaces&"
;
var
f3foJson
=
'{"spaces": "string with spaces"}'
;
doh
.
register
(
"t"
,
[
function
formNodeToObject
(
t
){
t
.
is
(
f1fo
,
dojo
.
formToObject
(
dojo
.
byId
(
"f1"
)));
},
function
formIdToObject
(
t
){
t
.
is
(
f1fo
,
dojo
.
formToObject
(
"f1"
));
},
function
formToObjectWithMultiSelect
(
t
){
t
.
is
(
f2fo
,
dojo
.
formToObject
(
"f2"
));
},
function
objectToQuery
(
t
){
t
.
is
(
f1foStr
,
dojo
.
objectToQuery
(
f1fo
));
},
function
objectToQueryArr
(
t
){
t
.
is
(
f2foStr
,
dojo
.
objectToQuery
(
f2fo
));
},
function
formToQuery
(
t
){
t
.
is
(
f1foStr
,
dojo
.
formToQuery
(
"f1"
));
},
function
formToQueryArr
(
t
){
t
.
is
(
f2foStr
,
dojo
.
formToQuery
(
"f2"
));
},
function
formToJson
(
t
){
t
.
is
(
f1foJson
,
dojo
.
formToJson
(
"f1"
));
},
function
formToJsonArr
(
t
){
t
.
is
(
f2foJson
,
dojo
.
formToJson
(
"f2"
));
},
function
queryToObject
(
t
){
t
.
is
(
f1fo
,
dojo
.
queryToObject
(
f1foStr
));
t
.
is
(
f2fo
,
dojo
.
queryToObject
(
f2foStr
));
t
.
is
(
f3fo
,
dojo
.
queryToObject
(
f3foStr
));
},
function
textContentHandler
(
t
){
t
.
is
(
"foo bar baz "
,
dojo
.
_contentHandlers
.
text
({
responseText
:
"foo bar baz "
})
);
},
function
jsonContentHandler
(
t
){
var
jsonObj
=
{
foo
:
"bar"
,
baz
:
[
{
thonk
:
"blarg"
},
"xyzzy!"
]
};
t
.
is
(
jsonObj
,
dojo
.
_contentHandlers
.
json
({
responseText
:
dojo
.
toJson
(
jsonObj
)
})
);
},
function
jsonCFContentHandler
(
t
){
var
jsonObj
=
{
foo
:
"bar"
,
baz
:
[
{
thonk
:
"blarg"
},
"xyzzy!"
]
};
var
e
;
try
{
dojo
.
_contentHandlers
[
"json-comment-filtered"
]({
responseText
:
dojo
.
toJson
(
jsonObj
)
})
}
catch
(
ex
){
e
=
ex
;
}
finally
{
// did we fail closed?
t
.
is
((
typeof
e
),
"object"
);
}
t
.
is
(
jsonObj
,
dojo
.
_contentHandlers
[
"json-comment-filtered"
]({
responseText
:
"\tblag\n/*"
+
dojo
.
toJson
(
jsonObj
)
+
"*/\n\r\t\r"
})
);
},
function
jsContentHandler
(
t
){
var
jsonObj
=
{
foo
:
"bar"
,
baz
:
[
{
thonk
:
"blarg"
},
"xyzzy!"
]
};
t
.
is
(
jsonObj
,
dojo
.
_contentHandlers
[
"javascript"
]({
responseText
:
"("
+
dojo
.
toJson
(
jsonObj
)
+
")"
})
);
t
.
t
(
dojo
.
_contentHandlers
[
"javascript"
]({
responseText
:
"true;"
})
);
t
.
f
(
dojo
.
_contentHandlers
[
"javascript"
]({
responseText
:
"false;"
})
);
},
function
xmlContentHandler
(
t
){
var
fauxObj
=
{
foo
:
"bar"
,
baz
:
[
{
thonk
:
"blarg"
},
"xyzzy!"
]
};
t
.
is
(
fauxObj
,
dojo
.
_contentHandlers
[
"xml"
]({
responseXML
:
fauxObj
})
);
},
function
xhrGet
(
t
){
var
d
=
new
doh
.
Deferred
();
var
td
=
dojo
.
xhrGet
({
url
:
"xhr.html"
,
// self
preventCache
:
true
,
load
:
function
(
text
,
ioArgs
){
t
.
is
(
4
,
ioArgs
.
xhr
.
readyState
);
return
text
;
//must return a value here or the parent test deferred fails.
}
});
t
.
t
(
td
instanceof
dojo
.
Deferred
);
td
.
addCallback
(
d
,
"callback"
);
return
d
;
},
function
xhrGet404
(
t
){
var
d
=
new
doh
.
Deferred
();
try
{
var
td
=
dojo
.
xhrGet
({
url
:
"xhr_blarg.html"
,
// doesn't exist
error
:
function
(
err
,
ioArgs
){
t
.
is
(
404
,
ioArgs
.
xhr
.
status
);
return
err
;
//must return a value here or the parent test deferred fails.
}
});
// td.addErrback(d, "callback");
}
catch
(
e
){
d
.
callback
(
true
);
}
// return d;
},
function
xhrGetContent
(
t
){
var
d
=
new
doh
.
Deferred
();
var
td
=
dojo
.
xhrGet
({
url
:
"xhr.html?color=blue"
,
content
:
{
foo
:
[
"bar"
,
"baz"
],
thud
:
"thonk"
,
xyzzy
:
3
}
});
td
.
addCallback
(
function
(
text
){
// console.debug(td, td.xhr, td.args);
t
.
is
(
"xhr.html?color=blue&foo=bar&foo=baz&thud=thonk&xyzzy=3"
,
td
.
ioArgs
.
url
);
d
.
callback
(
true
);
});
return
d
;
},
function
xhrGetForm
(
t
){
var
d
=
new
doh
.
Deferred
();
var
td
=
dojo
.
xhrGet
({
url
:
"xhr.html"
,
// self
form
:
"f3"
});
td
.
addCallback
(
function
(
xhr
){
// console.debug(td.args.url);
t
.
is
(
"xhr.html?spaces=string%20with%20spaces"
,
td
.
ioArgs
.
url
);
d
.
callback
(
true
);
});
return
d
;
},
function
xhrGetFormWithContent
(
t
){
// ensure that stuff passed via content over-rides
// what's specified in the form
var
d
=
new
doh
.
Deferred
();
var
td
=
dojo
.
xhrGet
({
url
:
"xhr.html"
,
// self
form
:
"f3"
,
content
:
{
spaces
:
"blah"
}
});
td
.
addCallback
(
function
(
xhr
){
// console.debug(td.args.url);
t
.
is
(
"xhr.html?spaces=blah"
,
td
.
ioArgs
.
url
);
d
.
callback
(
true
);
});
return
d
;
},
function
xhrPost
(
t
){
var
d
=
new
doh
.
Deferred
();
var
td
=
dojo
.
xhrPost
({
url
:
"xhr.html?foo=bar"
,
// self
content
:
{
color
:
"blue"
},
handle
:
function
(
res
,
ioArgs
){
if
((
dojo
.
_isDocumentOk
(
ioArgs
.
xhr
))
||
(
ioArgs
.
xhr
.
status
==
405
)
){
d
.
callback
(
true
);
}
else
{
d
.
errback
(
false
);
}
}
});
// t.t(td instanceof dojo.Deferred);
return
d
;
},
function
xhrPostWithContent
(
t
){
var
d
=
new
doh
.
Deferred
();
var
td
=
dojo
.
xhrPost
({
url
:
"xhr.html"
,
content
:
{
foo
:
[
"bar"
,
"baz"
],
thud
:
"thonk"
,
xyzzy
:
3
}
});
td
.
addBoth
(
function
(
text
){
t
.
is
(
"foo=bar&foo=baz&thud=thonk&xyzzy=3"
,
td
.
ioArgs
.
query
);
if
(
(
dojo
.
_isDocumentOk
(
td
.
ioArgs
.
xhr
))
||
(
td
.
ioArgs
.
xhr
.
status
==
405
)
){
d
.
callback
(
true
);
}
else
{
d
.
errback
(
false
);
}
});
return
d
;
},
function
xhrPostForm
(
t
){
var
d
=
new
doh
.
Deferred
();
var
form
=
dojo
.
byId
(
"f4"
);
//Make sure we can send a form to its
//action URL. See trac: #2844.
var
td
=
dojo
.
xhrPost
({
form
:
form
});
td
.
addCallback
(
function
(){
d
.
callback
(
true
);
});
td
.
addErrback
(
function
(
error
){
d
.
callback
(
error
);
});
// t.t(td instanceof dojo.Deferred);
return
d
;
},
function
rawXhrPost
(
t
){
var
d
=
new
doh
.
Deferred
();
var
td
=
dojo
.
rawXhrPost
({
url
:
"xhr.html"
,
// self
postContent
:
"foo=bar&color=blue&height=average"
,
handle
:
function
(
res
,
ioArgs
){
if
((
dojo
.
_isDocumentOk
(
ioArgs
.
xhr
))
||
(
ioArgs
.
xhr
.
status
==
405
)
){
d
.
callback
(
true
);
}
else
{
d
.
errback
(
false
);
}
}
});
// t.t(td instanceof dojo.Deferred);
return
d
;
},
function
xhrPut
(
t
){
var
d
=
new
doh
.
Deferred
();
var
td
=
dojo
.
xhrPut
({
url
:
"xhrDummyMethod.php?foo=bar"
,
// self
content
:
{
color
:
"blue"
},
handle
:
function
(
res
,
ioArgs
){
if
((
dojo
.
_isDocumentOk
(
ioArgs
.
xhr
))
||
(
ioArgs
.
xhr
.
status
==
403
)
){
d
.
callback
(
true
);
}
else
{
d
.
errback
(
false
);
}
}
});
// t.t(td instanceof dojo.Deferred);
return
d
;
},
function
xhrDelete
(
t
){
var
d
=
new
doh
.
Deferred
();
var
td
=
dojo
.
xhrDelete
({
url
:
"xhrDummyMethod.php"
,
// self
preventCache
:
true
,
handle
:
function
(
res
,
ioArgs
){
if
((
dojo
.
_isDocumentOk
(
ioArgs
.
xhr
))
||
(
ioArgs
.
xhr
.
status
==
403
)
){
d
.
callback
(
true
);
}
else
{
d
.
errback
(
false
);
}
}
});
// t.t(td instanceof dojo.Deferred);
return
d
;
},
function
xhrCancel
(
t
){
var
d
=
new
doh
.
Deferred
();
var
td
=
dojo
.
xhrPost
({
url
:
"xhrDummyMethod.php"
,
// self
handle
:
function
(
res
,
ioArgs
){
if
(
res
instanceof
Error
&&
res
.
dojoType
==
"cancel"
){
d
.
callback
(
true
);
}
else
{
d
.
errback
(
false
);
}
}
});
td
.
cancel
();
// t.t(td instanceof dojo.Deferred);
return
d
;
}
// FIXME: need to add tests for wrapForm
]
);
doh
.
run
();
});
</
script
>
</
head
>
<
body
>
<
form
id
=
"f1"
style
=
"border: 1px solid black;"
>
<
input
type
=
"text"
name
=
"blah"
value
=
"blah"
>
<
input
type
=
"text"
name
=
"no_value"
value
=
"blah"
disabled
>
<
input
type
=
"button"
name
=
"no_value2"
value
=
"blah"
>
</
form
>
<
form
id
=
"f2"
style
=
"border: 1px solid black;"
>
<
input
type
=
"text"
name
=
"blah"
value
=
"blah"
>
<
input
type
=
"text"
name
=
"no_value"
value
=
"blah"
disabled
>
<
input
type
=
"button"
name
=
"no_value2"
value
=
"blah"
>
<
select
type
=
"select"
multiple
name
=
"multi"
size
=
"5"
>
<
option
value
=
"blah"
>
blah
</
option
>
<
option
value
=
"thud"
selected
>
thud
</
option
>
<
option
value
=
"thonk"
selected
>
thonk
</
option
>
</
select
>
<
textarea
name
=
"textarea"
>
textarea_value
</
textarea
>
</
form
>
<
form
id
=
"f3"
style
=
"border: 1px solid black;"
>
<
input
type
=
"hidden"
name
=
"spaces"
value
=
"string with spaces"
>
</
form
>
<
form
id
=
"f4"
style
=
"border: 1px solid black;"
action
=
"xhrDummyMethod.php"
>
<
input
type
=
"hidden"
name
=
"action"
value
=
"Form with input named action"
>
</
form
>
</
body
>
</
html
>
File Metadata
Details
Attached
Mime Type
text/html
Expires
Sun, Apr 6, 14:13 (2 w, 1 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27181
Default Alt Text
xhr.html (10 KB)
Attached To
rZED Zed
Event Timeline
Log In to Comment