1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 | "use strict";
|
14 |
|
15 | var fluid = require("infusion"),
|
16 | kettle = fluid.require("%kettle"),
|
17 | jqUnit = fluid.require("node-jqunit", require, "jqUnit");
|
18 |
|
19 | kettle.loadTestingSupport();
|
20 |
|
21 | fluid.registerNamespace("kettle.tests.HTTPMethods");
|
22 |
|
23 |
|
24 | fluid.defaults("kettle.tests.HTTPMethods.get.handler", {
|
25 | gradeNames: "kettle.request.http",
|
26 | invokers: {
|
27 | handleRequest: {
|
28 | funcName: "kettle.tests.HTTPMethods.get.handleRequest"
|
29 | }
|
30 | }
|
31 | });
|
32 |
|
33 | kettle.tests.HTTPMethods.get.handleRequest = function (request) {
|
34 | jqUnit.assert("GET request successfully received");
|
35 | request.events.onSuccess.fire({message: "GET response"});
|
36 | };
|
37 |
|
38 | kettle.tests.HTTPMethods.get.testResponse = function (data) {
|
39 | jqUnit.assertDeepEq("GET response successfully received", {message: "GET response"}, JSON.parse(data));
|
40 | };
|
41 |
|
42 |
|
43 | fluid.defaults("kettle.tests.HTTPMethods.post.handler", {
|
44 | gradeNames: "kettle.request.http",
|
45 | invokers: {
|
46 | handleRequest: {
|
47 | funcName: "kettle.tests.HTTPMethods.post.handleRequest"
|
48 | }
|
49 | }
|
50 | });
|
51 |
|
52 | kettle.tests.HTTPMethods.post.handleRequest = function (request) {
|
53 | jqUnit.assert("POST request successfully received");
|
54 | request.events.onSuccess.fire(request.req.body);
|
55 | };
|
56 |
|
57 | kettle.tests.HTTPMethods.post.testResponse = function (data) {
|
58 | jqUnit.assertDeepEq("POST response successfully received", {
|
59 | "msg": "I am a POST request"
|
60 | }, JSON.parse(data));
|
61 | };
|
62 |
|
63 |
|
64 | fluid.defaults("kettle.tests.HTTPMethods.put.handler", {
|
65 | gradeNames: "kettle.request.http",
|
66 | invokers: {
|
67 | handleRequest: {
|
68 | funcName: "kettle.tests.HTTPMethods.put.handleRequest"
|
69 | }
|
70 | }
|
71 | });
|
72 |
|
73 | kettle.tests.HTTPMethods.put.handleRequest = function (request) {
|
74 | jqUnit.assert("PUT request successfully received");
|
75 | request.events.onSuccess.fire(request.req.body);
|
76 | };
|
77 |
|
78 | kettle.tests.HTTPMethods.put.testResponse = function (data) {
|
79 | jqUnit.assertDeepEq("PUT response successfully received", {
|
80 | "msg": "I am a PUT request"
|
81 | }, JSON.parse(data));
|
82 | };
|
83 |
|
84 |
|
85 | fluid.defaults("kettle.tests.HTTPMethods.put201.handler", {
|
86 | gradeNames: "kettle.request.http",
|
87 | invokers: {
|
88 | handleRequest: {
|
89 | funcName: "kettle.tests.HTTPMethods.put201.handleRequest"
|
90 | }
|
91 | }
|
92 | });
|
93 |
|
94 | kettle.tests.HTTPMethods.put201.handleRequest = function (request) {
|
95 | jqUnit.assert("PUT request successfully received");
|
96 |
|
97 | request.events.onSuccess.fire(request.req.body, {
|
98 | statusCode: 201
|
99 | });
|
100 | };
|
101 |
|
102 | kettle.tests.HTTPMethods.put201.testResponse = function (request, data) {
|
103 | var response = request.nativeResponse;
|
104 | jqUnit.assertEquals("PUT response is 201 (Created)", 201, response.statusCode);
|
105 | jqUnit.assertDeepEq("PUT response successfully received", {
|
106 | "msg": "I am a PUT request"
|
107 | }, JSON.parse(data));
|
108 | };
|
109 |
|
110 |
|
111 | kettle.tests.HTTPMethods.testDefs = [{
|
112 | name: "HTTPMethods GET test",
|
113 | expect: 2,
|
114 | config: {
|
115 | configName: "kettle.tests.HTTPMethods.config",
|
116 | configPath: "%kettle/tests/configs"
|
117 | },
|
118 | components: {
|
119 | getRequest: {
|
120 | type: "kettle.test.request.http",
|
121 | options: {
|
122 | path: "/",
|
123 | method: "GET"
|
124 | }
|
125 | }
|
126 | },
|
127 | sequence: [{
|
128 | func: "{getRequest}.send"
|
129 | }, {
|
130 | event: "{getRequest}.events.onComplete",
|
131 | listener: "kettle.tests.HTTPMethods.get.testResponse"
|
132 | }]
|
133 | }, {
|
134 | name: "HTTPMethods POST test",
|
135 | expect: 2,
|
136 | config: {
|
137 | configName: "kettle.tests.HTTPMethods.config",
|
138 | configPath: "%kettle/tests/configs"
|
139 | },
|
140 | components: {
|
141 | postRequest: {
|
142 | type: "kettle.test.request.http",
|
143 | options: {
|
144 | path: "/",
|
145 | method: "POST"
|
146 | }
|
147 | }
|
148 | },
|
149 | sequence: [{
|
150 | func: "{postRequest}.send",
|
151 | args: { "msg": "I am a POST request" }
|
152 | }, {
|
153 | event: "{postRequest}.events.onComplete",
|
154 | listener: "kettle.tests.HTTPMethods.post.testResponse"
|
155 | }]
|
156 | }, {
|
157 | name: "HTTPMethods PUT test",
|
158 | expect: 2,
|
159 | config: {
|
160 | configName: "kettle.tests.HTTPMethods.config",
|
161 | configPath: "%kettle/tests/configs"
|
162 | },
|
163 | components: {
|
164 | putRequest: {
|
165 | type: "kettle.test.request.http",
|
166 | options: {
|
167 | path: "/",
|
168 | method: "PUT"
|
169 | }
|
170 | }
|
171 | },
|
172 | sequence: [{
|
173 | func: "{putRequest}.send",
|
174 | args: { "msg": "I am a PUT request" }
|
175 | }, {
|
176 | event: "{putRequest}.events.onComplete",
|
177 | listener: "kettle.tests.HTTPMethods.put.testResponse"
|
178 | }]
|
179 | }, {
|
180 | name: "HTTPMethods PUT & POST in sequence test",
|
181 | expect: 6,
|
182 | config: {
|
183 | configName: "kettle.tests.HTTPMethods.config",
|
184 | configPath: "%kettle/tests/configs"
|
185 | },
|
186 | components: {
|
187 | postRequest: {
|
188 | type: "kettle.test.request.http",
|
189 | options: {
|
190 | path: "/",
|
191 | method: "POST"
|
192 | }
|
193 | },
|
194 | putRequest: {
|
195 | type: "kettle.test.request.http",
|
196 | options: {
|
197 | path: "/",
|
198 | method: "PUT"
|
199 | }
|
200 | },
|
201 | postRequest2: {
|
202 | type: "kettle.test.request.http",
|
203 | options: {
|
204 | path: "/",
|
205 | method: "POST"
|
206 | }
|
207 | }
|
208 | },
|
209 | sequence: [{
|
210 | func: "{postRequest}.send",
|
211 | args: { "msg": "I am a POST request" }
|
212 | }, {
|
213 | event: "{postRequest}.events.onComplete",
|
214 | listener: "kettle.tests.HTTPMethods.post.testResponse"
|
215 | }, {
|
216 | func: "{putRequest}.send",
|
217 | args: { "msg": "I am a PUT request" }
|
218 | }, {
|
219 | event: "{putRequest}.events.onComplete",
|
220 | listener: "kettle.tests.HTTPMethods.put.testResponse"
|
221 | }, {
|
222 | func: "{postRequest2}.send",
|
223 | args: { "msg": "I am a POST request" }
|
224 | }, {
|
225 | event: "{postRequest2}.events.onComplete",
|
226 | listener: "kettle.tests.HTTPMethods.post.testResponse"
|
227 | }]
|
228 | }, {
|
229 | name: "HTTPMethods PUT test with alternate response status code",
|
230 | expect: 3,
|
231 | config: {
|
232 | configName: "kettle.tests.HTTPMethods.config",
|
233 | configPath: "%kettle/tests/configs"
|
234 | },
|
235 | components: {
|
236 | put201Request: {
|
237 | type: "kettle.test.request.http",
|
238 | options: {
|
239 | path: "/201",
|
240 | method: "PUT"
|
241 | }
|
242 | }
|
243 | },
|
244 | sequence: [{
|
245 | func: "{put201Request}.send",
|
246 | args: { "msg": "I am a PUT request" }
|
247 | }, {
|
248 | event: "{put201Request}.events.onComplete",
|
249 | listener: "kettle.tests.HTTPMethods.put201.testResponse",
|
250 |
|
251 |
|
252 | args: ["{put201Request}", "{arguments}.0"]
|
253 | }]
|
254 | }];
|