diff --git a/Tester/test2.config b/Tester/test2.config new file mode 100644 index 0000000..dc39e1a --- /dev/null +++ b/Tester/test2.config @@ -0,0 +1,95 @@ + +server { + +# this is a comment + + server_name server1; + + listen 0.0.0.0:4040; + + client_body_limit 1; + # Max == 18446744073709551615 / 1024 == 18014398509481984 + + index index.html; # this is another comment + + root ./Tester/www/; + + error_page 404 ./Tester/www/error_pages/error_404.html; + + + + location / { + allow_methods GET; + root ./Tester/www/; + } + + location /srcs/cgi-bin/ { + root ./srcs/cgi-bin/; + allow_methods POST; + cgi_ext php; + } + + location /list { + autoindex on; + } + + location /cgi-bin { + root ./srcs/cgi-bin/; + cgi_ext out php sh; + } + + location /upload { + allow_methods POST; + autoindex on; + upload_dir ./Tester/www/user_files/; + # root doesn’t matter if used only with POST and no CGI + } + + location /the_dump { + allow_methods GET DELETE; + root ./Tester/www/user_files; + autoindex on; + } + + location /redirect { + redirect 307 https://fr.wikipedia.org/wiki/Ketchup; +# redirect 307 https://www.youtube.com/watch?v=rG6b8gjMEkw; + } + + location /test { + index index1.html subdex.html; + root ./Tester/www/test/; + } + + location /stylesheet { + root ./stylesheet/; + } + + location /test/index1.html { + root ./Tester/www/test/index1.html; + index index1.html subdex.html; + } + + location /hilarious_404/ { + redirect 301 https://berniesanders.com/404/; + } + + location /test/something.html { + # allow_methods DELETE; + root ./Tester/www/test/something.html; + } + + location /test/test_deeper/ { +# allow_methods + root ./Tester/www/test/test_deeper/; + } + + location /test/test_deeper/super_deep { + root ./Tester/www/test/test_deeper/super_deep/; + } + +# location /test/test_deeper/something.html { +# allow_methods DELETE; +# } + +} diff --git a/Tester/test_body.sh b/Tester/test_body.sh new file mode 100644 index 0000000..63c4bde --- /dev/null +++ b/Tester/test_body.sh @@ -0,0 +1,84 @@ +#! /bin/bash + +test_name="Body Test" + +config_file="./Tester/test2.config" +port=4040 +host="localhost" + +#paths=("/" "/test" "/test/" "/list" "list" "/wrong") # you can add many +paths=("/") # you can add many +#methods=("GET" "POST" "DELETE") +methods=("GET") +httpz=("HTTP/1.1") + + + +l1="${methods[0]} ${paths[0]} ${httpz[0]}" + +header="Host: $host\n" +body="this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message \n" + +# turns out this does nothing... +#header_cycle=("Content-Length: 17" "Content-Length: 14" "Content-Length: 25") +#header_cycle=("Content-Length: 17" "") +#header_cycle=("Content-Length: 17") +#header_cycle=() +header+="Content-Length: 15" + +run_this_test() +{ + +# for i in "${header_cycle[@]}" + for i in "${paths[@]}" + do +# l1="${methods[0]} ${paths[0]} ${httpz[0]}" + l1="${methods[0]} $i ${httpz[0]}" +# header_send="$header$i" + header_send="$header" + request="$l1\n$header_send\n\n$body\n" + { + echo "----- $test_name -----" + echo -e "$_RED$request$_END" + } >> telnet.log + echo -e "$request" + sleep 1 + echo -e "\n" >> telnet.log + done + +} + + + +# expected result... + + +files=() + +file="expected_body_test.txt" +files+=("expected_body_test.txt") +#files+=("expected_path_root_test.txt") +#files+=("expected_path_testnoslash_test.txt") +#files+=("expected_path_testslash_test.txt") +#files+=("expected_path_list_test.txt") +#files+=("expected_path_badlist_test.txt") +#files+=("expected_path_wrong_test.txt") + + +#local_expected_test_file=$file +local_expected_test_files=() +test_path="" + +add_path() +{ + for i in "${files[@]}" + do + local_expected_test_files+=("$test_path$i") + done +} + +#add_path + + + + diff --git a/Tester/test_valid_uri.sh b/Tester/test_valid_uri.sh index ba273a5..00dc8fe 100644 --- a/Tester/test_valid_uri.sh +++ b/Tester/test_valid_uri.sh @@ -47,15 +47,7 @@ files=() file="expected_valid_uri_test.txt" files+=("expected_valid_files_test.txt") -#files+=("expected_path_root_test.txt") -#files+=("expected_path_testnoslash_test.txt") -#files+=("expected_path_testslash_test.txt") -#files+=("expected_path_list_test.txt") -#files+=("expected_path_badlist_test.txt") -#files+=("expected_path_wrong_test.txt") - -#local_expected_test_file=$file local_expected_test_files=() test_path="" diff --git a/compare.txt b/compare.txt index 2ff687b..689022d 100644 --- a/compare.txt +++ b/compare.txt @@ -1,114 +1,10 @@ telnet> Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. -HTTP/1.1 200 OK +HTTP/1.1 413 Content Too Large Server: Webserv/0.1 -Connection: keep-alive +Connection: close Content-Type: text/html; charset=UTF-8 -Content-Length: 193 +Content-Length: 197 - - -
-(˚3˚)
- - -HTTP/1.1 200 OK -Server: Webserv/0.1 -Connection: keep-alive -Content-Type: text/css; charset=UTF-8 -Content-Length: 43 - -h1 { - color: red; - text-align: center; -} -HTTP/1.1 200 OK -Server: Webserv/0.1 -Connection: keep-alive -Content-Type: text/html; charset=UTF-8 -Content-Length: 207 - - - - -(˚3˚)
- - -HTTP/1.1 200 OK -Server: Webserv/0.1 -Connection: keep-alive -Content-Type: text/html; charset=UTF-8 -Content-Length: 207 - - - - -(˚3˚)
- - -HTTP/1.1 200 OK -Server: Webserv/0.1 -Connection: keep-alive -Content-Type: text/html; charset=UTF-8 -Content-Length: 227 - - - - -(˚3˚)
- - -HTTP/1.1 200 OK -Server: Webserv/0.1 -Connection: keep-alive -Content-Type: text/html; charset=UTF-8 -Content-Length: 1277 - -.. -upload_form.html -form_get.html -kermit.ico -upload_form_single.html -Cagneyc_intro.gif -Van_Eyck_Portrait_Arnolfini.jpg -root.png -test -drill.jpg -punpun.png -favicon.ico -index.html -rfc2119.html -error_pages -rfc2119_files -
Le Webserv/0.1
\ No newline at end of file diff --git a/main_test.sh b/main_test.sh index 4049bfd..6cda415 100755 --- a/main_test.sh +++ b/main_test.sh @@ -22,7 +22,8 @@ _END='\033[0m' #test_file_names=("test_template.sh" "test_header.sh" "test_path.sh") #test_file_names=("test_method.sh" "test_header.sh" "test_path.sh") -test_file_names=("test_valid_uri.sh") +test_file_names=("test_body.sh") +#test_file_names=("test_valid_uri.sh") #test_file_names=("test_path.sh") test_files=() diff --git a/srcs/config/postProcessing.cpp b/srcs/config/postProcessing.cpp index 63d4861..dfe5ab4 100644 --- a/srcs/config/postProcessing.cpp +++ b/srcs/config/postProcessing.cpp @@ -23,11 +23,6 @@ void ConfigParser::_post_processing(std::vector