#![feature(once_cell_get_mut)]
extern crate core;
pub mod api;
pub mod components;
pub mod css;
pub mod pages;
pub mod static_components;
pub mod utils;
pub use app::*;
pub use utils::*;
#[cfg(test)]
mod tests {
use crate::defaults::PARAMS_TITLE;
use crate::testdata::{
create_test_form, TESTDATA_EXPECTED_FORMDATA, TESTDATA_FORMDATA_REQUEST,
TRIMMED_HTML_TITLE_RENDER,
};
use crate::{
rumtk_web_init_components, rumtk_web_render_component, rumtk_web_render_html,
rumtk_web_render_redirect, RUMWebRedirect, SharedAppState,
};
use crate::{RUMWebResponse, RUMWebTemplate};
use rumtk_core::strings::RUMStringConversions;
#[test]
fn test_compile_form() {
let expected_form = TESTDATA_EXPECTED_FORMDATA();
let form_data = create_test_form(TESTDATA_FORMDATA_REQUEST).expect("Form");
assert_eq!(form_data, expected_form, "Form results mismatch!");
}
#[test]
fn test_render_redirect_response() {
let url = "http://localhost/redirected";
let redirect =
rumtk_web_render_redirect!(RUMWebRedirect::Redirect(url.to_rumstring())).unwrap();
let redirect_code = redirect.get_code();
let redirect_url = redirect.get_url();
assert_eq!(redirect_url, url, "Redirect url mismatch!");
assert_eq!(redirect_code, 303, "Wrong redirect code!");
}
#[test]
fn test_render_redirect_response_temporary() {
let url = "http://localhost/redirected";
let redirect =
rumtk_web_render_redirect!(RUMWebRedirect::RedirectTemporary(url.to_rumstring()))
.unwrap();
let redirect_code = redirect.get_code();
let redirect_url = redirect.get_url();
assert_eq!(redirect_url, url, "Redirect url mismatch!");
assert_eq!(redirect_code, 307, "Wrong redirect code!");
}
#[test]
fn test_render_redirect_response_permanent() {
let url = "http://localhost/redirected";
let redirect =
rumtk_web_render_redirect!(RUMWebRedirect::RedirectPermanent(url.to_rumstring()))
.unwrap();
let redirect_code = redirect.get_code();
let redirect_url = redirect.get_url();
assert_eq!(redirect_url, url, "Redirect url mismatch!");
assert_eq!(redirect_code, 308, "Wrong redirect code!");
}
#[test]
fn test_render_standard_web_component() {
rumtk_web_init_components!(None);
let params = [(PARAMS_TITLE, "Hello World!")];
let state = SharedAppState::default();
let rendered = rumtk_web_render_component!("title", params, state).unwrap().to_rumstring();
assert_eq!(
rendered, TRIMMED_HTML_TITLE_RENDER,
"Commponent rendered improperly!"
);
}
#[test]
fn test_render() {
#[derive(RUMWebTemplate)]
#[template(source = "<div></div>", ext = "html")]
struct Div {}
let result = rumtk_web_render_html(Div {}, RUMWebRedirect::None).unwrap();
let expected = RUMWebResponse::into_get_response("<div></div>");
assert_eq!(result, expected, "Test Div template rendered improperly!");
}
#[test]
fn test_render_html_component() {}
}