@@ -3,10 +3,28 @@ require([
3
3
'doh/main' ,
4
4
'dojo/request' ,
5
5
'dojo/node!http' ,
6
+ 'dojo/node!url' ,
6
7
'dojo/Deferred'
7
- ] , function ( require , doh , request , http , Deferred ) {
8
+ ] , function ( require , doh , request , http , url , Deferred ) {
9
+ var serverPort = 8142 ,
10
+ serverUrl = 'http://localhost:8124' ;
11
+
12
+ var responseDataMap = {
13
+ 'fooBar' : '{ "foo": "bar" }' ,
14
+ 'invalidJson' : '<not>JSON</not>'
15
+ } ;
16
+ function getRequestUrl ( dataKey ) {
17
+ return serverUrl + '?dataKey=' + dataKey ;
18
+ }
19
+ function getResponseData ( request ) {
20
+ var parseQueryString = true ;
21
+ var urlInfo = url . parse ( request . url , parseQueryString ) ;
22
+ return responseDataMap [ urlInfo . query . dataKey ] ;
23
+ }
24
+
8
25
var server = http . createServer ( function ( request , response ) {
9
- var body = '{ "foo": "bar" }' ;
26
+ var body = getResponseData ( request ) ;
27
+
10
28
response . writeHead ( 200 , {
11
29
'Content-Length' : body . length ,
12
30
'Content-Type' : 'application/json'
@@ -15,14 +33,16 @@ require([
15
33
response . end ( ) ;
16
34
} ) ;
17
35
36
+ function setUp ( ) { /* Do nothing */ }
37
+ function tearDown ( ) { server . close ( ) ; }
18
38
server . on ( 'listening' , function ( ) {
19
- doh . register ( " tests.request.node" , [
39
+ var tests = [
20
40
{
21
- name : " test" ,
41
+ name : ' test' ,
22
42
runTest : function ( t ) {
23
43
var d = new doh . Deferred ( ) ;
24
44
25
- request . get ( 'http://localhost:8124' , {
45
+ request . get ( getRequestUrl ( 'fooBar' ) , {
26
46
handleAs : 'json'
27
47
} ) . then ( d . getTestCallback ( function ( data ) {
28
48
t . is ( { foo : 'bar' } , data ) ;
@@ -31,15 +51,28 @@ require([
31
51
} ) ;
32
52
33
53
return d ;
34
- } ,
35
- tearDown : function ( ) {
36
- server . close ( ) ;
54
+ }
55
+ } ,
56
+ {
57
+ name : 'test-handler-exception' ,
58
+ runTest : function ( t ) {
59
+ var d = new doh . Deferred ( ) ;
60
+
61
+ request . get ( getRequestUrl ( 'invalidJson' ) , {
62
+ handleAs : 'json'
63
+ } ) . then ( function ( ) {
64
+ d . errback ( new Error ( 'Expected a handler exception.' ) ) ;
65
+ } , d . getTestCallback ( function ( err ) {
66
+ doh . assertTrue ( err instanceof SyntaxError ) ;
67
+ } ) ) ;
68
+
69
+ return d ;
37
70
}
38
71
}
39
- ] ) ;
72
+ ] ;
40
73
74
+ doh . register ( 'tests.request.node' , tests , setUp , tearDown ) ;
41
75
doh . run ( ) ;
42
76
} ) ;
43
-
44
77
server . listen ( 8124 ) ;
45
78
} ) ;
0 commit comments