test.lua revision d96cf063f04828102edbb0b4987c34b490e2731c
-- Licensed to the Apache Software Foundation (ASF) under one or more
-- contributor license agreements. See the NOTICE file distributed with
-- this work for additional information regarding copyright ownership.
-- The ASF licenses this file to You under the Apache License, Version 2.0
-- (the "License"); you may not use this file except in compliance with
-- the License. You may obtain a copy of the License at
--
-- http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.
require 'string'
function print_args(r, simple, complex)
local s = " %s: %s\n"
r:puts(" simple:\n")
for k, v in pairs(simple) do
r:puts(s:format(k, v))
end
s = " %s: "
r:puts(" complex:\n")
for k, ary in pairs(complex) do
r:puts(s:format(k))
for i=1, #ary do
r:puts(ary[i])
if i < #ary then r:puts(", ") end
end
r:puts("\n")
end
end
function debug_stuff(r)
r:debug("This is a debug log message")
-- r:info("This is an info log message")
-- r:notice("This is an notice log message")
-- r:warn("This is an warn log message")
-- r:err("This is an err log message")
-- r:alert("This is an alert log message")
-- r:crit("This is an crit log message")
-- r:emerg("This is an emerg log message")
end
function handle(r)
r:puts("hello Lua world\n")
r:puts("Query args:\n")
print_args(r, r:parseargs());
debug_stuff(r)
r:puts("HTTP Method:\n " .. r.method .. "\n")
if r.method == 'POST' then
print_args(r, r:parsebody())
end
require("other")
r:puts("loaded relative to script:\n ")
other.doit(r)
r:puts("loaded from LuaPackagePath:\n")
require("kangaroo");
kangaroo.hop(r);
end
function handle_foo(r)
r:puts("Handler FOO!\n")
r.status = 201
r:debug("set status to 201")
end
function handle_attributes(r)
local function pf(name)
r:puts(("%s: %s\n"):format(name, tostring(r[name])))
end
pf("status")
r.status = 201
pf("status")
r:puts("\n")
pf("content_type")
r.content_type = "text/plain?charset=ascii"
pf("content_type")
r:puts("\n")
pf("method")
pf("protocol")
pf("assbackwards")
pf("the_request")
pf("range")
pf("content_encoding")
pf("user")
pf("unparsed_uri")
pf("ap_auth_type")
pf("uri")
pf("filename")
pf("canonical_filename")
pf("path_info")
pf("args")
r:puts("\n")
end
function test_headers(r)
r:puts("test getting and setting headers here\n")
end
function handle_quietly(r)
r:puts("hello!")
end
function handle_regex(r)
r:puts("matched in handle_regex")
end
function handle_serverversion(r)
r:puts(apache2.version)
end
function handle_fixupstest(r)
r:puts("status is " .. r.status)
end