1alias(Version, Type, Port, Host, Node) -> 2 Opts = [], 3 ok = httpd_test_lib:verify_request(Type, Host, Port, Opts, Node, 4 "GET /pics/icon.sheet.gif " 5 ++ Version ++ "\r\n\r\n", 6 [{statuscode, 200}, 7 {header, "Content-Type","image/gif"}, 8 {header, "Server"}, 9 {header, "Date"}, 10 {version, Version}]), 11 12 ok = httpd_test_lib:verify_request(Type, Host, Port, Opts, Node, 13 "GET / " ++ Version ++ "\r\n\r\n", 14 [{statuscode, 200}, 15 {header, "Content-Type","text/html"}, 16 {header, "Server"}, 17 {header, "Date"}, 18 {version, Version}]), 19 20 ok = httpd_test_lib:verify_request(Type, Host, Port, Opts, Node, 21 "GET /misc/ " ++ Version ++ "\r\n\r\n", 22 [{statuscode, 200}, 23 {header, "Content-Type","text/html"}, 24 {header, "Server"}, 25 {header, "Date"}, 26 {version, Version}]), 27 28 %% Check redirection if trailing slash is missing. 29 ok = httpd_test_lib:verify_request(Type, Host, Port, Opts, Node, 30 "GET /misc "++ Version ++ "\r\n\r\n", 31 [{statuscode, 301}, 32 {header, "Location"}, 33 {header, "Content-Type","text/html"}, 34 {version, Version}]). 35 36 37head(Version, Type, Port, Host, Node) -> 38 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 39 "HEAD /index.html " ++ Version ++ "\r\n\r\n", 40 [{statuscode, 200}, 41 {version, Version}]). 42 43 44get(Version, Type, Port, Host, Node) -> 45 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 46 "GET /index.html " ++ Version ++ "\r\n\r\n", 47 [{statuscode, 200}, 48 {header, "Content-Type", "text/html"}, 49 {header, "Date"}, 50 {header, "Server"}, 51 {version, Version}]), 52 53 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 54 "GET /fsize.shtml " ++ Version ++ "\r\nHost:" 55 ++ Host ++ "\r\n\r\n", 56 [{statuscode, 200}, 57 {header, "Content-Type", "text/html"}, 58 {header, "Date"}, 59 {header, "Server"}]), 60 61 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 62 "GET /secret/dummy.html " 63 ++ Version ++ "\r\n\r\n", 64 [{statuscode, 401}, 65 {header, "WWW-Authenticate"}, 66 {version, Version}]). 67 68esi(Version, Type, Port, Host, Node) -> 69 %% Check "ErlScriptAlias" and "EvalScriptAlias" directives 70 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 71 "GET /eval?httpd_example:print(\"Hi!\") " 72 ++ Version ++ "\r\n\r\n", 73 [{statuscode, 200}, 74 {version, Version}]), 75 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 76 "GET /eval?not_allowed:print(\"Hi!\") " 77 ++ Version ++ "\r\n\r\n", 78 [{statuscode, 403}, 79 {version, Version}]), 80 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 81 "GET /eval?httpd_example:undef(\"Hi!\") " 82 ++ Version ++ "\r\n\r\n", 83 [{statuscode, 500}, 84 {version, Version}]), 85 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 86 "GET /cgi-bin/erl/httpd_example " 87 ++ Version ++ "\r\n\r\n", 88 [{statuscode, 400}, 89 {version, Version}]), 90 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 91 "GET /cgi-bin/erl/httpd_example:get " 92 ++ Version ++ "\r\n\r\n", 93 [{statuscode, 200}, 94 {version, Version}]), 95 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 96 "GET /cgi-bin/erl/httpd_example:" 97 "get?input=4711" 98 " HTTP/1.0\r\n\r\n", 99 [{statuscode, 200}, 100 {version, "HTTP/1.0"}]), 101 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 102 "GET /cgi-bin/erl/httpd_example:" 103 "post " ++ Version ++ "\r\n\r\n", 104 [{statuscode, 200}, 105 {version, Version}]), 106 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 107 "GET /cgi-bin/erl/not_allowed:post " 108 ++ Version ++ "\r\n\r\n", 109 [{statuscode, 403}, 110 {version, Version}]), 111 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 112 "GET /cgi-bin/erl/httpd_example:undef " 113 ++ Version ++ "\r\n\r\n", 114 [{statuscode, 404}, 115 {version, Version}]), 116 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 117 "GET /cgi-bin/erl/httpd_example/yahoo " 118 ++ Version ++ "\r\n\r\n", 119 [{statuscode, 302}, 120 {version, Version}]), 121 %% Check "ErlScriptNoCache" directive (default: false) 122 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 123 "GET /cgi-bin/erl/httpd_example:get " 124 ++ Version ++ "\r\n\r\n", 125 [{statuscode, 200}, 126 {no_header, "cache-control"}, 127 {version, "HTTP/1.0"}]). 128 129cgi(Version, Type, Port, Host, Node) -> 130 {Script, Script2, Script3} = 131 case test_server:os_type() of 132 {win32, _} -> 133 {"printenv.bat", "printenv.sh", "cgi_echo.exe"}; 134 _ -> 135 {"printenv.sh", "printenv.bat", "cgi_echo"} 136 end, 137 138 %% The length (> 100) is intentional 139 ok = httpd_test_lib: 140 verify_request(Type, Host, Port, Node, 141 "POST /cgi-bin/" ++ Script3 ++ 142 Version ++ " \r\n" 143 "Content-Length:100 \r\n\r\n " 144 "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" 145 "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" 146 "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" 147 "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" 148 "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" 149 "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" 150 "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" 151 "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" 152 "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" 153 "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" 154 "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" 155 "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" 156 "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" 157 "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" 158 "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" 159 "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" 160 "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" 161 " \r\n\r\n", 162 [{statuscode, 200}, 163 {version, Version}, 164 {header, "content-type", "text/plain"}]), 165 166 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 167 "GET /cgi-bin/"++ Script ++ 168 " " ++ Version ++ "\r\n\r\n", 169 [{statuscode, 200}, 170 {version, Version}]), 171 172 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 173 "GET /cgi-bin/not_there " ++ 174 Version ++ "\r\n\r\n", 175 [{statuscode, 404},{statuscode, 500}, 176 {version, Version}]), 177 178 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 179 "GET /cgi-bin/"++ Script ++ 180 "?Nisse:kkk?sss/lll " ++ Version ++ "\r\n\r\n", 181 [{statuscode, 200}, 182 {version, Version}]), 183 184 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 185 "POST /cgi-bin/"++ Script ++ 186 " HTTP/1.0\r\n\r\n", 187 [{statuscode, 200}, 188 {version, "HTTP/1.0"}]), 189 190 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 191 "GET /htbin/"++ Script ++ 192 " HTTP/1.0\r\n\r\n", 193 [{statuscode, 200}, 194 {version, "HTTP/1.0"}]), 195 196 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 197 "GET /htbin/not_there " 198 "HTTP/1.0\r\n\r\n", 199 [{statuscode, 404},{statuscode, 500}, 200 {version, "HTTP/1.0"}]), 201 202 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 203 "GET /htbin/"++ Script ++ 204 "?Nisse:kkk?sss/lll HTTP/1.0\r\n\r\n", 205 [{statuscode, 200}, 206 {version, "HTTP/1.0"}]), 207 208 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 209 "POST /htbin/"++ Script ++ 210 " HTTP/1.0\r\n\r\n", 211 [{statuscode, 200}, 212 {version, "HTTP/1.0"}]), 213 214 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 215 "POST /htbin/"++ Script ++ 216 " HTTP/1.0\r\n\r\n", 217 [{statuscode, 200}, 218 {version, "HTTP/1.0"}]), 219 220 %% Execute an existing, but bad CGI script.. 221 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 222 "POST /htbin/"++ Script2 ++ 223 " HTTP/1.0\r\n\r\n", 224 [{statuscode, 404}, 225 {version, "HTTP/1.0"}]), 226 227 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 228 "POST /cgi-bin/"++ Script2 ++ 229 " HTTP/1.0\r\n\r\n", 230 [{statuscode, 404}, 231 {version, "HTTP/1.0"}]), 232 233 %% Check "ScriptNoCache" directive (default: false) 234 ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 235 "GET /cgi-bin/" ++ Script ++ 236 " HTTP/1.0\r\n\r\n", 237 [{statuscode, 200}, 238 {no_header, "cache-control"}, 239 {version, "HTTP/1.0"}]). 240 241