@@ -50,10 +50,18 @@ describe('Feeding POST data from JS to PHP', function() {
50
50
] ) ;
51
51
} ;
52
52
it ( 'should handle a basic GET request' , function ( ) {
53
+ var serverOk = false ;
53
54
return makeServer ( {
54
55
path : '/index.html?abc=def&foo=bar+bat' ,
55
56
} , {
56
- source : 'var_dump($_GET)' ,
57
+ // We have to dereference $_SERVER in order to trigger the
58
+ // _testInitServer method.
59
+ source : 'var_dump($_SERVER["CONTEXT"] ? $_GET : $_GET)' ,
60
+ _testInitServer : function ( server ) {
61
+ serverOk = ( server . REQUEST_METHOD === 'GET' &&
62
+ server . REQUEST_URI === '/index.html?abc=def&foo=bar+bat' &&
63
+ server . QUERY_STRING === 'abc=def&foo=bar+bat' ) ;
64
+ } ,
57
65
} ) . spread ( function ( phpvalue , output , response ) {
58
66
should ( phpvalue ) . be . null ( ) ;
59
67
output . should . be . equal ( [
@@ -68,9 +76,11 @@ describe('Feeding POST data from JS to PHP', function() {
68
76
response . should . be . html ( ) ;
69
77
response . should . have . status ( 200 ) ;
70
78
response . should . have . header ( 'x-powered-by' ) ;
79
+ serverOk . should . be . true ( ) ;
71
80
} ) ;
72
81
} ) ;
73
82
it ( 'should handle a basic POST request' , function ( ) {
83
+ var serverOk = false ;
74
84
var postData = querystring . stringify ( {
75
85
msg : 'Hello World!' ,
76
86
foo : 'bar bat' ,
@@ -83,7 +93,14 @@ describe('Feeding POST data from JS to PHP', function() {
83
93
'Content-Length' : postData . length ,
84
94
} ,
85
95
} , {
86
- source : 'var_dump($_POST)' ,
96
+ // We have to dereference $_SERVER in order to trigger the
97
+ // _testInitServer method.
98
+ source : 'var_dump($_SERVER["CONTEXT"] ? $_POST : $_POST)' ,
99
+ _testInitServer : function ( server ) {
100
+ serverOk = ( server . REQUEST_METHOD === 'POST' &&
101
+ server . REQUEST_URI === '/post' &&
102
+ server . QUERY_STRING === '' ) ;
103
+ } ,
87
104
} , function ( request ) {
88
105
request . write ( postData ) ;
89
106
} ) . spread ( function ( phpvalue , output , response ) {
@@ -100,9 +117,11 @@ describe('Feeding POST data from JS to PHP', function() {
100
117
response . should . be . html ( ) ;
101
118
response . should . have . status ( 200 ) ;
102
119
response . should . have . header ( 'x-powered-by' ) ;
120
+ serverOk . should . be . true ( ) ;
103
121
} ) ;
104
122
} ) ;
105
123
it ( 'should handle cookies' , function ( ) {
124
+ var serverOk = false ;
106
125
return makeServer ( {
107
126
path : '/cookie/test' ,
108
127
headers : {
@@ -116,13 +135,20 @@ describe('Feeding POST data from JS to PHP', function() {
116
135
} , {
117
136
source : [
118
137
'call_user_func(function() {' ,
138
+ ' # ensure that _testInitServer is triggered' ,
139
+ ' $_SERVER["CONTEXT"];' ,
119
140
' # ensure we handle duplicate headers sent from PHP' ,
120
141
' setcookie("a", "b");' ,
121
142
' setcookie("c", "d", 0, "/");' ,
122
143
' var_dump($_COOKIE);' ,
123
144
' return 1;' ,
124
145
'})' ,
125
146
] . join ( '\n' ) ,
147
+ _testInitServer : function ( server ) {
148
+ serverOk = ( server . REQUEST_METHOD === 'GET' &&
149
+ server . REQUEST_URI === '/cookie/test' &&
150
+ server . QUERY_STRING === '' ) ;
151
+ } ,
126
152
} ) . spread ( function ( phpvalue , output , response ) {
127
153
should ( phpvalue ) . be . equal ( 1 ) ;
128
154
output . should . be . equal ( [
@@ -142,6 +168,7 @@ describe('Feeding POST data from JS to PHP', function() {
142
168
'a=b' ,
143
169
'c=d; path=/' ,
144
170
] ) ;
171
+ serverOk . should . be . true ( ) ;
145
172
} ) ;
146
173
} ) ;
147
174
} ) ;
0 commit comments