1#![feature(once_cell_get_mut)]
22extern crate core;
23
24pub mod api;
25pub mod components;
26pub mod css;
27pub mod pages;
28pub mod static_components;
29pub mod utils;
30
31pub use app::*;
32pub use utils::*;
33
34#[cfg(test)]
38mod tests {
39 use crate::defaults::PARAMS_TITLE;
40 use crate::testdata::{
41 create_test_form, TESTDATA_EXPECTED_FORMDATA, TESTDATA_FORMDATA_REQUEST,
42 TRIMMED_HTML_TITLE_RENDER,
43 };
44 use crate::{
45 rumtk_web_init_components, rumtk_web_render_component, rumtk_web_render_html,
46 rumtk_web_render_redirect, RUMWebRedirect, SharedAppState,
47 };
48 use crate::{RUMWebResponse, RUMWebTemplate};
49 use rumtk_core::strings::RUMStringConversions;
50
51 #[test]
53 fn test_compile_form() {
54 let expected_form = TESTDATA_EXPECTED_FORMDATA();
55 let form_data = create_test_form(TESTDATA_FORMDATA_REQUEST).expect("Form");
56
57 assert_eq!(form_data, expected_form, "Form results mismatch!");
58 }
59
60 #[test]
62 fn test_render_redirect_response() {
63 let url = "http://localhost/redirected";
64 let redirect =
65 rumtk_web_render_redirect!(RUMWebRedirect::Redirect(url.to_rumstring())).unwrap();
66 let redirect_code = redirect.get_code();
67 let redirect_url = redirect.get_url();
68 assert_eq!(redirect_url, url, "Redirect url mismatch!");
69 assert_eq!(redirect_code, 303, "Wrong redirect code!");
70 }
71
72 #[test]
73 fn test_render_redirect_response_temporary() {
74 let url = "http://localhost/redirected";
75 let redirect =
76 rumtk_web_render_redirect!(RUMWebRedirect::RedirectTemporary(url.to_rumstring()))
77 .unwrap();
78 let redirect_code = redirect.get_code();
79 let redirect_url = redirect.get_url();
80 assert_eq!(redirect_url, url, "Redirect url mismatch!");
81 assert_eq!(redirect_code, 307, "Wrong redirect code!");
82 }
83
84 #[test]
85 fn test_render_redirect_response_permanent() {
86 let url = "http://localhost/redirected";
87 let redirect =
88 rumtk_web_render_redirect!(RUMWebRedirect::RedirectPermanent(url.to_rumstring()))
89 .unwrap();
90 let redirect_code = redirect.get_code();
91 let redirect_url = redirect.get_url();
92 assert_eq!(redirect_url, url, "Redirect url mismatch!");
93 assert_eq!(redirect_code, 308, "Wrong redirect code!");
94 }
95
96 #[test]
97 fn test_render_standard_web_component() {
98 rumtk_web_init_components!(None);
99
100 let params = [(PARAMS_TITLE, "Hello World!")];
101 let state = SharedAppState::default();
102 let rendered = rumtk_web_render_component!("title", params, state).unwrap().to_rumstring();
103
104 assert_eq!(
105 rendered, TRIMMED_HTML_TITLE_RENDER,
106 "Commponent rendered improperly!"
107 );
108 }
109
110 #[test]
111 fn test_render() {
112 #[derive(RUMWebTemplate)]
113 #[template(source = "<div></div>", ext = "html")]
114 struct Div {}
115
116 let result = rumtk_web_render_html(Div {}, RUMWebRedirect::None).unwrap();
117 let expected = RUMWebResponse::into_get_response("<div></div>");
118
119 assert_eq!(result, expected, "Test Div template rendered improperly!");
120 }
121
122 #[test]
124 fn test_render_html_component() {}
125}