mirror of
https://github.com/loot/loot-condition-interpreter.git
synced 2026-07-27 14:16:09 -07:00
Add tests parsing conditions that caused problems
This commit is contained in:
@@ -12,7 +12,6 @@ install:
|
||||
- rustfmt --version
|
||||
|
||||
before_script:
|
||||
- mkdir tests
|
||||
- cd tests
|
||||
|
||||
- wget https://github.com/WrinklyNinja/testing-plugins/archive/1.4.1.tar.gz
|
||||
|
||||
@@ -16,7 +16,6 @@ install:
|
||||
- rustup component add rustfmt-preview
|
||||
- rustfmt --version
|
||||
|
||||
- ps: mkdir tests
|
||||
- cd tests
|
||||
|
||||
- ps: (New-Object Net.WebClient).DownloadFile('https://github.com/WrinklyNinja/testing-plugins/archive/1.4.0.zip', "$PWD/1.4.0.zip")
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
extern crate loot_condition_interpreter;
|
||||
|
||||
use std::str::FromStr;
|
||||
|
||||
use loot_condition_interpreter::{Error, Expression};
|
||||
|
||||
fn expression(string: &str) -> Result<Expression, Error> {
|
||||
Expression::from_str(string)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn expression_parsing_should_ignore_whitespace_between_function_arguments() {
|
||||
let e = expression("version(\"Cargo.toml\", \"1.2\", ==)");
|
||||
assert!(e.is_ok());
|
||||
|
||||
let e = expression("version(\"Unofficial Oblivion Patch.esp\",\"3.4.0\",>=)");
|
||||
assert!(e.is_ok());
|
||||
|
||||
let e = expression("version(\"Unofficial Skyrim Patch.esp\", \"2.0\", >=)");
|
||||
assert!(e.is_ok());
|
||||
|
||||
let e = expression("version(\"..\\TESV.exe\", \"1.8\", >) and not checksum(\"EternalShineArmorAndWeapons.esp\",3E85A943)");
|
||||
assert!(e.is_ok());
|
||||
|
||||
let e = expression("version(\"..\\TESV.exe\",\"1.8\",>) and not checksum(\"EternalShineArmorAndWeapons.esp\",3E85A943)");
|
||||
assert!(e.is_ok());
|
||||
|
||||
let e = expression("checksum(\"HM_HotkeyMod.esp\",374C564C)");
|
||||
assert!(e.is_ok());
|
||||
|
||||
let e = expression("checksum(\"HM_HotkeyMod.esp\",CF00AFFD)");
|
||||
assert!(e.is_ok());
|
||||
|
||||
let e = expression(
|
||||
"checksum(\"HM_HotkeyMod.esp\",374C564C) or checksum(\"HM_HotkeyMod.esp\",CF00AFFD)",
|
||||
);
|
||||
assert!(e.is_ok());
|
||||
|
||||
let e = expression(
|
||||
"( checksum(\"HM_HotkeyMod.esp\",374C564C) or checksum(\"HM_HotkeyMod.esp\",CF00AFFD) )",
|
||||
);
|
||||
assert!(e.is_ok());
|
||||
|
||||
let e = expression("file(\"UFO - Ultimate Follower Overhaul.esp\")");
|
||||
assert!(e.is_ok());
|
||||
|
||||
let e = expression("( checksum(\"HM_HotkeyMod.esp\",374C564C) or checksum(\"HM_HotkeyMod.esp\",CF00AFFD) ) and file(\"UFO - Ultimate Follower Overhaul.esp\")");
|
||||
assert!(e.is_ok());
|
||||
|
||||
let e = expression("many(\"Deeper Thoughts (\\(Curie\\)|- (Expressive )?Curie)\\.esp\")");
|
||||
assert!(e.is_ok());
|
||||
}
|
||||
Reference in New Issue
Block a user