|
// retoor <retoor@molodetz.nl>
|
|
|
|
import "web" for View, Response, Request
|
|
|
|
class TestView is View {
|
|
construct new() {}
|
|
|
|
get(request) {
|
|
return Response.json({"method": "GET"})
|
|
}
|
|
|
|
post(request) {
|
|
return Response.json({"method": "POST"})
|
|
}
|
|
|
|
put(request) {
|
|
return Response.json({"method": "PUT"})
|
|
}
|
|
|
|
delete(request) {
|
|
return Response.json({"method": "DELETE"})
|
|
}
|
|
}
|
|
|
|
class GetOnlyView is View {
|
|
construct new() {}
|
|
|
|
get(request) {
|
|
return Response.text("GET only")
|
|
}
|
|
}
|
|
|
|
var mockGet = Request.new_("GET", "/test", {}, {}, "", {}, null)
|
|
var mockPost = Request.new_("POST", "/test", {}, {}, "", {}, null)
|
|
var mockPut = Request.new_("PUT", "/test", {}, {}, "", {}, null)
|
|
var mockDelete = Request.new_("DELETE", "/test", {}, {}, "", {}, null)
|
|
var mockPatch = Request.new_("PATCH", "/test", {}, {}, "", {}, null)
|
|
|
|
var view = TestView.new()
|
|
|
|
var r1 = view.dispatch(mockGet)
|
|
System.print(r1.body.contains("GET")) // expect: true
|
|
|
|
var r2 = view.dispatch(mockPost)
|
|
System.print(r2.body.contains("POST")) // expect: true
|
|
|
|
var r3 = view.dispatch(mockPut)
|
|
System.print(r3.body.contains("PUT")) // expect: true
|
|
|
|
var r4 = view.dispatch(mockDelete)
|
|
System.print(r4.body.contains("DELETE")) // expect: true
|
|
|
|
var getOnlyView = GetOnlyView.new()
|
|
var r5 = getOnlyView.dispatch(mockGet)
|
|
System.print(r5.body) // expect: GET only
|
|
|
|
var r6 = getOnlyView.dispatch(mockPost)
|
|
System.print(r6.status) // expect: 405
|