Module: wine Branch: master Commit: 762a13eb348010b140f3c779e0a0147dd87fd979 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=762a13eb348010b140f3c779...
Author: James Hawkins truiken@gmail.com Date: Mon Aug 21 16:27:17 2006 -0700
msi: Add tests for MsiEvaluateCondition's substring operators.
---
dlls/msi/tests/package.c | 185 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 185 insertions(+), 0 deletions(-)
diff --git a/dlls/msi/tests/package.c b/dlls/msi/tests/package.c index 7aca319..a2d5459 100644 --- a/dlls/msi/tests/package.c +++ b/dlls/msi/tests/package.c @@ -1005,6 +1005,191 @@ static void test_condition(void) r = MsiEvaluateCondition(hpkg, "bandalmael<>0"); ok( r == MSICONDITION_TRUE, "wrong return val\n");
+ MsiSetProperty(hpkg, "one", "hi"); + MsiSetProperty(hpkg, "two", "hithere"); + r = MsiEvaluateCondition(hpkg, "one >< two"); + ok( r == MSICONDITION_FALSE, "wrong return val\n"); + + MsiSetProperty(hpkg, "one", "hithere"); + MsiSetProperty(hpkg, "two", "hi"); + r = MsiEvaluateCondition(hpkg, "one >< two"); + ok( r == MSICONDITION_TRUE, "wrong return val\n"); + + MsiSetProperty(hpkg, "one", "hello"); + MsiSetProperty(hpkg, "two", "hi"); + r = MsiEvaluateCondition(hpkg, "one >< two"); + ok( r == MSICONDITION_FALSE, "wrong return val\n"); + + MsiSetProperty(hpkg, "one", "hellohithere"); + MsiSetProperty(hpkg, "two", "hi"); + r = MsiEvaluateCondition(hpkg, "one >< two"); + ok( r == MSICONDITION_TRUE, "wrong return val\n"); + + MsiSetProperty(hpkg, "one", ""); + MsiSetProperty(hpkg, "two", "hi"); + r = MsiEvaluateCondition(hpkg, "one >< two"); + ok( r == MSICONDITION_FALSE, "wrong return val\n"); + + MsiSetProperty(hpkg, "one", "hi"); + MsiSetProperty(hpkg, "two", ""); + r = MsiEvaluateCondition(hpkg, "one >< two"); + ok( r == MSICONDITION_TRUE, "wrong return val\n"); + + MsiSetProperty(hpkg, "one", ""); + MsiSetProperty(hpkg, "two", ""); + r = MsiEvaluateCondition(hpkg, "one >< two"); + ok( r == MSICONDITION_FALSE, "wrong return val\n"); + + MsiSetProperty(hpkg, "one", "1234"); + MsiSetProperty(hpkg, "two", "1"); + r = MsiEvaluateCondition(hpkg, "one >< two"); + todo_wine + { + ok( r == MSICONDITION_FALSE, "wrong return val\n"); + } + + MsiSetProperty(hpkg, "one", "one 1234"); + MsiSetProperty(hpkg, "two", "1"); + r = MsiEvaluateCondition(hpkg, "one >< two"); + ok( r == MSICONDITION_TRUE, "wrong return val\n"); + + MsiSetProperty(hpkg, "one", "hithere"); + MsiSetProperty(hpkg, "two", "hi"); + r = MsiEvaluateCondition(hpkg, "one << two"); + todo_wine + { + ok( r == MSICONDITION_TRUE, "wrong return val\n"); + } + + MsiSetProperty(hpkg, "one", "hi"); + MsiSetProperty(hpkg, "two", "hithere"); + r = MsiEvaluateCondition(hpkg, "one << two"); + ok( r == MSICONDITION_FALSE, "wrong return val\n"); + + MsiSetProperty(hpkg, "one", "hi"); + MsiSetProperty(hpkg, "two", "hi"); + r = MsiEvaluateCondition(hpkg, "one << two"); + todo_wine + { + ok( r == MSICONDITION_TRUE, "wrong return val\n"); + } + + MsiSetProperty(hpkg, "one", "abcdhithere"); + MsiSetProperty(hpkg, "two", "hi"); + r = MsiEvaluateCondition(hpkg, "one << two"); + ok( r == MSICONDITION_FALSE, "wrong return val\n"); + + MsiSetProperty(hpkg, "one", ""); + MsiSetProperty(hpkg, "two", "hi"); + r = MsiEvaluateCondition(hpkg, "one << two"); + ok( r == MSICONDITION_FALSE, "wrong return val\n"); + + MsiSetProperty(hpkg, "one", "hithere"); + MsiSetProperty(hpkg, "two", ""); + r = MsiEvaluateCondition(hpkg, "one << two"); + todo_wine + { + ok( r == MSICONDITION_TRUE, "wrong return val\n"); + } + + MsiSetProperty(hpkg, "one", ""); + MsiSetProperty(hpkg, "two", ""); + r = MsiEvaluateCondition(hpkg, "one << two"); + ok( r == MSICONDITION_FALSE, "wrong return val\n"); + + MsiSetProperty(hpkg, "one", "1234"); + MsiSetProperty(hpkg, "two", "1"); + r = MsiEvaluateCondition(hpkg, "one << two"); + ok( r == MSICONDITION_FALSE, "wrong return val\n"); + + MsiSetProperty(hpkg, "one", "1234 one"); + MsiSetProperty(hpkg, "two", "1"); + r = MsiEvaluateCondition(hpkg, "one << two"); + todo_wine + { + ok( r == MSICONDITION_TRUE, "wrong return val\n"); + } + + MsiSetProperty(hpkg, "one", "hithere"); + MsiSetProperty(hpkg, "two", "there"); + r = MsiEvaluateCondition(hpkg, "one >> two"); + todo_wine + { + ok( r == MSICONDITION_TRUE, "wrong return val\n"); + } + + MsiSetProperty(hpkg, "one", "hithere"); + MsiSetProperty(hpkg, "two", "hi"); + r = MsiEvaluateCondition(hpkg, "one >> two"); + todo_wine + { + ok( r == MSICONDITION_FALSE, "wrong return val\n"); + } + + MsiSetProperty(hpkg, "one", "there"); + MsiSetProperty(hpkg, "two", "hithere"); + r = MsiEvaluateCondition(hpkg, "one >> two"); + todo_wine + { + ok( r == MSICONDITION_FALSE, "wrong return val\n"); + } + + MsiSetProperty(hpkg, "one", "there"); + MsiSetProperty(hpkg, "two", "there"); + r = MsiEvaluateCondition(hpkg, "one >> two"); + todo_wine + { + ok( r == MSICONDITION_TRUE, "wrong return val\n"); + } + + MsiSetProperty(hpkg, "one", "abcdhithere"); + MsiSetProperty(hpkg, "two", "hi"); + r = MsiEvaluateCondition(hpkg, "one >> two"); + todo_wine + { + ok( r == MSICONDITION_FALSE, "wrong return val\n"); + } + + MsiSetProperty(hpkg, "one", ""); + MsiSetProperty(hpkg, "two", "there"); + r = MsiEvaluateCondition(hpkg, "one >> two"); + todo_wine + { + ok( r == MSICONDITION_FALSE, "wrong return val\n"); + } + + MsiSetProperty(hpkg, "one", "there"); + MsiSetProperty(hpkg, "two", ""); + r = MsiEvaluateCondition(hpkg, "one >> two"); + todo_wine + { + ok( r == MSICONDITION_TRUE, "wrong return val\n"); + } + + MsiSetProperty(hpkg, "one", ""); + MsiSetProperty(hpkg, "two", ""); + r = MsiEvaluateCondition(hpkg, "one >> two"); + todo_wine + { + ok( r == MSICONDITION_FALSE, "wrong return val\n"); + } + + MsiSetProperty(hpkg, "one", "1234"); + MsiSetProperty(hpkg, "two", "4"); + r = MsiEvaluateCondition(hpkg, "one >> two"); + todo_wine + { + ok( r == MSICONDITION_FALSE, "wrong return val\n"); + } + + MsiSetProperty(hpkg, "one", "one 1234"); + MsiSetProperty(hpkg, "two", "4"); + r = MsiEvaluateCondition(hpkg, "one >> two"); + todo_wine + { + ok( r == MSICONDITION_TRUE, "wrong return val\n"); + } + MsiCloseHandle( hpkg ); DeleteFile(msifile); }