use super::mount::{layoutClass, nodeName, resolveStyle};
use super::*;
#[test]
fn nodeNameUsesFallbackWhenIdIsEmpty() {
assert_eq!(nodeName(None, "Container", 2), "Container2");
assert_eq!(nodeName(Some("red-card"), "Container", 2), "redcard");
}
#[test]
fn styleResolutionAppliesLocalOverThemeClass() {
let theme = AppTheme::new().class(Component::Container, "card", |style| {
style.background(Color::rgb(1.0, 0.0, 0.0));
style.padding(12);
});
let mut local = Style::default();
local.padding = Some(Spacing::all(24));
let style = resolveStyle(&theme, Component::Container, Some("card"), &local);
assert_eq!(style.background, Some(Color::rgb(1.0, 0.0, 0.0)));
assert_eq!(style.padding, Some(Spacing::all(24)));
}
#[test]
fn layoutClassMatchesDirectionAndWrap() {
assert_eq!(
layoutClass(&Container::<crate::NoAction>::new()),
"VBoxContainer"
);
assert_eq!(
layoutClass(&Container::<crate::NoAction>::new().direction(ContainerDirection::Horizontal)),
"HBoxContainer"
);
assert_eq!(
layoutClass(&Container::<crate::NoAction>::new().wrap(ContainerWrap::Wrap)),
"VFlowContainer"
);
}
#[test]
fn requiredMethodHashesArePresent() {
let hashes = [
METHOD_OBJECT_NOTIFICATION,
METHOD_ENGINE_GET_MAIN_LOOP,
METHOD_SCENE_TREE_GET_ROOT,
METHOD_NODE_ADD_CHILD,
METHOD_NODE_SET_NAME,
METHOD_NODE_QUEUE_FREE,
METHOD_CONTROL_SET_ANCHORS_PRESET,
METHOD_CONTROL_SET_OFFSET,
METHOD_CONTROL_SET_CUSTOM_MINIMUM_SIZE,
METHOD_CONTROL_SET_H_SIZE_FLAGS,
METHOD_CONTROL_SET_V_SIZE_FLAGS,
METHOD_CONTROL_ADD_THEME_FONT_SIZE_OVERRIDE,
METHOD_CONTROL_ADD_THEME_COLOR_OVERRIDE,
METHOD_CONTROL_ADD_THEME_CONSTANT_OVERRIDE,
METHOD_CONTROL_SET_FOCUS_MODE,
METHOD_CONTROL_HAS_FOCUS,
METHOD_CONTROL_SET_MOUSE_FILTER,
METHOD_CONTROL_SET_DEFAULT_CURSOR_SHAPE,
METHOD_CONTROL_RELEASE_FOCUS,
METHOD_BASE_BUTTON_IS_PRESSED,
METHOD_BASE_BUTTON_IS_HOVERED,
METHOD_COLOR_RECT_SET_COLOR,
METHOD_LABEL_SET_TEXT,
METHOD_TEXTURE_RECT_SET_EXPAND_MODE,
METHOD_TEXTURE_RECT_SET_STRETCH_MODE,
METHOD_BUTTON_SET_TEXT,
METHOD_LINE_EDIT_SET_TEXT,
METHOD_LINE_EDIT_GET_TEXT,
METHOD_LINE_EDIT_SET_PLACEHOLDER,
METHOD_SCROLL_CONTAINER_SET_HORIZONTAL_SCROLL_MODE,
METHOD_SCROLL_CONTAINER_SET_VERTICAL_SCROLL_MODE,
METHOD_RESOURCE_LOADER_LOAD,
METHOD_IMAGE_LOAD,
METHOD_IMAGE_TEXTURE_SET_IMAGE,
METHOD_SHADER_SET_CODE,
METHOD_STYLE_BOX_FLAT_SET_BG_COLOR,
METHOD_STYLE_BOX_FLAT_SET_BORDER_COLOR,
METHOD_STYLE_BOX_FLAT_SET_BORDER_WIDTH_ALL,
METHOD_STYLE_BOX_FLAT_SET_CORNER_RADIUS_ALL,
METHOD_STYLE_BOX_FLAT_SET_SHADOW_COLOR,
METHOD_STYLE_BOX_FLAT_SET_SHADOW_SIZE,
METHOD_STYLE_BOX_FLAT_SET_SHADOW_OFFSET,
];
assert!(hashes.iter().all(|hash| *hash > 0));
}