1
0
Fork 0
mirror of synced 2024-06-02 10:35:02 +12:00

More tests

This commit is contained in:
Rafał Mikrut 2022-07-19 17:15:18 +02:00
parent 61ce6aa987
commit 37760bf30f
8 changed files with 132 additions and 75 deletions

100
Cargo.lock generated
View file

@ -455,9 +455,9 @@ dependencies = [
[[package]]
name = "crypto-common"
version = "0.1.5"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2ccfd8c0ee4cce11e45b3fd6f9d5e69e0cc62912aa6a0cb1bf4617b0eba5a12f"
checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
dependencies = [
"generic-array",
"typenum",
@ -491,7 +491,7 @@ dependencies = [
"humansize",
"i18n-embed",
"i18n-embed-fl",
"image 0.24.2",
"image 0.24.3",
"image_hasher",
"imagepipe",
"infer",
@ -528,7 +528,7 @@ dependencies = [
"humansize",
"i18n-embed",
"i18n-embed-fl",
"image 0.24.2",
"image 0.24.3",
"image_hasher",
"once_cell",
"open",
@ -1217,9 +1217,9 @@ checksum = "65043da274378d68241eb9a8f8f8aa54e349136f7b8e12f63e3ef44043cc30e1"
[[package]]
name = "hashbrown"
version = "0.12.2"
version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "607c8a29735385251a339424dd462993c0fed8fa09d378f259377df08c126022"
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
[[package]]
name = "heck"
@ -1352,9 +1352,9 @@ dependencies = [
[[package]]
name = "image"
version = "0.24.2"
version = "0.24.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28edd9d7bc256be2502e325ac0628bde30b7001b9b52e0abe31a1a9dc2701212"
checksum = "7e30ca2ecf7666107ff827a8e481de6a132a9b687ed3bb20bb1c144a36c00964"
dependencies = [
"bytemuck",
"byteorder",
@ -1362,7 +1362,6 @@ dependencies = [
"exr",
"gif",
"jpeg-decoder 0.2.6",
"num-iter",
"num-rational 0.4.1",
"num-traits",
"png 0.17.5",
@ -1377,7 +1376,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c887ed1c9c32854da1c3c9539711814ae48e53926400c5e1ceac0f0491f59a72"
dependencies = [
"base64 0.20.0-alpha.1",
"image 0.24.2",
"image 0.24.3",
"rustdct 0.5.1",
"serde",
"transpose",
@ -1391,7 +1390,7 @@ checksum = "7af2d89e882e4be2e9b1ef50454aaa8da2c58924960e24521145f16ea4f7fd1c"
dependencies = [
"bincode",
"blake3",
"image 0.24.2",
"image 0.24.3",
"lazy_static",
"log",
"multicache",
@ -1822,9 +1821,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
[[package]]
name = "open"
version = "3.0.1"
version = "3.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "360bcc8316bf6363aa3954c3ccc4de8add167b087e0259190a043c9514f910fe"
checksum = "f23a407004a1033f53e93f9b45580d14de23928faad187384f891507c9b0c045"
dependencies = [
"pathdiff",
"windows-sys",
@ -1838,9 +1837,9 @@ checksum = "91409674c628d07a6b4b79cc877c6b63ba5ccbfbadddd77ca822f55069ed1bd4"
[[package]]
name = "os_str_bytes"
version = "6.1.0"
version = "6.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21326818e99cfe6ce1e524c2a805c189a99b5ae555a35d19f9a284b427d86afa"
checksum = "648001efe5d5c0102d8cea768e348da85d90af8ba91f0bea908f157951493cd4"
[[package]]
name = "pango"
@ -2425,9 +2424,9 @@ dependencies = [
[[package]]
name = "serde_yaml"
version = "0.8.25"
version = "0.8.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1ec0091e1f5aa338283ce049bd9dfefd55e1f168ac233e85c1ffe0038fb48cbe"
checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b"
dependencies = [
"indexmap",
"ryu",
@ -2472,9 +2471,12 @@ dependencies = [
[[package]]
name = "slab"
version = "0.4.6"
version = "0.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32"
checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
dependencies = [
"autocfg",
]
[[package]]
name = "smallvec"
@ -2542,9 +2544,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
[[package]]
name = "symphonia"
version = "0.5.0"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eb30457ee7a904dae1e4ace25156dcabaf71e425db318e7885267f09cd8fb648"
checksum = "17033fe05e4f7f10a6ad602c272bafd2520b2e5cdd9feb61494d9cdce08e002f"
dependencies = [
"lazy_static",
"symphonia-bundle-flac",
@ -2563,9 +2565,9 @@ dependencies = [
[[package]]
name = "symphonia-bundle-flac"
version = "0.5.0"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f34f8f90825ee2692df0ee64981312267d6cf640358c3db7a4805d1805340665"
checksum = "044f655337892b217d6df1d8336ee119414c3886c89c72e0156989cd2ad7934a"
dependencies = [
"log",
"symphonia-core",
@ -2575,9 +2577,9 @@ dependencies = [
[[package]]
name = "symphonia-bundle-mp3"
version = "0.5.0"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9130cae661447f234b58759d74d23500e9c95697b698589b34196cb0fb488a61"
checksum = "db5d3d53535ae2b7d0e39e82f683cac5398a6c8baca25ff1183e107d13959d3e"
dependencies = [
"bitflags",
"lazy_static",
@ -2588,9 +2590,9 @@ dependencies = [
[[package]]
name = "symphonia-codec-aac"
version = "0.5.0"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96671dbcf83a4415e899812c5820dd26f48b9a6fece8b8d680e3004553080468"
checksum = "9e9431b89428c31b01428563df18e52b1aff7c49e71fb80b2fa8e85632094776"
dependencies = [
"lazy_static",
"log",
@ -2599,9 +2601,9 @@ dependencies = [
[[package]]
name = "symphonia-codec-alac"
version = "0.5.0"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a95d0cc9d94c55d9467e71e26990e509bd5a602fabde3ee422d87f77bbda860a"
checksum = "452438d6f32bf07f2f55f35371c3c8e9cce4a028a08b47fb301001f85a950f02"
dependencies = [
"log",
"symphonia-core",
@ -2609,9 +2611,9 @@ dependencies = [
[[package]]
name = "symphonia-codec-pcm"
version = "0.5.0"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0812a197602dff1f963ff212f174c4aa4d9b695d6511ba7a8fe2470296cf8310"
checksum = "17cca412c954abda6ab62b5e51223568eb604ed8266ec777d99e1d63c608443c"
dependencies = [
"log",
"symphonia-core",
@ -2619,9 +2621,9 @@ dependencies = [
[[package]]
name = "symphonia-codec-vorbis"
version = "0.5.0"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "746fc459966b37e277565f9632e5ffd6cbd83d9381152727123f68484cb8f9c4"
checksum = "323b94435a1a807e1001e29490aeaef2660fb72b145d47497e8429a6cb1d67c3"
dependencies = [
"log",
"symphonia-core",
@ -2630,9 +2632,9 @@ dependencies = [
[[package]]
name = "symphonia-core"
version = "0.5.0"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1edcb254d25e02b688b6f8a290a778153fa5f29674ac50773d03e0a16060391d"
checksum = "199a6417cd4115bac79289b64b859358ea050b7add0ceb364dc991f628c5b347"
dependencies = [
"arrayvec",
"bitflags",
@ -2643,9 +2645,9 @@ dependencies = [
[[package]]
name = "symphonia-format-isomp4"
version = "0.5.0"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a335816c1840bf3ce92b968a93b7b5c14a5d74737ad9ed63567ea451eac1951"
checksum = "1dce84cea63247dfcc43e12edf2d19406fbb62ebc24bac1b8e6c49f1ba67b890"
dependencies = [
"encoding_rs",
"log",
@ -2656,9 +2658,9 @@ dependencies = [
[[package]]
name = "symphonia-format-mkv"
version = "0.5.0"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "901a52e62285b3794a3ecb9b8a00b1d92d639e0dabf51eac0823a16493752726"
checksum = "f405400330b2cc0c70e19515198628ae9a6a99a59c77800541127d4cff113b96"
dependencies = [
"lazy_static",
"log",
@ -2669,9 +2671,9 @@ dependencies = [
[[package]]
name = "symphonia-format-ogg"
version = "0.5.0"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "00f5b92a2a6370873d9dbe3326dad1bf795b3151efcadca6e5f47d732499a518"
checksum = "8d2f741469a0f103607ed1f2605f7f00b13ba044ea9ddc616764558c6d3d9b7d"
dependencies = [
"log",
"symphonia-core",
@ -2681,9 +2683,9 @@ dependencies = [
[[package]]
name = "symphonia-format-wav"
version = "0.5.0"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "66b2016576a9f7e5e95f9354993116458170a9077845a908ee67a4c81e8072c0"
checksum = "5f9d771aa6889f05b771e629110f6a60b5e1c0ad580fc41da574bc490fbe2822"
dependencies = [
"log",
"symphonia-core",
@ -2692,9 +2694,9 @@ dependencies = [
[[package]]
name = "symphonia-metadata"
version = "0.5.0"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f04ee665c99fd2b919b87261c86a5312e996b720ca142646a163d9583e72bd0e"
checksum = "6ed71acf6b5e6e8bee1509597b86365a06b78c1d73218df47357620a6fe5997b"
dependencies = [
"encoding_rs",
"lazy_static",
@ -2704,9 +2706,9 @@ dependencies = [
[[package]]
name = "symphonia-utils-xiph"
version = "0.5.0"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "abadfa53359fa437836f2554a0019dd06bfdf742fbb735d0645db3b6c5a763e0"
checksum = "73cbb0766ce77a8aef535f9438db645e7b6f1b2c4cf3be9bf246b4e11a7d5531"
dependencies = [
"symphonia-core",
"symphonia-metadata",
@ -2964,9 +2966,9 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
[[package]]
name = "unicode-ident"
version = "1.0.1"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c"
checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7"
[[package]]
name = "unicode-normalization"

View file

@ -21,7 +21,7 @@ directories-next = "2.0.0"
# Needed by similar images
image_hasher = "1.0.0"
bk-tree = "0.4.0"
image = "0.24.2"
image = "0.24.3"
hamming = "0.1.3"
# Needed by same music

View file

@ -26,10 +26,10 @@ futures = "0.3.21"
directories-next = "2.0.0"
# For opening files
open = "3.0.1"
open = "3.0.2"
# To get image preview
image = "0.24.2"
image = "0.24.3"
# To be able to use custom select
regex = "1.6.0"

View file

@ -11,7 +11,9 @@ use image::DynamicImage;
use crate::flg;
use crate::gui_structs::gui_data::GuiData;
use crate::help_functions::{count_number_of_groups, get_all_children, get_full_name_from_path_name, get_max_file_name, get_pixbuf_from_dynamic_image, resize_pixbuf_dimension};
use crate::help_functions::{
count_number_of_groups, get_all_direct_children, get_full_name_from_path_name, get_max_file_name, get_pixbuf_from_dynamic_image, resize_pixbuf_dimension,
};
use crate::localizer_core::generate_translation_hashmap;
use crate::notebook_info::{NotebookObject, NOTEBOOKS_INFO};
@ -326,7 +328,7 @@ fn populate_groups_at_start(
*shared_image_cache.borrow_mut() = cache_all_images.clone();
let mut found = false;
for i in get_all_children(&scrolled_window_compare_choose_images.child().unwrap().downcast::<gtk4::Viewport>().unwrap()) {
for i in get_all_direct_children(&scrolled_window_compare_choose_images.child().unwrap().downcast::<gtk4::Viewport>().unwrap()) {
if i.widget_name() == "all_box" {
let gtk_box = i.downcast::<gtk4::Box>().unwrap();
update_bottom_buttons(&gtk_box, shared_using_for_preview, shared_image_cache);
@ -618,13 +620,13 @@ fn update_bottom_buttons(
let left_tree_view = (*shared_using_for_preview.borrow()).0.clone().unwrap();
let right_tree_view = (*shared_using_for_preview.borrow()).1.clone().unwrap();
for (number, i) in get_all_children(all_gtk_box).into_iter().enumerate() {
for (number, i) in get_all_direct_children(all_gtk_box).into_iter().enumerate() {
let cache_tree_path = (*image_cache.borrow())[number].4.clone();
let is_chosen = cache_tree_path != right_tree_view && cache_tree_path != left_tree_view;
let bx = i.downcast::<gtk4::Box>().unwrap();
let smaller_bx = get_all_children(&bx)[0].clone().downcast::<gtk4::Box>().unwrap();
for items in get_all_children(&smaller_bx) {
let smaller_bx = get_all_direct_children(&bx)[0].clone().downcast::<gtk4::Box>().unwrap();
for items in get_all_direct_children(&smaller_bx) {
if let Ok(btn) = items.downcast::<gtk4::Button>() {
btn.set_sensitive(is_chosen);
}

View file

@ -8,7 +8,7 @@ use czkawka_core::similar_images::{get_string_from_similarity, SIMILAR_VALUES};
use crate::flg;
use crate::help_combo_box::{BIG_FILES_CHECK_METHOD_COMBO_BOX, DUPLICATES_CHECK_METHOD_COMBO_BOX, IMAGES_HASH_SIZE_COMBO_BOX};
use crate::help_functions::get_all_children;
use crate::help_functions::get_all_direct_children;
use crate::notebook_enums::{NotebookMainEnum, NUMBER_OF_NOTEBOOK_MAIN_TABS};
#[derive(Clone)]
@ -430,8 +430,8 @@ impl GuiMainNotebook {
}
}
let vec_children: Vec<Widget> = get_all_children(&self.notebook_main);
let vec_children: Vec<Widget> = get_all_children(&vec_children[1]);
let vec_children: Vec<Widget> = get_all_direct_children(&self.notebook_main);
let vec_children: Vec<Widget> = get_all_direct_children(&vec_children[1]);
// Change name of main notebook tabs
for (main_enum, fl_thing) in [

View file

@ -2,7 +2,7 @@ use gtk4::prelude::*;
use gtk4::{Builder, Window};
use crate::flg;
use crate::help_functions::get_all_children;
use crate::help_functions::get_all_direct_children;
#[derive(Clone)]
pub struct GuiSettings {
@ -246,8 +246,8 @@ impl GuiSettings {
self.button_settings_open_settings_folder
.set_tooltip_text(Some(&flg!("settings_folder_settings_open_tooltip")));
let vec_children: Vec<gtk4::Widget> = get_all_children(&self.notebook_settings);
let vec_children: Vec<gtk4::Widget> = get_all_children(&vec_children[1]);
let vec_children: Vec<gtk4::Widget> = get_all_direct_children(&self.notebook_settings);
let vec_children: Vec<gtk4::Widget> = get_all_direct_children(&vec_children[1]);
// Change name of main notebook tabs
let names: [String; 4] = [

View file

@ -1,7 +1,7 @@
use gtk4::prelude::*;
use gtk4::{EventControllerKey, GestureClick, TreeView};
use crate::help_functions::{get_all_children, get_custom_label_from_widget, set_icon_of_button};
use crate::help_functions::{get_all_direct_children, get_custom_label_from_widget, set_icon_of_button};
use crate::notebook_enums::NotebookUpperEnum;
use crate::{flg, CZK_ICON_ADD, CZK_ICON_DELETE, CZK_ICON_MANUAL_ADD};
@ -157,8 +157,8 @@ impl GuiUpperNotebook {
self.entry_general_minimal_size.set_tooltip_text(Some(&flg!("main_label_size_bytes_tooltip")));
self.entry_general_maximal_size.set_tooltip_text(Some(&flg!("main_label_size_bytes_tooltip")));
let vec_children: Vec<gtk4::Widget> = get_all_children(&self.notebook_upper);
let vec_children: Vec<gtk4::Widget> = get_all_children(&vec_children[1]);
let vec_children: Vec<gtk4::Widget> = get_all_direct_children(&self.notebook_upper);
let vec_children: Vec<gtk4::Widget> = get_all_direct_children(&vec_children[1]);
// Change name of upper notebook tabs
for (upper_enum, fl_thing) in [

View file

@ -637,7 +637,7 @@ pub fn get_custom_label_from_widget<P: IsA<Widget>>(item: &P) -> gtk4::Label {
if let Ok(label) = widget.clone().downcast::<gtk4::Label>() {
return label;
} else {
widgets_to_check.extend(get_all_children(&widget));
widgets_to_check.extend(get_all_direct_children(&widget));
}
}
panic!("Button doesn't have proper custom label child");
@ -650,7 +650,7 @@ pub fn get_custom_image_from_widget<P: IsA<Widget>>(item: &P) -> gtk4::Image {
if let Ok(image) = widget.clone().downcast::<gtk4::Image>() {
return image;
} else {
widgets_to_check.extend(get_all_children(&widget));
widgets_to_check.extend(get_all_direct_children(&widget));
}
}
panic!("Button doesn't have proper custom label child");
@ -664,7 +664,7 @@ pub fn debug_print_widget<P: IsA<Widget>>(item: &P) {
println!("{}, {}, {:?} ", widgets_to_check[0].0, widgets_to_check[0].1, widgets_to_check[0].2);
while let Some((current_number, parent_number, widget)) = widgets_to_check.pop() {
for widget in get_all_children(&widget) {
for widget in get_all_direct_children(&widget) {
widgets_to_check.push((next_free_number, current_number, widget));
next_free_number += 1;
}
@ -677,7 +677,7 @@ pub fn get_all_boxes_from_widget<P: IsA<Widget>>(item: &P) -> Vec<gtk4::Box> {
let mut boxes = Vec::new();
while let Some(widget) = widgets_to_check.pop() {
widgets_to_check.extend(get_all_children(&widget));
widgets_to_check.extend(get_all_direct_children(&widget));
if let Ok(bbox) = widget.clone().downcast::<gtk4::Box>() {
boxes.push(bbox);
}
@ -685,7 +685,7 @@ pub fn get_all_boxes_from_widget<P: IsA<Widget>>(item: &P) -> Vec<gtk4::Box> {
boxes
}
pub fn get_all_children<P: IsA<Widget>>(wid: &P) -> Vec<Widget> {
pub fn get_all_direct_children<P: IsA<Widget>>(wid: &P) -> Vec<Widget> {
let mut vector = vec![];
if let Some(mut child) = wid.first_child() {
vector.push(child.clone());
@ -727,9 +727,62 @@ pub fn get_pixbuf_from_dynamic_image(dynamic_image: &DynamicImage) -> Result<Pix
#[test]
fn test_file_name_shortener() {
let name_to_check = "/home/rafal/czkawek/romek/atomek.txt";
assert_eq!(get_max_file_name(name_to_check, 20), "/home/rafa ... atomek.txt".to_string());
assert_eq!(get_max_file_name(name_to_check, 21), "/home/rafa ... /atomek.txt".to_string());
assert_eq!(get_max_file_name(name_to_check, 20), "/home/rafa ... atomek.txt");
assert_eq!(get_max_file_name(name_to_check, 21), "/home/rafa ... /atomek.txt");
let name_to_check = "/home/rafal/czkawek/romek/czekistan/atomek.txt";
assert_eq!(get_max_file_name(name_to_check, 21), "/home/rafa ... /atomek.txt".to_string());
assert_eq!(get_max_file_name(name_to_check, 80), name_to_check.to_string());
assert_eq!(get_max_file_name(name_to_check, 21), "/home/rafa ... /atomek.txt");
assert_eq!(get_max_file_name(name_to_check, 80), name_to_check);
let name_to_check = "/home/rafal/‍🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈.txt";
assert_eq!(get_max_file_name(name_to_check, 21), "/home/rafa ... 🌈🌈🌈🌈🌈🌈🌈.txt");
assert_eq!(get_max_file_name(name_to_check, 20), "/home/rafa ... 🌈🌈🌈🌈🌈🌈.txt");
assert_eq!(get_max_file_name(name_to_check, 19), "/home/rafa ... 🌈🌈🌈🌈🌈.txt");
let name_to_check = "/home/rafal/‍🏳️‍🌈️🏳️‍🌈️🏳️‍🌈️🏳️‍🌈️🏳️‍🌈️🏳️‍🌈️🏳️‍🌈️🏳️‍🌈️🏳️‍🌈️.txt";
assert_eq!(get_max_file_name(name_to_check, 21), "/home/rafa ... 🌈\u{fe0f}🏳\u{fe0f}\u{200d}🌈\u{fe0f}.txt");
assert_eq!(get_max_file_name(name_to_check, 20), "/home/rafa ... \u{fe0f}🏳\u{fe0f}\u{200d}🌈\u{fe0f}.txt");
assert_eq!(get_max_file_name(name_to_check, 19), "/home/rafa ... 🏳\u{fe0f}\u{200d}🌈\u{fe0f}.txt");
}
#[cfg(test)]
mod test {
use crate::help_functions::{get_all_boxes_from_widget, get_all_direct_children, get_pixbuf_from_dynamic_image};
use gtk4::prelude::*;
use gtk4::Orientation;
use image::DynamicImage;
#[test]
fn test_pixbuf_from_dynamic_image() {
let dynamic_image = DynamicImage::new_rgb8(1, 1);
get_pixbuf_from_dynamic_image(&dynamic_image).unwrap();
get_pixbuf_from_dynamic_image(&dynamic_image).unwrap();
get_pixbuf_from_dynamic_image(&dynamic_image).unwrap();
get_pixbuf_from_dynamic_image(&dynamic_image).unwrap();
}
#[gtk4::test]
fn test_get_all_direct_children() {
let obj = gtk4::Box::new(Orientation::Horizontal, 0);
let obj2 = gtk4::Box::new(Orientation::Horizontal, 0);
let obj3 = gtk4::Image::new();
let obj4 = gtk4::Image::new();
let obj5 = gtk4::Image::new();
obj.append(&obj2);
obj.append(&obj3);
obj2.append(&obj4);
obj2.append(&obj5);
assert_eq!(get_all_direct_children(&obj).len(), 2);
}
#[gtk4::test]
fn test_get_all_boxes_from_widget() {
let obj = gtk4::Box::new(Orientation::Horizontal, 0);
let obj2 = gtk4::Box::new(Orientation::Horizontal, 0);
let obj3 = gtk4::Image::new();
let obj4 = gtk4::Image::new();
let obj5 = gtk4::Image::new();
obj.append(&obj2);
obj.append(&obj3);
obj2.append(&obj4);
obj2.append(&obj5);
assert_eq!(get_all_boxes_from_widget(&obj).len(), 2);
}
}