fix clippy warnings and tests

This commit is contained in:
Martin Kavík 2022-04-01 23:25:25 +02:00
parent dc7e3cd294
commit e15ba04454
2 changed files with 168 additions and 167 deletions

View file

@ -132,7 +132,7 @@ impl MainWindow {
hide_splash_sender.notice(); hide_splash_sender.notice();
if let Some(arg) = msg.get_params() { if let Some(arg) = msg.get_params() {
// TODO: Make this modal dialog // TODO: Make this modal dialog
eprintln!("Web App Error: {}", arg.to_string()); eprintln!("Web App Error: {}", arg);
} }
} }
Some("open-external") => { Some("open-external") => {

View file

@ -1,166 +1,167 @@
use crate::stremio_app::stremio_player::communication::{ use crate::stremio_app::stremio_player::communication::{
BoolProp, CmdVal, InMsg, InMsgArgs, InMsgFn, MpvCmd, PlayerEnded, PlayerProprChange, PropKey, BoolProp, CmdVal, InMsg, InMsgArgs, InMsgFn, MpvCmd, PlayerEnded, PlayerProprChange, PropKey,
PropVal, PropVal,
}; };
use libmpv::{events::PropertyData, mpv_end_file_reason};
use serde_test::{assert_tokens, Token};
use serde_test::{assert_tokens, Token};
#[test]
fn propr_change_tokens() { #[test]
let prop = "test-prop"; fn propr_change_tokens() {
let tokens: [Token; 6] = [ let prop = "test-prop";
Token::Struct { let tokens: [Token; 6] = [
name: "PlayerProprChange", Token::Struct {
len: 2, name: "PlayerProprChange",
}, len: 2,
Token::Str("name"), },
Token::None, Token::Str("name"),
Token::Str("data"), Token::None,
Token::None, Token::Str("data"),
Token::StructEnd, Token::None,
]; Token::StructEnd,
];
fn tokens_by_type(tokens: &[Token; 6], name: &'static str, val: mpv::Format, token: Token) {
let mut typed_tokens = tokens.clone(); fn tokens_by_type(tokens: &[Token; 6], name: &'static str, val: PropertyData, token: Token) {
typed_tokens[2] = Token::Str(name); let mut typed_tokens = tokens.clone();
typed_tokens[4] = token; typed_tokens[2] = Token::Str(name);
assert_tokens( typed_tokens[4] = token;
&PlayerProprChange::from_name_value(name.to_string(), val), assert_tokens(
&typed_tokens, &PlayerProprChange::from_name_value(name.to_string(), val),
); &typed_tokens,
} );
tokens_by_type(&tokens, prop, mpv::Format::Flag(true), Token::Bool(true)); }
tokens_by_type(&tokens, prop, mpv::Format::Int(1), Token::F64(1.0)); tokens_by_type(&tokens, prop, PropertyData::Flag(true), Token::Bool(true));
tokens_by_type(&tokens, prop, mpv::Format::Double(1.0), Token::F64(1.0)); tokens_by_type(&tokens, prop, PropertyData::Int64(1), Token::F64(1.0));
tokens_by_type(&tokens, prop, mpv::Format::OsdStr("ok"), Token::Str("ok")); tokens_by_type(&tokens, prop, PropertyData::Double(1.0), Token::F64(1.0));
tokens_by_type(&tokens, prop, mpv::Format::Str("ok"), Token::Str("ok")); tokens_by_type(&tokens, prop, PropertyData::OsdStr("ok"), Token::Str("ok"));
tokens_by_type(&tokens, prop, PropertyData::Str("ok"), Token::Str("ok"));
// JSON response
tokens_by_type( // JSON response
&tokens, tokens_by_type(
"track-list", &tokens,
mpv::Format::Str(r#""ok""#), "track-list",
Token::Str("ok"), PropertyData::Str(r#""ok""#),
); Token::Str("ok"),
tokens_by_type( );
&tokens, tokens_by_type(
"video-params", &tokens,
mpv::Format::Str(r#""ok""#), "video-params",
Token::Str("ok"), PropertyData::Str(r#""ok""#),
); Token::Str("ok"),
tokens_by_type( );
&tokens, tokens_by_type(
"metadata", &tokens,
mpv::Format::Str(r#""ok""#), "metadata",
Token::Str("ok"), PropertyData::Str(r#""ok""#),
); Token::Str("ok"),
} );
}
#[test]
fn ended_tokens() { #[test]
let tokens: [Token; 4] = [ fn ended_tokens() {
Token::Struct { let tokens: [Token; 4] = [
name: "PlayerEnded", Token::Struct {
len: 1, name: "PlayerEnded",
}, len: 1,
Token::Str("reason"), },
Token::None, Token::Str("reason"),
Token::StructEnd, Token::None,
]; Token::StructEnd,
let mut typed_tokens = tokens.clone(); ];
typed_tokens[2] = Token::Str("error"); let mut typed_tokens = tokens.clone();
assert_tokens( typed_tokens[2] = Token::Str("error");
&PlayerEnded::from_end_reason(mpv::EndFileReason::MPV_END_FILE_REASON_ERROR), assert_tokens(
&typed_tokens, &PlayerEnded::from_end_reason(mpv_end_file_reason::Error),
); &typed_tokens,
let mut typed_tokens = tokens.clone(); );
typed_tokens[2] = Token::Str("quit"); let mut typed_tokens = tokens.clone();
assert_tokens( typed_tokens[2] = Token::Str("quit");
&PlayerEnded::from_end_reason(mpv::EndFileReason::MPV_END_FILE_REASON_QUIT), assert_tokens(
&typed_tokens, &PlayerEnded::from_end_reason(mpv_end_file_reason::Quit),
); &typed_tokens,
} );
}
#[test]
fn ob_propr_tokens() { #[test]
assert_tokens( fn ob_propr_tokens() {
&InMsg( assert_tokens(
InMsgFn::MpvObserveProp, &InMsg(
InMsgArgs::ObProp(PropKey::Bool(BoolProp::Pause)), InMsgFn::MpvObserveProp,
), InMsgArgs::ObProp(PropKey::Bool(BoolProp::Pause)),
&[ ),
Token::TupleStruct { &[
name: "InMsg", Token::TupleStruct {
len: 2, name: "InMsg",
}, len: 2,
Token::Str("mpv-observe-prop"), },
Token::Str("pause"), Token::Str("mpv-observe-prop"),
Token::TupleStructEnd, Token::Str("pause"),
], Token::TupleStructEnd,
); ],
} );
}
#[test]
fn set_propr_tokens() { #[test]
assert_tokens( fn set_propr_tokens() {
&InMsg( assert_tokens(
InMsgFn::MpvSetProp, &InMsg(
InMsgArgs::StProp(PropKey::Bool(BoolProp::Pause), PropVal::Bool(true)), InMsgFn::MpvSetProp,
), InMsgArgs::StProp(PropKey::Bool(BoolProp::Pause), PropVal::Bool(true)),
&[ ),
Token::TupleStruct { &[
name: "InMsg", Token::TupleStruct {
len: 2, name: "InMsg",
}, len: 2,
Token::Str("mpv-set-prop"), },
Token::Tuple { len: 2 }, Token::Str("mpv-set-prop"),
Token::Str("pause"), Token::Tuple { len: 2 },
Token::Bool(true), Token::Str("pause"),
Token::TupleEnd, Token::Bool(true),
Token::TupleStructEnd, Token::TupleEnd,
], Token::TupleStructEnd,
); ],
} );
}
#[test]
fn command_stop_tokens() { #[test]
assert_tokens( fn command_stop_tokens() {
&InMsg( assert_tokens(
InMsgFn::MpvCommand, &InMsg(
InMsgArgs::Cmd(CmdVal::Single((MpvCmd::Stop,))), InMsgFn::MpvCommand,
), InMsgArgs::Cmd(CmdVal::Single((MpvCmd::Stop,))),
&[ ),
Token::TupleStruct { &[
name: "InMsg", Token::TupleStruct {
len: 2, name: "InMsg",
}, len: 2,
Token::Str("mpv-command"), },
Token::Tuple { len: 1 }, Token::Str("mpv-command"),
Token::Str("stop"), Token::Tuple { len: 1 },
Token::TupleEnd, Token::Str("stop"),
Token::TupleStructEnd, Token::TupleEnd,
], Token::TupleStructEnd,
); ],
} );
}
#[test]
fn command_loadfile_tokens() { #[test]
assert_tokens( fn command_loadfile_tokens() {
&InMsg( assert_tokens(
InMsgFn::MpvCommand, &InMsg(
InMsgArgs::Cmd(CmdVal::Double(MpvCmd::Loadfile, "some_file".to_string())), InMsgFn::MpvCommand,
), InMsgArgs::Cmd(CmdVal::Double(MpvCmd::Loadfile, "some_file".to_string())),
&[ ),
Token::TupleStruct { &[
name: "InMsg", Token::TupleStruct {
len: 2, name: "InMsg",
}, len: 2,
Token::Str("mpv-command"), },
Token::Tuple { len: 2 }, Token::Str("mpv-command"),
Token::Str("loadfile"), Token::Tuple { len: 2 },
Token::Str("some_file"), Token::Str("loadfile"),
Token::TupleEnd, Token::Str("some_file"),
Token::TupleStructEnd, Token::TupleEnd,
], Token::TupleStructEnd,
); ],
} );
}