// Test web server functionality with trust validation
@trust("hybrid")
@web
@chain("ethereum")
service WebServerTest {
fn test_web_server() -> bool {
log::info("test", "=== Testing Web Server with Trust Validation ===");
// Create HTTP server
let server = web::create_server(3000);
log::info("test", "Created HTTP server on port 3000");
// Add routes
let route1 = web::add_route(server, "GET", "/", "home_handler");
let route2 = web::add_route(server, "GET", "/api/balance", "balance_handler");
let route3 = web::add_route(server, "POST", "/api/transfer", "transfer_handler");
log::info("test", "Added routes: " + route1 + ", " + route2 + ", " + route3);
// Add middleware
let middleware = web::add_middleware(server, "cors", "cors_handler", 1);
log::info("test", "Added middleware: " + middleware);
// Configure CORS
let cors_config = web::configure_cors(server, true);
log::info("test", "Configured CORS: " + cors_config);
// Serve static files
let static_files = web::serve_static_files(server, "/static");
log::info("test", "Configured static files: " + static_files);
// Start the server
let result = web::start_server(server);
match result {
Ok(message) => {
log::info("test", "✅ Web server started successfully: " + message);
return true;
}
Err(error) => {
log::error("test", "❌ Failed to start web server: " + error);
return false;
}
}
}
fn test_web_client() -> bool {
log::info("test", "=== Testing Web Client ===");
// Create HTTP client
let client = web::create_client("https://api.example.com");
log::info("test", "Created HTTP client for https://api.example.com");
// Make GET request
let get_response = web::get_request("https://api.example.com/data");
match get_response {
Ok(response) => {
log::info("test", "✅ GET request successful: " + response.status);
log::info("test", "Response body: " + response.body);
}
Err(error) => {
log::error("test", "❌ GET request failed: " + error);
return false;
}
}
// Make POST request
let post_data = {
"name": "test",
"value": 123
};
let post_response = web::post_request("https://api.example.com/data", post_data);
match post_response {
Ok(response) => {
log::info("test", "✅ POST request successful: " + response.status);
log::info("test", "Response body: " + response.body);
}
Err(error) => {
log::error("test", "❌ POST request failed: " + error);
return false;
}
}
return true;
}
fn test_frontend_framework() -> bool {
log::info("test", "=== Testing Frontend Framework ===");
// Create HTML page
let page = web::create_html_page("Test Page");
log::info("test", "Created HTML page: " + page);
// Add CSS file
let css = web::add_css_file(page, "/static/styles.css");
log::info("test", "Added CSS file: " + css);
// Add JS file
let js = web::add_js_file(page, "/static/app.js");
log::info("test", "Added JS file: " + js);
// Create element
let element = web::create_element("div");
log::info("test", "Created element: " + element);
// Add attributes
let attr1 = web::add_attribute(element, "class", "container");
let attr2 = web::add_attribute(element, "id", "main");
log::info("test", "Added attributes: " + attr1 + ", " + attr2);
// Add event handler
let event = web::add_event_handler(element, "click", "handleClick");
log::info("test", "Added event handler: " + event);
// Append child
let append = web::append_child(element, "child_element");
log::info("test", "Appended child: " + append);
// Render HTML
let rendered = web::render_html_page(page);
log::info("test", "Rendered HTML page: " + rendered);
return true;
}
fn run_all_tests() -> bool {
log::info("test", "=== Running All Web Tests ===");
let server_test = self.test_web_server();
let client_test = self.test_web_client();
let frontend_test = self.test_frontend_framework();
let all_passed = server_test && client_test && frontend_test;
if all_passed {
log::info("test", "🎉 All web tests passed!");
} else {
log::error("test", "❌ Some web tests failed");
}
return all_passed;
}
}