Fail unresolved component renders with HTTP 500
This commit is contained in:
@@ -329,6 +329,21 @@ void cli_run_site_suite(bool skip_local_service_pages = false)
|
||||
|
||||
void cli_run_security_smoke()
|
||||
{
|
||||
CliHttpResponse missing_component = cli_frontend("/tests/component_failure.uce");
|
||||
cli_test_case("uce_component_failure:component_render missing target is HTTP 500",
|
||||
missing_component.status == 500 && cli_contains(missing_component.body, "component not found: components/does-not-exist"),
|
||||
"status=" + std::to_string(missing_component.status) + " body=" + cli_truncate(missing_component.body));
|
||||
|
||||
CliHttpResponse missing_captured_component = cli_frontend("/tests/component_failure.uce?mode=capture");
|
||||
cli_test_case("uce_component_failure:component missing target is HTTP 500",
|
||||
missing_captured_component.status == 500 && cli_contains(missing_captured_component.body, "component not found: components/does-not-exist"),
|
||||
"status=" + std::to_string(missing_captured_component.status) + " body=" + cli_truncate(missing_captured_component.body));
|
||||
|
||||
CliHttpResponse optional_component = cli_frontend("/tests/component_failure.uce?mode=optional");
|
||||
cli_test_case("uce_component_failure:component_exists keeps optional lookup non-fatal",
|
||||
optional_component.status == 200 && optional_component.body == "optional component absent",
|
||||
"status=" + std::to_string(optional_component.status) + " body=" + cli_truncate(optional_component.body));
|
||||
|
||||
CliHttpResponse dotdot = cli_direct_http("/../site/demo/hello.uce");
|
||||
cli_test_case("uce_security_smoke:direct HTTP rejects dot-dot script traversal", dotdot.status == 404 && !cli_contains(dotdot.body, "hello world"), "direct HTTP dot-dot traversal returned HTTP " + std::to_string(dotdot.status));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user