Add gtk tests
Currently we only test the GtkBuilder files. Also I can't find a way to get gtk to uninitialize and reinitialize in a different thread. Close #56
This commit is contained in:
parent
3afa8c4441
commit
92ae681517
@ -32,7 +32,7 @@ flatpak:
|
|||||||
--env=CARGO_HOME="target/cargo-home" \
|
--env=CARGO_HOME="target/cargo-home" \
|
||||||
--env=CARGO_TARGET_DIR="target_test/" \
|
--env=CARGO_TARGET_DIR="target_test/" \
|
||||||
app ${MANIFEST_PATH} \
|
app ${MANIFEST_PATH} \
|
||||||
cargo test -- --test-threads=1
|
cargo test -j 1 -- --test-threads=1
|
||||||
|
|
||||||
# Create a flatpak bundle
|
# Create a flatpak bundle
|
||||||
- flatpak-builder --finish-only app ${MANIFEST_PATH}
|
- flatpak-builder --finish-only app ${MANIFEST_PATH}
|
||||||
|
|||||||
@ -114,6 +114,21 @@ mod i18n;
|
|||||||
|
|
||||||
use app::App;
|
use app::App;
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
fn init_gtk_tests() -> Result<(), failure::Error> {
|
||||||
|
// if gtk::is_initialized() {
|
||||||
|
// assert!(gtk::is_initialized_main_thread())
|
||||||
|
// } else {
|
||||||
|
// gtk::init()?;
|
||||||
|
// static_resource::init()?;
|
||||||
|
// }
|
||||||
|
|
||||||
|
gtk::init()?;
|
||||||
|
static_resource::init()?;
|
||||||
|
gst::init()?;
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
// TODO: make the the logger a cli -vv option
|
// TODO: make the the logger a cli -vv option
|
||||||
loggerv::init_with_level(Level::Info).expect("Error initializing loggerv.");
|
loggerv::init_with_level(Level::Info).expect("Error initializing loggerv.");
|
||||||
@ -132,3 +147,30 @@ fn main() {
|
|||||||
|
|
||||||
App::run();
|
App::run();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
// Even while running the tests with -j 1 and --test-threads=1,
|
||||||
|
// cargo seems to create new threads and gtk refuses to initialize again.
|
||||||
|
// So we run every gtk related test here.
|
||||||
|
fn test_stuff() -> Result<(), failure::Error> {
|
||||||
|
use headerbar::Header;
|
||||||
|
use widgets::*;
|
||||||
|
|
||||||
|
init_gtk_tests()?;
|
||||||
|
|
||||||
|
// If a widget does not exist in the `GtkBuilder`(.ui) file this should panic and fail.
|
||||||
|
Header::default();
|
||||||
|
ShowsView::default();
|
||||||
|
ShowWidget::default();
|
||||||
|
HomeView::default();
|
||||||
|
HomeEpisode::default();
|
||||||
|
EpisodeWidget::default();
|
||||||
|
EmptyView::default();
|
||||||
|
EmptyShow::default();
|
||||||
|
|
||||||
|
appnotif::InAppNotification::default();
|
||||||
|
show_menu::ShowMenu::default();
|
||||||
|
player::PlayerWidget::default();
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|||||||
@ -156,7 +156,7 @@ fn split(now: &DateTime<Utc>, epoch: i64) -> ListSplit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
struct HomeEpisode {
|
pub(crate) struct HomeEpisode {
|
||||||
container: gtk::Box,
|
container: gtk::Box,
|
||||||
image: gtk::Image,
|
image: gtk::Image,
|
||||||
episode: gtk::Box,
|
episode: gtk::Box,
|
||||||
|
|||||||
@ -17,3 +17,6 @@ pub(crate) use self::home_view::HomeView;
|
|||||||
pub(crate) use self::show::ShowWidget;
|
pub(crate) use self::show::ShowWidget;
|
||||||
pub(crate) use self::show_menu::ShowMenu;
|
pub(crate) use self::show_menu::ShowMenu;
|
||||||
pub(crate) use self::shows_view::ShowsView;
|
pub(crate) use self::shows_view::ShowsView;
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
pub(crate) use self::home_view::HomeEpisode;
|
||||||
|
|||||||
@ -26,7 +26,7 @@ xvfb-run -a -s "-screen 0 1024x768x24" \
|
|||||||
--env=CARGO_HOME="target/cargo-home" \
|
--env=CARGO_HOME="target/cargo-home" \
|
||||||
--env=CARGO_TARGET_DIR="target_test/" \
|
--env=CARGO_TARGET_DIR="target_test/" \
|
||||||
app ${MANIFEST_PATH} \
|
app ${MANIFEST_PATH} \
|
||||||
cargo test -- --test-threads=1
|
cargo test -j 1 -- --test-threads=1
|
||||||
|
|
||||||
# Create a flatpak bundle
|
# Create a flatpak bundle
|
||||||
# flatpak-builder --finish-only app ${MANIFEST_PATH}
|
# flatpak-builder --finish-only app ${MANIFEST_PATH}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user