test_server.ml (1936B)
1 open Learning 2 3 let test_server = Dream.test @@ Dream.router Server.routes 4 let root_response = test_server (Dream.request ~target:"/" "") 5 6 let course_0_response = 7 test_server (Dream.request ~target:"/course/course_0/" "") 8 9 let course_1_response = 10 test_server (Dream.request ~target:"/course/course_1/" "") 11 12 let course_0_page_0_response = 13 test_server (Dream.request ~target:"/course/course_0/page/0_example.sl" "") 14 15 let course_dne_response = 16 test_server (Dream.request ~target:"/course/this_course_doesnt_exist/" "") 17 18 let course_dne_page_dne_response = 19 test_server 20 (Dream.request 21 ~target:"/course/this_course_doesnt_exist/page/this_page_doesnt_exist.sl" 22 "") 23 24 let page_dne_response = 25 test_server 26 (Dream.request ~target:"/course/course_0/page/this_page_doesnt_exist.sl" "") 27 28 let empty_page_response = 29 test_server (Dream.request ~target:"/course/course_1/page/1_example.sl" "") 30 31 let test_server () = 32 assert (not (Server.is_safe_path "../")); 33 assert (not (Server.is_safe_path "..")); 34 assert (not (Server.is_safe_path "smt/../../../")); 35 assert (not (Server.is_safe_path "smt/../")); 36 assert (Server.is_safe_path "smt.sl"); 37 assert (Server.is_safe_path "smt"); 38 assert (Server.is_safe_path "0_course_1.sl"); 39 assert (Server.is_safe_path "1_course_1.sl"); 40 41 (* Requests to test dream server handling routes. *) 42 assert (Dream.status_to_int (Dream.status root_response) = 200); 43 assert (Dream.status_to_int (Dream.status course_0_response) = 200); 44 assert (Dream.status_to_int (Dream.status course_1_response) = 200); 45 assert (Dream.status_to_int (Dream.status course_dne_response) = 404); 46 assert (Dream.status_to_int (Dream.status course_dne_page_dne_response) = 404); 47 assert (Dream.status_to_int (Dream.status page_dne_response) = 404); 48 assert (Dream.status_to_int (Dream.status course_0_page_0_response) = 200); 49 assert (Dream.status_to_int (Dream.status empty_page_response) = 200)