aboutsummaryrefslogtreecommitdiffstats
path: root/test/functional/cases/220_http.robot
blob: 7166b2a56e3a9308bb817079ccb06dfbe567834c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
*** Settings ***
Test Setup      Http Setup
Test Teardown   Http Teardown
Library         Process
Library         ${TESTDIR}/lib/rspamd.py
Resource        ${TESTDIR}/lib/rspamd.robot
Variables       ${TESTDIR}/lib/vars.py

*** Variables ***
# ${CONFIG}       ${TESTDIR}/configs/http.conf
${URL_TLD}      ${TESTDIR}/../lua/unit/test_tld.dat
${CONFIG}       ${TESTDIR}/configs/lua_test.conf
${MESSAGE}      ${TESTDIR}/messages/spam_message.eml
${RSPAMD_SCOPE}  Test

*** Test Cases ***
Simple HTTP request
  Check url  /request  get  HTTP_DNS_200  HTTP_200  method_get  hello world
  Check url  /request  post  HTTP_DNS_200  HTTP_200  method_post  hello post

*** Test Cases ***
HTTP request 403
  Check url  /error_403  get  HTTP_DNS_403  HTTP_403  method_get
  Check url  /error_403  post  HTTP_DNS_403  HTTP_403  method_post


*** Test Cases ***
HTTP timeout
  Check url  /timeout  get  HTTP_ERROR  HTTP_ERROR  method_get  IO timeout
  Check url  /timeout  post  HTTP_DNS_ERROR  HTTP_ERROR  method_post  IO timeout


*** Test Cases ***
HTTP empty response
  Check url  /empty  get  HTTP_ERROR  HTTP_ERROR  method_get  IO read error: unexpected EOF
  Check url  /empty  post  HTTP_DNS_ERROR  HTTP_ERROR  method_post  IO read error: unexpected EOF


*** Keywords ***
Lua Setup
  [Arguments]  ${LUA_SCRIPT}
  Set Global Variable  ${LUA_SCRIPT}
  Generic Setup

Http Setup
  Run Dummy Http
  Lua Setup  ${TESTDIR}/lua/http.lua

Http Teardown
  ${http_pid} =  Get File  /tmp/dummy_http.pid
  Shutdown Process With Children  ${http_pid}
  Normal Teardown

Run Dummy Http
  ${result} =  Start Process  ${TESTDIR}/util/dummy_http.py
  Wait Until Created  /tmp/dummy_http.pid


Check url
  [Arguments]  ${url}  ${method}  @{expect_results}
  ${result} =  Scan Message With Rspamc  --header=url:${url}  --header=method:${method}  ${MESSAGE}
  : FOR  ${expect}  IN  @{expect_results}
  \  Check Rspamc  ${result}  ${expect}