=> 114a3e430900341ca163c5d49ad939852ee7d497
[1mdiff --git a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/CopyAndAppendLastRow/content.txt b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/CopyAndAppendLastRow/content.txt[m [1mindex 6d9cd40..c3b94a3 100644[m [1m--- a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/CopyAndAppendLastRow/content.txt[m [1m+++ b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/CopyAndAppendLastRow/content.txt[m [36m@@ -1,12 +1,12 @@[m [31m-There are cases when you want to copy and append the last row of your column or row fixture certain number of times.[m [31m-[m [31m-For Ex: We make a query to the database and it return certain record 'n' number of times. Instead of writing the same record 'n' number of times in your fitnesse page, you can just specify that you expect the last column 'n' number of times using the !-CopyAndAppendLastRow-! decorator.[m [31m-[m [31m-!|Copy and Append Last Row|100|number of times|[m [31m-|Division|[m [31m-|numerator|denominator|quotient()|[m [31m-|10|2|5|[m [31m-|12.6|3|4.2|[m [31m-|100|4|25|[m [31m-[m [31m-In the above example, we want to divide 100 by 4 101 times.[m [32m+[m[32mThere are cases when you want to copy and append the last row of your column or row fixture certain number of times.[m [32m+[m [32m+[m[32mFor Ex: We make a query to the database and it return certain record 'n' number of times. Instead of writing the same record 'n' number of times in your fitnesse page, you can just specify that you expect the last column 'n' number of times using the !-CopyAndAppendLastRow-! decorator.[m [32m+[m [32m+[m[32m!|Copy and Append Last Row|100|number of times|[m [32m+[m[32m|Division|[m [32m+[m[32m|numerator|denominator|quotient()|[m [32m+[m[32m|10|2|5|[m [32m+[m[32m|12.6|3|4.2|[m [32m+[m[32m|100|4|25|[m [32m+[m [32m+[m[32mIn the above example, we want to divide 100 by 4 101 times.[m [1mdiff --git a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/CopyAndAppendLastRow/properties.xml b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/CopyAndAppendLastRow/properties.xml[m [1mindex 4646681..11ec60d 100644[m [1m--- a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/CopyAndAppendLastRow/properties.xml[m [1m+++ b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/CopyAndAppendLastRow/properties.xml[m [36m@@ -1,13 +1,13 @@[m [31m-[m [31m-[m [31m- [m [32m+[m[32m[m [32m+[m[32m[m [31m- [m [31m- 20061216213113 [m [31m-[m [31m- [m [31m- [m [31m- [m [31m- 1166322673244 [m [31m-[m [31m- 524008525574625139 [m [31m-[m [32m+[m[32m [m [1mdiff --git a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/CopyAppendLastRowAndIncrementColumnValues/content.txt b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/CopyAppendLastRowAndIncrementColumnValues/content.txt[m [1mindex 58c220f..2f3a42e 100644[m [1m--- a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/CopyAppendLastRowAndIncrementColumnValues/content.txt[m [1m+++ b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/CopyAppendLastRowAndIncrementColumnValues/content.txt[m [36m@@ -1,12 +1,12 @@[m [31m-What if you want to call the fixture 'n' times with the same row except you want to update one or two column's value?[m [31m-[m [31m-Ex: If you are using fitnesse fixtures to populate database and you want to insert a record 500 times. It would be easy to write one model record and insert that 500 times. This can be easily done with the !-CopyAndAppendLastRow-! decorator. But the database table might have a primary key. So you might want to update the primary key in each row. Now you might want to pipe !-IncrementColumnsValue-! and !-CopyAndAppendLastRow-! decorators to get the job done.[m [31m-[m [31m-Here is an example where I want to divide 5 by 1, 100 times, but I also want to update the numerator by 5 and denominator by 1.[m [31m-[m [31m-!|Copy and Append Last Row|100|times|[m [31m-|Increment Columns Value|numerator|of type|int|by|5|[m [31m-|Increment Columns Value|denominator|of type|int|by|1|[m [31m-|Division|[m [31m-|numerator|denominator|quotient()|[m [31m-|5|1|5|[m [32m+[m[32mWhat if you want to call the fixture 'n' times with the same row except you want to update one or two column's value?[m [32m+[m [32m+[m[32mEx: If you are using fitnesse fixtures to populate database and you want to insert a record 500 times. It would be easy to write one model record and insert that 500 times. This can be easily done with the !-CopyAndAppendLastRow-! decorator. But the database table might have a primary key. So you might want to update the primary key in each row. Now you might want to pipe !-IncrementColumnsValue-! and !-CopyAndAppendLastRow-! decorators to get the job done.[m [32m+[m [32m+[m[32mHere is an example where I want to divide 5 by 1, 100 times, but I also want to update the numerator by 5 and denominator by 1.[m [32m+[m [32m+[m[32m!|Copy and Append Last Row|100|times|[m [32m+[m[32m|Increment Columns Value|numerator|of type|int|by|5|[m [32m+[m[32m|Increment Columns Value|denominator|of type|int|by|1|[m [32m+[m[32m|Division|[m [32m+[m[32m|numerator|denominator|quotient()|[m [32m+[m[32m|5|1|5|[m [1mdiff --git a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/CopyAppendLastRowAndIncrementColumnValues/properties.xml b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/CopyAppendLastRowAndIncrementColumnValues/properties.xml[m [1mindex 248425b..6c8103c 100644[m [1m--- a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/CopyAppendLastRowAndIncrementColumnValues/properties.xml[m [1m+++ b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/CopyAppendLastRowAndIncrementColumnValues/properties.xml[m [36m@@ -1,13 +1,13 @@[m [31m-[m [31m-[m [32m+[m[32m [m [32m+[m[32m 20061216213113 [m [32m+[m[32m[m [32m+[m[32m [m [32m+[m[32m [m [32m+[m[32m [m [32m+[m[32m 1166322673244 [m [32m+[m[32m[m [32m+[m[32m 524008525574625139 [m [32m+[m[32m[m [31m- [m [32m+[m[32m[m [32m+[m[32m[m [31m- [m [31m- 20061216215829 [m [31m-[m [31m- [m [31m- [m [31m- [m [31m- 1166324308994 [m [31m-[m [31m- -8528063939302055872 [m [31m-[m [32m+[m[32m [m [1mdiff --git a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/SetUp/content.txt b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/SetUp/content.txt[m [1mindex 6bf4596..8327a35 100644[m [1m--- a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/SetUp/content.txt[m [1m+++ b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/SetUp/content.txt[m [36m@@ -1,4 +1,4 @@[m [31m-!|Import|[m [31m-|fit.decorator|[m [31m-|fit.decorator.performance|[m [31m-|eg|[m [32m+[m[32m!|Import|[m [32m+[m[32m|fit.decorator|[m [32m+[m[32m|fit.decorator.performance|[m [32m+[m[32m|eg|[m [1mdiff --git a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/SetUp/properties.xml b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/SetUp/properties.xml[m [1mindex 47bf822..e92b349 100644[m [1m--- a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/SetUp/properties.xml[m [1m+++ b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/SetUp/properties.xml[m [36m@@ -1,14 +1,14 @@[m [31m-[m [31m-[m [32m+[m[32m [m [32m+[m[32m 20061216215829 [m [32m+[m[32m[m [32m+[m[32m [m [32m+[m[32m [m [32m+[m[32m [m [32m+[m[32m 1166324308994 [m [32m+[m[32m[m [32m+[m[32m -8528063939302055872 [m [32m+[m[32m[m [31m- [m [32m+[m[32m[m [32m+[m[32mtrue [m [31m-true [m [31m-20061216183948 [m [31m-true [m [31m-true [m [31m-true [m [31m-true [m [31m-true [m [31m-true [m [31m-1166312388007 [m [31m--6757238585913794424 [m [31m-[m [32m+[m[32m [m [1mdiff --git a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/TearDown/content.txt b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/TearDown/content.txt[m [1mindex 7931d99..c69b2ee 100644[m [1m--- a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/TearDown/content.txt[m [1m+++ b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/TearDown/content.txt[m [36m@@ -1 +1 @@[m [31m-!|fit.Summary|[m [32m+[m[32m!|fit.Summary|[m [1mdiff --git a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/TearDown/properties.xml b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/TearDown/properties.xml[m [1mindex b7f5c22..e825712 100644[m [1m--- a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/TearDown/properties.xml[m [1m+++ b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteFitDecoratorTests/TearDown/properties.xml[m [36m@@ -1,14 +1,14 @@[m [31m-[m [31m-true [m [32m+[m[32mtrue [m [32m+[m[32m20061216183948 [m [32m+[m[32mtrue [m [32m+[m[32mtrue [m [32m+[m[32mtrue [m [32m+[m[32mtrue [m [32m+[m[32mtrue [m [32m+[m[32mtrue [m [32m+[m[32m1166312388007 [m [32m+[m[32m-6757238585913794424 [m [32m+[m[32m[m [31m- [m [32m+[m[32m[m [32m+[m[32mtrue [m [31m-true [m [31m-20061216141632 [m [31m-true [m [31m-true [m [31m-true [m [31m-true [m [31m-true [m [31m-true [m [31m-1166296592283 [m [31m--5128325404176707243 [m [31m-[m [32m+[m[32m [m [1mdiff --git a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSlimTests/TestDetailedDiff/TestPage/content.txt b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSlimTests/TestDetailedDiff/TestPage/content.txt[m [1mindex b10df64..4aba643 100644[m [1m--- a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSlimTests/TestDetailedDiff/TestPage/content.txt[m [1m+++ b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSlimTests/TestDetailedDiff/TestPage/content.txt[m [36m@@ -1,145 +1,145 @@[m [31m-!define TEST_SYSTEM {slim}[m [31m-[m [31m-!| import |[m [31m-| fitnesse.slim.test |[m [31m-[m [31m-[m [31m-Test Strings by plain compare, neither custom compare nor regular expression.[m [31m-In this case detailed diff is wanted.[m [31m-[m [31m-| Detailed Diff |[m [31m-| actual string | expected string? | #comment |[m [31m-| abc | abc | equal |[m [31m-| abc | xyz | completly different |[m [31m-| abc | xbc | first char different |[m [31m-| abc | ayc | middle char different |[m [31m-| abc | abz | last char different |[m [31m-| | xyz | actual empty, expected filled |[m [31m-| abc | | actual filled, expected empty; will be counted as ignored |[m [31m-| <&> | <&> | equal with HTML special chars |[m [31m-| <&> | xyz | completly different with HTML special chars |[m [31m-| <&> | x&> | first char different with HTML special chars |[m [31m-| <&> |true [m [32m+[m[32mtrue [m [32m+[m[32m20061216141632 [m [32m+[m[32mtrue [m [32m+[m[32mtrue [m [32m+[m[32mtrue [m [32m+[m[32mtrue [m [32m+[m[32mtrue [m [32m+[m[32mtrue [m [32m+[m[32m1166296592283 [m [32m+[m[32m-5128325404176707243 [m [32m+[m[32m| middle char different with HTML special chars |[m [31m-| <&> | <&z | last char differentwith HTML special chars |[m [31m-| | <&> | actual empty, expected filled with HTML special chars |[m [31m-| abc | <&> | completly different with HTML special chars |[m [31m-| abc | | last char different with HTML special chars |[m [31m-| Hello World | Wellcome Lord | no obvious match |[m [31m-[m [31m-Test Strings by regular expression.[m [31m-In this case no detailed diff is wanted.[m [31m-[m [31m-| Detailed Diff |[m [31m-| actual string | expected string? | #comment |[m [31m-| abc | =~/abc/ | match |[m [31m-| abc | =~/a.c/ | match |[m [31m-| abc | =~/\w+/ | match |[m [31m-| abc | =~/\w{3}/ | match |[m [31m-| abc | =~/^\w{3}$/ | match |[m [31m-| abc | =~/\w{1}/ | match |[m [31m-| abc | =~/^\w{1}$/ | no match |[m [31m-| abc | =~/[ABC]+/ | no match |[m [31m-| abc | =~/[ABC]+/i | wrong syntax, disable value comparison, use string comparison |[m [31m-[m [31m-[m [31m-Test integers by string comparison.[m [31m-In this case detailed diff ist wanted.[m [31m-[m [31m-| Detailed Diff |[m [31m-| actual int | expected int? | #comment |[m [31m-| 1 | 1 | equal |[m [31m-| 1 | 2 | completly different |[m [31m-| 1 | 10 | partially different |[m [31m-| | 1 | completly different |[m [31m-[m [31m-Test integers by value comparison, see =1 | ok |[m [31m-| 1 | <2 | ok |[m [31m-| 1 | >1 | nok |[m [31m-| 1 | =1 | ok |[m [31m-| 1 | <1 | nok |[m [31m-| 1 | 0<_<2 | ok |[m [31m-| 1 | 2<_<0 | nok, logically wrong |[m [31m-| 1 | 0>_>2 | wrong syntax, disable value comparison, use string comparison |[m [31m-| 1 | 2>_>0 | wrong syntax, disable value comparison, use string comparison |[m [31m-[m [31m-[m [31m-Test doubles by string comparison.[m [31m-In this case detailed diff ist wanted.[m [31m-[m [31m-| Detailed Diff |[m [31m-| actual double | expected double? | #comment |[m [31m-| 1.0 | 1.0 | equal |[m [31m-| 1.1 | 222 | completly different |[m [31m-| 1.0 | 10 | partially different |[m [31m-| | 1.0 | partially different |[m [31m-[m [31m-Test doubles by value comparison, see =1 | ok |[m [31m-| 1 | <2 | ok |[m [31m-| 1 | >1 | nok |[m [31m-| 1 | =1 | ok |[m [31m-| 1 | <1 | nok |[m [31m-| 1 | 0<_<2 | ok |[m [31m-| 1 | 2<_<0 | nok, logically wrong |[m [31m-| 1 | 0>_>2 | wrong syntax, disable value comparison, use string comparison |[m [31m-| 1 | 2>_>0 | wrong syntax, disable value comparison, use string comparison |[m [31m-| 1.0 | ~=1 | ok |[m [31m-| 1.1 | ~=1 | ok |[m [31m-| 0.9 | ~=1 | ok |[m [31m-| 1.0 | ~=1.0 | ok |[m [31m-| 1.1 | ~=1.0 | nok |[m [31m-| 0.9 | ~=1.0 | nok |[m [31m-[m [31m-[m [31m-Test symbols by string comparison.[m [31m-[m [31m-| Detailed Diff |[m [31m-| actual symbol | expected symbol? | #comment |[m [31m-| abc | $symbol= | |[m [31m-| $symbol | abc | |[m [31m-| $symbol | xyz | |[m [31m-| $symbol | xbc | |[m [31m-| $symbol | ayc | |[m [31m-| $symbol | abz | |[m [31m-| abc | $symbol | |[m [31m-| xyz | $symbol | |[m [31m-| xbc | $symbol | |[m [31m-| ayc | $symbol | |[m [31m-| abz | $symbol | |[m [31m-| | $symbol | |[m [31m-[m [31m-[m [31m-Test custom comparator, see FitNesse.UserGuide.AdministeringFitNesse.ConfigurationFile[m [31m-The inverse comparator fitnesse.slim.test.InverseComparator negates the method String.equals(String).[m [31m-[m [31m-| script | Detailed Diff |[m [31m-| note | everything not equals to 'abc' is ok |[m [31m-| check | echo | abc | inverse:xyz |[m [31m-| note | everything not equals to 'abc' is ok |[m [31m-| check | echo | abc | inverse:ABC | [m [31m-| note | everthing not equals to 'abc' is ok |[m [31m-| check | echo | abc | inverse:cba | [m [31m-| note | only 'abc' is nok |[m [31m-| check | echo | abc | inverse:abc |[m [31m-[m [31m-[m [31m-Test Scenario and Script[m [31m-[m [31m-!| Scenario | Detailed Diff Scenario Test |[m [31m-| start | Detailed Diff |[m [31m-| check | echo | hello | hello |[m [31m-| check | echo | hello | hallo |[m [31m-[m [31m-!| Script |[m [31m-| Detailed Diff Scenario Test |[m [32m+[m[32m!define TEST_SYSTEM {slim}[m [32m+[m [32m+[m[32m!| import |[m [32m+[m[32m| fitnesse.slim.test |[m [32m+[m [32m+[m [32m+[m[32mTest Strings by plain compare, neither custom compare nor regular expression.[m [32m+[m[32mIn this case detailed diff is wanted.[m [32m+[m [32m+[m[32m| Detailed Diff |[m [32m+[m[32m| actual string | expected string? | #comment |[m [32m+[m[32m| abc | abc | equal |[m [32m+[m[32m| abc | xyz | completly different |[m [32m+[m[32m| abc | xbc | first char different |[m [32m+[m[32m| abc | ayc | middle char different |[m [32m+[m[32m| abc | abz | last char different |[m [32m+[m[32m| | xyz | actual empty, expected filled |[m [32m+[m[32m| abc | | actual filled, expected empty; will be counted as ignored |[m [32m+[m[32m| <&> | <&> | equal with HTML special chars |[m [32m+[m[32m| <&> | xyz | completly different with HTML special chars |[m [32m+[m[32m| <&> | x&> | first char different with HTML special chars |[m [32m+[m[32m| <&> | | middle char different with HTML special chars |[m [32m+[m[32m| <&> | <&z | last char differentwith HTML special chars |[m [32m+[m[32m| | <&> | actual empty, expected filled with HTML special chars |[m [32m+[m[32m| abc | <&> | completly different with HTML special chars |[m [32m+[m[32m| abc | | last char different with HTML special chars |[m [32m+[m[32m| Hello World | Wellcome Lord | no obvious match |[m [32m+[m [32m+[m[32mTest Strings by regular expression.[m [32m+[m[32mIn this case no detailed diff is wanted.[m [32m+[m [32m+[m[32m| Detailed Diff |[m [32m+[m[32m| actual string | expected string? | #comment |[m [32m+[m[32m| abc | =~/abc/ | match |[m [32m+[m[32m| abc | =~/a.c/ | match |[m [32m+[m[32m| abc | =~/\w+/ | match |[m [32m+[m[32m| abc | =~/\w{3}/ | match |[m [32m+[m[32m| abc | =~/^\w{3}$/ | match |[m [32m+[m[32m| abc | =~/\w{1}/ | match |[m [32m+[m[32m| abc | =~/^\w{1}$/ | no match |[m [32m+[m[32m| abc | =~/[ABC]+/ | no match |[m [32m+[m[32m| abc | =~/[ABC]+/i | wrong syntax, disable value comparison, use string comparison |[m [32m+[m [32m+[m [32m+[m[32mTest integers by string comparison.[m [32m+[m[32mIn this case detailed diff ist wanted.[m [32m+[m [32m+[m[32m| Detailed Diff |[m [32m+[m[32m| actual int | expected int? | #comment |[m [32m+[m[32m| 1 | 1 | equal |[m [32m+[m[32m| 1 | 2 | completly different |[m [32m+[m[32m| 1 | 10 | partially different |[m [32m+[m[32m| | 1 | completly different |[m [32m+[m [32m+[m[32mTest integers by value comparison, see =1 | ok |[m [32m+[m[32m| 1 | <2 | ok |[m [32m+[m[32m| 1 | >1 | nok |[m [32m+[m[32m| 1 | =1 | ok |[m [32m+[m[32m| 1 | <1 | nok |[m [32m+[m[32m| 1 | 0<_<2 | ok |[m [32m+[m[32m| 1 | 2<_<0 | nok, logically wrong |[m [32m+[m[32m| 1 | 0>_>2 | wrong syntax, disable value comparison, use string comparison |[m [32m+[m[32m| 1 | 2>_>0 | wrong syntax, disable value comparison, use string comparison |[m [32m+[m [32m+[m [32m+[m[32mTest doubles by string comparison.[m [32m+[m[32mIn this case detailed diff ist wanted.[m [32m+[m [32m+[m[32m| Detailed Diff |[m [32m+[m[32m| actual double | expected double? | #comment |[m [32m+[m[32m| 1.0 | 1.0 | equal |[m [32m+[m[32m| 1.1 | 222 | completly different |[m [32m+[m[32m| 1.0 | 10 | partially different |[m [32m+[m[32m| | 1.0 | partially different |[m [32m+[m [32m+[m[32mTest doubles by value comparison, see =1 | ok |[m [32m+[m[32m| 1 | <2 | ok |[m [32m+[m[32m| 1 | >1 | nok |[m [32m+[m[32m| 1 | =1 | ok |[m [32m+[m[32m| 1 | <1 | nok |[m [32m+[m[32m| 1 | 0<_<2 | ok |[m [32m+[m[32m| 1 | 2<_<0 | nok, logically wrong |[m [32m+[m[32m| 1 | 0>_>2 | wrong syntax, disable value comparison, use string comparison |[m [32m+[m[32m| 1 | 2>_>0 | wrong syntax, disable value comparison, use string comparison |[m [32m+[m[32m| 1.0 | ~=1 | ok |[m [32m+[m[32m| 1.1 | ~=1 | ok |[m [32m+[m[32m| 0.9 | ~=1 | ok |[m [32m+[m[32m| 1.0 | ~=1.0 | ok |[m [32m+[m[32m| 1.1 | ~=1.0 | nok |[m [32m+[m[32m| 0.9 | ~=1.0 | nok |[m [32m+[m [32m+[m [32m+[m[32mTest symbols by string comparison.[m [32m+[m [32m+[m[32m| Detailed Diff |[m [32m+[m[32m| actual symbol | expected symbol? | #comment |[m [32m+[m[32m| abc | $symbol= | |[m [32m+[m[32m| $symbol | abc | |[m [32m+[m[32m| $symbol | xyz | |[m [32m+[m[32m| $symbol | xbc | |[m [32m+[m[32m| $symbol | ayc | |[m [32m+[m[32m| $symbol | abz | |[m [32m+[m[32m| abc | $symbol | |[m [32m+[m[32m| xyz | $symbol | |[m [32m+[m[32m| xbc | $symbol | |[m [32m+[m[32m| ayc | $symbol | |[m [32m+[m[32m| abz | $symbol | |[m [32m+[m[32m| | $symbol | |[m [32m+[m [32m+[m [32m+[m[32mTest custom comparator, see FitNesse.UserGuide.AdministeringFitNesse.ConfigurationFile[m [32m+[m[32mThe inverse comparator fitnesse.slim.test.InverseComparator negates the method String.equals(String).[m [32m+[m [32m+[m[32m| script | Detailed Diff |[m [32m+[m[32m| note | everything not equals to 'abc' is ok |[m [32m+[m[32m| check | echo | abc | inverse:xyz |[m [32m+[m[32m| note | everything not equals to 'abc' is ok |[m [32m+[m[32m| check | echo | abc | inverse:ABC |[m[41m [m [32m+[m[32m| note | everthing not equals to 'abc' is ok |[m [32m+[m[32m| check | echo | abc | inverse:cba |[m[41m [m [32m+[m[32m| note | only 'abc' is nok |[m [32m+[m[32m| check | echo | abc | inverse:abc |[m [32m+[m [32m+[m [32m+[m[32mTest Scenario and Script[m [32m+[m [32m+[m[32m!| Scenario | Detailed Diff Scenario Test |[m [32m+[m[32m| start | Detailed Diff |[m [32m+[m[32m| check | echo | hello | hello |[m [32m+[m[32m| check | echo | hello | hallo |[m [32m+[m [32m+[m[32m!| Script |[m [32m+[m[32m| Detailed Diff Scenario Test |[m [1mdiff --git a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSlimTests/TestDetailedDiff/TestPage/properties.xml b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSlimTests/TestDetailedDiff/TestPage/properties.xml[m [1mindex 8109798..ecd29df 100644[m [1m--- a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSlimTests/TestDetailedDiff/TestPage/properties.xml[m [1m+++ b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSlimTests/TestDetailedDiff/TestPage/properties.xml[m [36m@@ -1,13 +1,13 @@[m [31m-[m [31m- [m [31m- [m [32m+[m[32m[m [32m+[m[32m[m [31m- [m [31m- [m [31m- [m [31m- [m [31m- [m [31m- [m [31m- [m [31m- [m [31m- [m [31m- [m [32m+[m[32m [m [1mdiff --git a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSlimTests/TestDetailedDiff/content.txt b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSlimTests/TestDetailedDiff/content.txt[m [1mindex fa4783d..640ac1c 100644[m [1m--- a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSlimTests/TestDetailedDiff/content.txt[m [1m+++ b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSlimTests/TestDetailedDiff/content.txt[m [36m@@ -1,230 +1,230 @@[m [31m-!define TEST_SYSTEM {slim}[m [31m-[m [31m-!3 Diff of failed tests[m [31m-[m [31m-!4 Original intentionally failing tests[m [31m-[m [31m-The subordinate page >TestPage collects the following tests. The page is disabled because of many tests fails intentionally. It is useful for manual tests only.[m [31m-[m [31m-!4 Test wrapper for test[m [31m-[m [31m-!*> Tests for type string[m [31m-[m [31m-!| script |[m [31m-|given page|TestPage|with content|${SUT_PATH} !-[m [31m-!define TEST_SYSTEM {slim}[m [31m-[m [31m-!| import |[m [31m-| fitnesse.slim.test |[m [31m-[m [31m-Test Strings by plain compare, neither custom compare nor regular expression.[m [31m-In this case detailed diff is wanted.[m [31m-[m [31m-| Detailed Diff |[m [31m-| actual string | expected string? | #comment |[m [31m-| abc | abc | equal |[m [31m-| abc | xyz | completly different |[m [31m-| abc | xbc | first char different |[m [31m-| abc | ayc | middle char different |[m [31m-| abc | abz | last char different |[m [31m-| | xyz | actual empty, expected filled |[m [31m-| abc | | actual filled, expected empty; will be counted as ignored |[m [31m-| <&> | <&> | equal with HTML special chars |[m [31m-| <&> | xyz | completly different with HTML special chars |[m [31m-| <&> | x&> | first char different with HTML special chars |[m [31m-| <&> |[m [32m+[m[32m [m [32m+[m[32m [m [32m+[m[32m [m [32m+[m[32m [m [32m+[m[32m [m [32m+[m[32m [m [32m+[m[32m [m [32m+[m[32m [m [32m+[m[32m [m [32m+[m[32m | middle char different with HTML special chars |[m [31m-| <&> | <&z | last char differentwith HTML special chars |[m [31m-| | <&> | actual empty, expected filled with HTML special chars |[m [31m-| abc | <&> | completly different with HTML special chars |[m [31m-| abc | | last char different with HTML special chars |[m [31m-| Hello World | Wellcome Lord | no obvious match |[m [31m-[m [31m-Test Strings by regular expression.[m [31m-In this case no detailed diff is wanted.[m [31m-[m [31m-| Detailed Diff |[m [31m-| actual string | expected string? | #comment |[m [31m-| abc | =~/abc/ | match |[m [31m-| abc | =~/a.c/ | match |[m [31m-| abc | =~/\w+/ | match |[m [31m-| abc | =~/\w{3}/ | match |[m [31m-| abc | =~/^\w{3}$/ | match |[m [31m-| abc | =~/\w{1}/ | match |[m [31m-| abc | =~/^\w{1}$/ | no match |[m [31m-| abc | =~/[ABC]+/ | no match |[m [31m-| abc | =~/[ABC]+/i | wrong syntax, disable value comparison, use string comparison |[m [31m--!|[m [31m-|test results for page|TestPage|should contain|!-abc-!|[m [31m-|test results for page|TestPage|should contain|!-[abc] expected [xyz]-!|[m [31m-|test results for page|TestPage|should contain|!-[abc] expected [xbc]-!|[m [31m-|test results for page|TestPage|should contain|!-[abc] expected [ayc]-!|[m [31m-|test results for page|TestPage|should contain|!-[abc] expected [abz]-!|[m [31m-|test results for page|TestPage|should contain|!-[] expected [xyz]-!|[m [31m-|test results for page|TestPage|should contain|!-[Hello World] expected [Wellcome Lord]-!|[m [31m-*![m [31m-[m [31m-!*> Tests for type int[m [31m-[m [31m-!| script |[m [31m-|given page|TestPage|with content|${SUT_PATH} !-[m [31m-!define TEST_SYSTEM {slim}[m [31m-[m [31m-!| import |[m [31m-| fitnesse.slim.test |[m [31m-[m [31m-Test integers by string comparison.[m [31m-In this case detailed diff ist wanted.[m [31m-[m [31m-| Detailed Diff |[m [31m-| actual int | expected int? | #comment |[m [31m-| 1 | 1 | equal |[m [31m-| 1 | 2 | completly different |[m [31m-| 1 | 10 | partially different |[m [31m-| | 1 | completly different |[m [31m-[m [31m-Test integers by value comparison, see =1 | ok |[m [31m-| 1 | <2 | ok |[m [31m-| 1 | >1 | nok |[m [31m-| 1 | =1 | ok |[m [31m-| 1 | <1 | nok |[m [31m-| 1 | 0<_<2 | ok |[m [31m-| 1 | 2<_<0 | nok, logically wrong |[m [31m-| 1 | 0>_>2 | wrong syntax, disable value comparison, use string comparison |[m [31m-| 1 | 2>_>0 | wrong syntax, disable value comparison, use string comparison |[m [31m--!|[m [31m-|test results for page|TestPage|should contain||[m [31m-*![m [31m-[m [31m-!*> Tests for type double[m [31m-[m [31m-!| script |[m [31m-|given page|TestPage|with content|${SUT_PATH} !-[m [31m-!define TEST_SYSTEM {slim}[m [31m-[m [31m-!| import |[m [31m-| fitnesse.slim.test |[m [31m-[m [31m-Test doubles by string comparison.[m [31m-In this case detailed diff ist wanted.[m [31m-[m [31m-| Detailed Diff |[m [31m-| actual double | expected double? | #comment |[m [31m-| 1.0 | 1.0 | equal |[m [31m-| 1.1 | 222 | completly different |[m [31m-| 1.0 | 10 | partially different |[m [31m-| | 1.0 | partially different |[m [31m-[m [31m-Test doubles by value comparison, see =1 | ok |[m [31m-| 1 | <2 | ok |[m [31m-| 1 | >1 | nok |[m [31m-| 1 | =1 | ok |[m [31m-| 1 | <1 | nok |[m [31m-| 1 | 0<_<2 | ok |[m [31m-| 1 | 2<_<0 | nok, logically wrong |[m [31m-| 1 | 0>_>2 | wrong syntax, disable value comparison, use string comparison |[m [31m-| 1 | 2>_>0 | wrong syntax, disable value comparison, use string comparison |[m [31m-| 1.0 | ~=1 | ok |[m [31m-| 1.1 | ~=1 | ok |[m [31m-| 0.9 | ~=1 | ok |[m [31m-| 1.0 | ~=1.0 | ok |[m [31m-| 1.1 | ~=1.0 | nok |[m [31m-| 0.9 | ~=1.0 | nok |[m [31m--!|[m [31m-|test results for page|TestPage|should contain||[m [31m-*![m [31m-[m [31m-!*> Tests of fitnesse symbols[m [31m-[m [31m-!| script |[m [31m-|given page|TestPage|with content|${SUT_PATH} !-[m [31m-!define TEST_SYSTEM {slim}[m [31m-[m [31m-!| import |[m [31m-| fitnesse.slim.test |[m [31m-Test symbols by string comparison.[m [31m-[m [31m-| Detailed Diff |[m [31m-| actual symbol | expected symbol? | #comment |[m [31m-| abc | $symbol= | |[m [31m-| $symbol | abc | |[m [31m-| $symbol | xyz | |[m [31m-| $symbol | xbc | |[m [31m-| $symbol | ayc | |[m [31m-| $symbol | abz | |[m [31m-| abc | $symbol | |[m [31m-| xyz | $symbol | |[m [31m-| xbc | $symbol | |[m [31m-| ayc | $symbol | |[m [31m-| abz | $symbol | |[m [31m-| | $symbol | |[m [31m--!|[m [31m-|test results for page|TestPage|should contain|!-abc-!|[m [31m-|test results for page|TestPage|should contain|!-[abc] expected [xyz]-!|[m [31m-|test results for page|TestPage|should contain|!-[abc] expected [xbc]-!|[m [31m-|test results for page|TestPage|should contain|!-[abc] expected [ayc]-!|[m [31m-|test results for page|TestPage|should contain|!-[abc] expected [abz]-!|[m [31m-|test results for page|TestPage|should contain|!-<span class="pass">$symbol->[abc]</span>-!|[m [31m-|test results for page|TestPage|should contain|!-[xyz] expected [$symbol->[abc]]-!|[m [31m-|test results for page|TestPage|should contain|!-[xbc] expected [$symbol->[abc]]-!|[m [31m-|test results for page|TestPage|should contain|!-[ayc] expected [$symbol->[abc]]-!|[m [31m-|test results for page|TestPage|should contain|!-[abz] expected [$symbol->[abc]]-!|[m [31m-|test results for page|TestPage|should contain|!-[] expected [$symbol->[abc]]-!|[m [31m-*![m [31m-[m [31m-!*> Tests of custom comparator[m [31m-[m [31m-!| script |[m [31m-|given page|TestPage|with content|${SUT_PATH} !-[m [31m-!define TEST_SYSTEM {slim}[m [31m-[m [31m-!| import |[m [31m-| fitnesse.slim.test |[m [31m-Test custom comparator, see FitNesse.UserGuide.AdministeringFitNesse.ConfigurationFile[m [31m-The inverse comparator fitnesse.slim.test.InverseComparator negates the method String.equals(String).[m [31m-[m [31m-| script | Detailed Diff |[m [31m-| note | everything not equals to 'abc' is ok |[m [31m-| check | echo | abc | inverse:xyz |[m [31m-| note | everything not equals to 'abc' is ok |[m [31m-| check | echo | abc | inverse:ABC | [m [31m-| note | everthing not equals to 'abc' is ok |[m [31m-| check | echo | abc | inverse:cba | [m [31m-| note | only 'abc' is nok |[m [31m-| check | echo | abc | inverse:abc |[m [31m--!|[m [31m-|test results for page|TestPage|should contain||[m [31m-*![m [31m-[m [31m-!*> Tests of scenario[m [31m-[m [31m-!| script |[m [31m-|given page|TestPage|with content|${SUT_PATH} !-[m [31m-!define TEST_SYSTEM {slim}[m [31m-[m [31m-!| import |[m [31m-| fitnesse.slim.test |[m [31m-Test Scenario and Script[m [31m-[m [31m-!| Scenario | Detailed Diff Scenario Test |[m [31m-| start | Detailed Diff |[m [31m-| check | echo | hello | hello |[m [31m-| check | echo | hello | hallo |[m [31m-[m [31m-!| Script |[m [31m-| Detailed Diff Scenario Test |[m [31m--!|[m [31m-|test results for page|TestPage|should contain|!-hello-!|[m [31m-|test results for page|TestPage|should contain|!-[hello] expected [hallo]-!|[m [31m-*![m [32m+[m[32m!define TEST_SYSTEM {slim}[m [32m+[m [32m+[m[32m!3 Diff of failed tests[m [32m+[m [32m+[m[32m!4 Original intentionally failing tests[m [32m+[m [32m+[m[32mThe subordinate page >TestPage collects the following tests. The page is disabled because of many tests fails intentionally. It is useful for manual tests only.[m [32m+[m [32m+[m[32m!4 Test wrapper for test[m [32m+[m [32m+[m[32m!*> Tests for type string[m [32m+[m [32m+[m[32m!| script |[m [32m+[m[32m|given page|TestPage|with content|${SUT_PATH} !-[m [32m+[m[32m!define TEST_SYSTEM {slim}[m [32m+[m [32m+[m[32m!| import |[m [32m+[m[32m| fitnesse.slim.test |[m [32m+[m [32m+[m[32mTest Strings by plain compare, neither custom compare nor regular expression.[m [32m+[m[32mIn this case detailed diff is wanted.[m [32m+[m [32m+[m[32m| Detailed Diff |[m [32m+[m[32m| actual string | expected string? | #comment |[m [32m+[m[32m| abc | abc | equal |[m [32m+[m[32m| abc | xyz | completly different |[m [32m+[m[32m| abc | xbc | first char different |[m [32m+[m[32m| abc | ayc | middle char different |[m [32m+[m[32m| abc | abz | last char different |[m [32m+[m[32m| | xyz | actual empty, expected filled |[m [32m+[m[32m| abc | | actual filled, expected empty; will be counted as ignored |[m [32m+[m[32m| <&> | <&> | equal with HTML special chars |[m [32m+[m[32m| <&> | xyz | completly different with HTML special chars |[m [32m+[m[32m| <&> | x&> | first char different with HTML special chars |[m [32m+[m[32m| <&> | | middle char different with HTML special chars |[m [32m+[m[32m| <&> | <&z | last char differentwith HTML special chars |[m [32m+[m[32m| | <&> | actual empty, expected filled with HTML special chars |[m [32m+[m[32m| abc | <&> | completly different with HTML special chars |[m [32m+[m[32m| abc | | last char different with HTML special chars |[m [32m+[m[32m| Hello World | Wellcome Lord | no obvious match |[m [32m+[m [32m+[m[32mTest Strings by regular expression.[m [32m+[m[32mIn this case no detailed diff is wanted.[m [32m+[m [32m+[m[32m| Detailed Diff |[m [32m+[m[32m| actual string | expected string? | #comment |[m [32m+[m[32m| abc | =~/abc/ | match |[m [32m+[m[32m| abc | =~/a.c/ | match |[m [32m+[m[32m| abc | =~/\w+/ | match |[m [32m+[m[32m| abc | =~/\w{3}/ | match |[m [32m+[m[32m| abc | =~/^\w{3}$/ | match |[m [32m+[m[32m| abc | =~/\w{1}/ | match |[m [32m+[m[32m| abc | =~/^\w{1}$/ | no match |[m [32m+[m[32m| abc | =~/[ABC]+/ | no match |[m [32m+[m[32m| abc | =~/[ABC]+/i | wrong syntax, disable value comparison, use string comparison |[m [32m+[m[32m-!|[m [32m+[m[32m|test results for page|TestPage|should contain|!-abc-!|[m [32m+[m[32m|test results for page|TestPage|should contain|!-[abc] expected [xyz]-!|[m [32m+[m[32m|test results for page|TestPage|should contain|!-[abc] expected [xbc]-!|[m [32m+[m[32m|test results for page|TestPage|should contain|!-[abc] expected [ayc]-!|[m [32m+[m[32m|test results for page|TestPage|should contain|!-[abc] expected [abz]-!|[m [32m+[m[32m|test results for page|TestPage|should contain|!-[] expected [xyz]-!|[m [32m+[m[32m|test results for page|TestPage|should contain|!-[Hello World] expected [Wellcome Lord]-!|[m [32m+[m[32m*![m [32m+[m [32m+[m[32m!*> Tests for type int[m [32m+[m [32m+[m[32m!| script |[m [32m+[m[32m|given page|TestPage|with content|${SUT_PATH} !-[m [32m+[m[32m!define TEST_SYSTEM {slim}[m [32m+[m [32m+[m[32m!| import |[m [32m+[m[32m| fitnesse.slim.test |[m [32m+[m [32m+[m[32mTest integers by string comparison.[m [32m+[m[32mIn this case detailed diff ist wanted.[m [32m+[m [32m+[m[32m| Detailed Diff |[m [32m+[m[32m| actual int | expected int? | #comment |[m [32m+[m[32m| 1 | 1 | equal |[m [32m+[m[32m| 1 | 2 | completly different |[m [32m+[m[32m| 1 | 10 | partially different |[m [32m+[m[32m| | 1 | completly different |[m [32m+[m [32m+[m[32mTest integers by value comparison, see =1 | ok |[m [32m+[m[32m| 1 | <2 | ok |[m [32m+[m[32m| 1 | >1 | nok |[m [32m+[m[32m| 1 | =1 | ok |[m [32m+[m[32m| 1 | <1 | nok |[m [32m+[m[32m| 1 | 0<_<2 | ok |[m [32m+[m[32m| 1 | 2<_<0 | nok, logically wrong |[m [32m+[m[32m| 1 | 0>_>2 | wrong syntax, disable value comparison, use string comparison |[m [32m+[m[32m| 1 | 2>_>0 | wrong syntax, disable value comparison, use string comparison |[m [32m+[m[32m-!|[m [32m+[m[32m|test results for page|TestPage|should contain||[m [32m+[m[32m*![m [32m+[m [32m+[m[32m!*> Tests for type double[m [32m+[m [32m+[m[32m!| script |[m [32m+[m[32m|given page|TestPage|with content|${SUT_PATH} !-[m [32m+[m[32m!define TEST_SYSTEM {slim}[m [32m+[m [32m+[m[32m!| import |[m [32m+[m[32m| fitnesse.slim.test |[m [32m+[m [32m+[m[32mTest doubles by string comparison.[m [32m+[m[32mIn this case detailed diff ist wanted.[m [32m+[m [32m+[m[32m| Detailed Diff |[m [32m+[m[32m| actual double | expected double? | #comment |[m [32m+[m[32m| 1.0 | 1.0 | equal |[m [32m+[m[32m| 1.1 | 222 | completly different |[m [32m+[m[32m| 1.0 | 10 | partially different |[m [32m+[m[32m| | 1.0 | partially different |[m [32m+[m [32m+[m[32mTest doubles by value comparison, see =1 | ok |[m [32m+[m[32m| 1 | <2 | ok |[m [32m+[m[32m| 1 | >1 | nok |[m [32m+[m[32m| 1 | =1 | ok |[m [32m+[m[32m| 1 | <1 | nok |[m [32m+[m[32m| 1 | 0<_<2 | ok |[m [32m+[m[32m| 1 | 2<_<0 | nok, logically wrong |[m [32m+[m[32m| 1 | 0>_>2 | wrong syntax, disable value comparison, use string comparison |[m [32m+[m[32m| 1 | 2>_>0 | wrong syntax, disable value comparison, use string comparison |[m [32m+[m[32m| 1.0 | ~=1 | ok |[m [32m+[m[32m| 1.1 | ~=1 | ok |[m [32m+[m[32m| 0.9 | ~=1 | ok |[m [32m+[m[32m| 1.0 | ~=1.0 | ok |[m [32m+[m[32m| 1.1 | ~=1.0 | nok |[m [32m+[m[32m| 0.9 | ~=1.0 | nok |[m [32m+[m[32m-!|[m [32m+[m[32m|test results for page|TestPage|should contain||[m [32m+[m[32m*![m [32m+[m [32m+[m[32m!*> Tests of fitnesse symbols[m [32m+[m [32m+[m[32m!| script |[m [32m+[m[32m|given page|TestPage|with content|${SUT_PATH} !-[m [32m+[m[32m!define TEST_SYSTEM {slim}[m [32m+[m [32m+[m[32m!| import |[m [32m+[m[32m| fitnesse.slim.test |[m [32m+[m[32mTest symbols by string comparison.[m [32m+[m [32m+[m[32m| Detailed Diff |[m [32m+[m[32m| actual symbol | expected symbol? | #comment |[m [32m+[m[32m| abc | $symbol= | |[m [32m+[m[32m| $symbol | abc | |[m [32m+[m[32m| $symbol | xyz | |[m [32m+[m[32m| $symbol | xbc | |[m [32m+[m[32m| $symbol | ayc | |[m [32m+[m[32m| $symbol | abz | |[m [32m+[m[32m| abc | $symbol | |[m [32m+[m[32m| xyz | $symbol | |[m [32m+[m[32m| xbc | $symbol | |[m [32m+[m[32m| ayc | $symbol | |[m [32m+[m[32m| abz | $symbol | |[m [32m+[m[32m| | $symbol | |[m [32m+[m[32m-!|[m [32m+[m[32m|test results for page|TestPage|should contain|!-abc-!|[m [32m+[m[32m|test results for page|TestPage|should contain|!-[abc] expected [xyz]-!|[m [32m+[m[32m|test results for page|TestPage|should contain|!-[abc] expected [xbc]-!|[m [32m+[m[32m|test results for page|TestPage|should contain|!-[abc] expected [ayc]-!|[m [32m+[m[32m|test results for page|TestPage|should contain|!-[abc] expected [abz]-!|[m [32m+[m[32m|test results for page|TestPage|should contain|!-<span class="pass">$symbol->[abc]</span>-!|[m [32m+[m[32m|test results for page|TestPage|should contain|!-[xyz] expected [$symbol->[abc]]-!|[m [32m+[m[32m|test results for page|TestPage|should contain|!-[xbc] expected [$symbol->[abc]]-!|[m [32m+[m[32m|test results for page|TestPage|should contain|!-[ayc] expected [$symbol->[abc]]-!|[m [32m+[m[32m|test results for page|TestPage|should contain|!-[abz] expected [$symbol->[abc]]-!|[m [32m+[m[32m|test results for page|TestPage|should contain|!-[] expected [$symbol->[abc]]-!|[m [32m+[m[32m*![m [32m+[m [32m+[m[32m!*> Tests of custom comparator[m [32m+[m [32m+[m[32m!| script |[m [32m+[m[32m|given page|TestPage|with content|${SUT_PATH} !-[m [32m+[m[32m!define TEST_SYSTEM {slim}[m [32m+[m [32m+[m[32m!| import |[m [32m+[m[32m| fitnesse.slim.test |[m [32m+[m[32mTest custom comparator, see FitNesse.UserGuide.AdministeringFitNesse.ConfigurationFile[m [32m+[m[32mThe inverse comparator fitnesse.slim.test.InverseComparator negates the method String.equals(String).[m [32m+[m [32m+[m[32m| script | Detailed Diff |[m [32m+[m[32m| note | everything not equals to 'abc' is ok |[m [32m+[m[32m| check | echo | abc | inverse:xyz |[m [32m+[m[32m| note | everything not equals to 'abc' is ok |[m [32m+[m[32m| check | echo | abc | inverse:ABC |[m[41m [m [32m+[m[32m| note | everthing not equals to 'abc' is ok |[m [32m+[m[32m| check | echo | abc | inverse:cba |[m[41m [m [32m+[m[32m| note | only 'abc' is nok |[m [32m+[m[32m| check | echo | abc | inverse:abc |[m [32m+[m[32m-!|[m [32m+[m[32m|test results for page|TestPage|should contain||[m [32m+[m[32m*![m [32m+[m [32m+[m[32m!*> Tests of scenario[m [32m+[m [32m+[m[32m!| script |[m [32m+[m[32m|given page|TestPage|with content|${SUT_PATH} !-[m [32m+[m[32m!define TEST_SYSTEM {slim}[m [32m+[m [32m+[m[32m!| import |[m [32m+[m[32m| fitnesse.slim.test |[m [32m+[m[32mTest Scenario and Script[m [32m+[m [32m+[m[32m!| Scenario | Detailed Diff Scenario Test |[m [32m+[m[32m| start | Detailed Diff |[m [32m+[m[32m| check | echo | hello | hello |[m [32m+[m[32m| check | echo | hello | hallo |[m [32m+[m [32m+[m[32m!| Script |[m [32m+[m[32m| Detailed Diff Scenario Test |[m [32m+[m[32m-!|[m [32m+[m[32m|test results for page|TestPage|should contain|!-hello-!|[m [32m+[m[32m|test results for page|TestPage|should contain|!-[hello] expected [hallo]-!|[m [32m+[m[32m*![m [1mdiff --git a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSlimTests/TestDetailedDiff/properties.xml b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSlimTests/TestDetailedDiff/properties.xml[m [1mindex 6ca0af3..55bd9cd 100644[m [1m--- a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSlimTests/TestDetailedDiff/properties.xml[m [1m+++ b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSlimTests/TestDetailedDiff/properties.xml[m [36m@@ -1,12 +1,12 @@[m [31m-[m [31m- [m [31m- [m [32m+[m[32m[m [32m+[m[32mtrue [m [31m-true [m [31m-true [m [31m-true [m [31m-true [m [31m-true [m [31m-true [m [31m-true [m [31m-true [m [31m-[m [32m+[m[32m [m [1mdiff --git a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSlimTests/TestTryingParameterizationIsntTooGreedy/content.txt b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSlimTests/TestTryingParameterizationIsntTooGreedy/content.txt[m [1mindex d666fa1..ed204d1 100644[m [1m--- a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSlimTests/TestTryingParameterizationIsntTooGreedy/content.txt[m [1m+++ b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSlimTests/TestTryingParameterizationIsntTooGreedy/content.txt[m [36m@@ -1,33 +1,33 @@[m [31m-|import |[m [31m-|fitnesse.slim.test|[m [31m-[m [31m-[m [31m-There was a bug in the Scenario selection process that caused a scenario with no inputs to be selected when it should have been method on the driver class. This happened because the !-ScenarioTable-! class was enhanced to try all rows as parameterized. So it took "login" and tried "login _ ". This resulted in the "login" scenario being used instead of the "loginWithUsernameAndPassword" method when "connect as with" scenario was called. This page demonstrates the fix.[m [31m-[m [31m-[m [31m-!2 Scenario with no arguments and a shared root[m [31m-!|scenario |login |[m [31m-|connect to server|[m [31m-[m [31m-!2 [m [31m-!|scenario |connect as|username |with|password|[m [31m-|login with username|@username |and Password|@password |[m [31m-[m [31m-[m [31m-!2 Scenario With one argument and a shared root.[m [31m-!|scenario |login with|name|[m [31m-|connect to server as|@name |[m [31m-[m [31m-[m [31m-!2 Now calling a scenario that does take arguments, but since it isn't in parameterized format, the scenario with an argument isn't called, even though it shares a common root.[m [31m-!|scenario |connect as|username |with|password|[m [31m-|login with username|@username |and Password|@password |[m [31m-[m [31m-[m [31m-[m [31m-[m [31m-!|script |[m [31m-|start |Login Dialog Driver|bob |xyzz|[m [31m-|connect as|bob |with|xyzz|[m [31m-[m [31m-[m [32m+[m[32m|import |[m [32m+[m[32m|fitnesse.slim.test|[m [32m+[m [32m+[m [32m+[m[32mThere was a bug in the Scenario selection process that caused a scenario with no inputs to be selected when it should have been method on the driver class. This happened because the !-ScenarioTable-! class was enhanced to try all rows as parameterized. So it took "login" and tried "login _ ". This resulted in the "login" scenario being used instead of the "loginWithUsernameAndPassword" method when "connect as with" scenario was called. This page demonstrates the fix.[m [32m+[m [32m+[m [32m+[m[32m!2 Scenario with no arguments and a shared root[m [32m+[m[32m!|scenario |login |[m [32m+[m[32m|connect to server|[m [32m+[m [32m+[m[32m!2[m[41m [m [32m+[m[32m!|scenario |connect as|username |with|password|[m [32m+[m[32m|login with username|@username |and Password|@password |[m [32m+[m [32m+[m [32m+[m[32m!2 Scenario With one argument and a shared root.[m [32m+[m[32m!|scenario |login with|name|[m [32m+[m[32m|connect to server as|@name |[m [32m+[m [32m+[m [32m+[m[32m!2 Now calling a scenario that does take arguments, but since it isn't in parameterized format, the scenario with an argument isn't called, even though it shares a common root.[m [32m+[m[32m!|scenario |connect as|username |with|password|[m [32m+[m[32m|login with username|@username |and Password|@password |[m [32m+[m [32m+[m [32m+[m [32m+[m [32m+[m[32m!|script |[m [32m+[m[32m|start |Login Dialog Driver|bob |xyzz|[m [32m+[m[32m|connect as|bob |with|xyzz|[m [32m+[m [32m+[m [1mdiff --git a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSlimTests/TestTryingParameterizationIsntTooGreedy/properties.xml b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSlimTests/TestTryingParameterizationIsntTooGreedy/properties.xml[m [1mindex 4e908ad..e13fdf4 100644[m [1m--- a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSlimTests/TestTryingParameterizationIsntTooGreedy/properties.xml[m [1m+++ b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSlimTests/TestTryingParameterizationIsntTooGreedy/properties.xml[m [36m@@ -1,12 +1,12 @@[m [31m-[m [31m-true [m [32m+[m[32mtrue [m [32m+[m[32mtrue [m [32m+[m[32mtrue [m [32m+[m[32mtrue [m [32m+[m[32mtrue [m [32m+[m[32mtrue [m [32m+[m[32mtrue [m [32m+[m[32mtrue [m [32m+[m[32m[m [31m- [m [32m+[m[32m[m [32m+[m[32mtrue [m [31m-true [m [31m-true [m [31m-true [m [31m-true [m [31m-true [m [31m-true [m [31m-true [m [31m-true [m [31m-[m [32m+[m [32m [m [1mdiff --git a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateAbsoluteSymbolicLink/content.txt b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateAbsoluteSymbolicLink/content.txt[m [1mindex 0c1ff96..86d613f 100644[m [1m--- a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateAbsoluteSymbolicLink/content.txt[m [1m+++ b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateAbsoluteSymbolicLink/content.txt[m [36m@@ -1,14 +1,14 @@[m [31m-Create an absolute symbolic link from a sub-page:[m [31m-[m [31m-First we need to create some pages to play with.[m [31m-!|Page creator.|[m [31m-|Page name. |PageContents. |valid?|[m [31m-|LinkingPage |LINKING PAGE |true |[m [31m-|LinkingPage.LinkingChild|LINKING CHILD |true |[m [31m-|LinkedPage |LINKED PAGE |true |[m [31m-|LinkedPage.LinkedChild |LINKED CHILD |true |[m [31m-[m [31m-Now we create a symbolic link named !-SymLink-!. This links !-LinkedPage.LinkedChild-! as a child of !-LinkingPage.LinkingChild-!.[m [31m-!|Response Requester.|[m [31m-|uri |status?|[m [31m-|LinkingPage.LinkingChild?responder=symlink&linkName=SymLink&linkPath=.LinkedPage.LinkedChild|303|[m [32m+[m[32mCreate an absolute symbolic link from a sub-page:[m [32m+[m [32m+[m[32mFirst we need to create some pages to play with.[m [32m+[m[32m!|Page creator.|[m [32m+[m[32m|Page name. |PageContents. |valid?|[m [32m+[m[32m|LinkingPage |LINKING PAGE |true |[m [32m+[m[32m|LinkingPage.LinkingChild|LINKING CHILD |true |[m [32m+[m[32m|LinkedPage |LINKED PAGE |true |[m [32m+[m[32m|LinkedPage.LinkedChild |LINKED CHILD |true |[m [32m+[m [32m+[m[32mNow we create a symbolic link named !-SymLink-!. This links !-LinkedPage.LinkedChild-! as a child of !-LinkingPage.LinkingChild-!.[m [32m+[m[32m!|Response Requester.|[m [32m+[m[32m|uri |status?|[m [32m+[m[32m|LinkingPage.LinkingChild?responder=symlink&linkName=SymLink&linkPath=.LinkedPage.LinkedChild|303|[m [1mdiff --git a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateAbsoluteSymbolicLink/properties.xml b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateAbsoluteSymbolicLink/properties.xml[m [1mindex 321f386..40a15d7 100644[m [1m--- a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateAbsoluteSymbolicLink/properties.xml[m [1m+++ b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateAbsoluteSymbolicLink/properties.xml[m [36m@@ -1,10 +1,10 @@[m [31m-[m [31m-true [m [32m+[m [32mtrue [m [32m+[m [32mtrue [m [32m+[m [32mtrue [m [32m+[m [32mtrue [m [32m+[m [32mtrue [m [32m+[m [32mtrue [m [32m+[m [32mtrue [m [32m+[m [32mtrue [m [32m+[m[32m[m [31m- [m [32m+[m[32m[m [32m+[m[32m[m [31m- [m [31m- 20071209231745 [m [31m-[m [31m- [m [31m- 1197255276583 [m [31m--2802271540647210678 [m [31m-[m [32m+[m[32m [m [1mdiff --git a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateBackwardSymbolicLink/content.txt b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateBackwardSymbolicLink/content.txt[m [1mindex 236e215..46107f7 100644[m [1m--- a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateBackwardSymbolicLink/content.txt[m [1m+++ b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateBackwardSymbolicLink/content.txt[m [36m@@ -1,13 +1,13 @@[m [31m-Create an absolute symbolic link from a sub-page:[m [31m-[m [31m-First we need to create some pages to play with.[m [31m-!|Page creator.|[m [31m-|Page name. |PageContents. |valid?|[m [31m-|LinkingPage |LINKING PAGE |true |[m [31m-|LinkingPage.LinkingChild|LINKING CHILD |true |[m [31m-|LinkingPage.LinkedChild |LINKED CHILD |true |[m [31m-[m [31m-Now we create a symbolic link named !-SymLink-!. This links !-LinkedPage.LinkedChild-! as a child of !-LinkingPage.LinkingChild-!.[m [31m-!|Response Requester.|[m [31m-|uri |status?|[m [31m-|LinkingPage.LinkingChild?responder=symlink&linkName=SymLink&linkPath=[m [32m+[m[32m [m [32m+[m[32m 20071209231745 [m [32m+[m[32m[m [32m+[m[32m [m [32m+[m[32m 1197255276583 [m [32m+[m[32m-2802271540647210678 [m [32m+[m[32m[m [31m- [m [31m- [m [32m+[m[32m[m [32m+[m[32m[m [31m- [m [31m- 20071209231818 [m [31m-[m [31m- [m [31m- 1197255523311 [m [31m--2905294764201163185 [m [31m-[m [32m+[m[32m [m [1mdiff --git a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateNestedBackSymbolicLink/content.txt b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateNestedBackSymbolicLink/content.txt[m [1mindex 0666d27..2c6e161 100644[m [1m--- a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateNestedBackSymbolicLink/content.txt[m [1m+++ b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateNestedBackSymbolicLink/content.txt[m [36m@@ -1,15 +1,15 @@[m [31m-Create an nested backward symbolic link from a sub-page:[m [31m-[m [31m-First we need to create some pages to play with.[m [31m-!|Page creator.|[m [31m-|Page name. |PageContents. |valid?|[m [31m-|LinkingPage |LINKING PAGE |true |[m [31m-|LinkingPage.LinkingChild |LINKING CHILD |true |[m [31m-|LinkingPage.LinkingChild.LinkingGrandChild |LINKING GRAND CHILD |true |[m [31m-|LinkingPage.LinkingChild.LinkingGrandChild.LinkingGreatGrandChild|LINKING GREAT GRAND CHILD |true |[m [31m-|LinkingPage.LinkingChild.LinkedChild |LINKED CHILD |true |[m [31m-[m [31m-Now we create a symbolic link named !-SymLink-!. This links !-LinkedPage.LinkedChild-! as a child of !-LinkingPage.LinkingChild-!.[m [31m-!|Response Requester.|[m [31m-|uri |status?|[m [31m-|LinkingPage.LinkingChild.LinkingGrandChild.LinkingGreatGrandChild?responder=symlink&linkName=SymLink&linkPath=[m [32m+[m[32m [m [32m+[m[32m 20071209231818 [m [32m+[m[32m[m [32m+[m[32m [m [32m+[m[32m 1197255523311 [m [32m+[m[32m-2905294764201163185 [m [32m+[m[32m[m [31m- [m [31m- [m [32m+[m[32m[m [32m+[m[32m[m [31m- [m [31m- 20071212153458 [m [31m-[m [31m- [m [31m- 1197318232254 [m [31m--6614712250920689672 [m [31m-[m [32m+[m[32m [m [1mdiff --git a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateRelativeSymbolicLink/content.txt b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateRelativeSymbolicLink/content.txt[m [1mindex 78d3ef3..0db90fc 100644[m [1m--- a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateRelativeSymbolicLink/content.txt[m [1m+++ b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateRelativeSymbolicLink/content.txt[m [36m@@ -1,15 +1,15 @@[m [31m-Creating a symbolic link is done in the properties view of the page that will contain the link. There is a form where a user supplies a name for the link and a path for the linked page. When submitted the URL has the following form:[m [31m-[m [31m-!-http://host/PathToPage?responder=symlink&linkName=[m [32m+[m[32m [m [32m+[m[32m 20071212153458 [m [32m+[m[32m[m [32m+[m[32m [m [32m+[m[32m 1197318232254 [m [32m+[m[32m-6614712250920689672 [m [32m+[m[32m&linkPath= -![m [31m-[m [31m-First we need to create some pages to play with.[m [31m-!|Page creator.|[m [31m-|Page name.|valid?|[m [31m-|LinkingPage|true|[m [31m-|LinkedPage|true|[m [31m-[m [31m-Now we create a symbolic link named !-SymLink-!. This links !-LinkedPage-! as a child of !-LinkingPage-!.[m [31m-!|Response Requester.|[m [31m-|uri |status?|[m [31m-|LinkingPage?responder=symlink&linkName=SymLink&linkPath=LinkedPage|303|[m [31m-[m [32m+[m[32mCreating a symbolic link is done in the properties view of the page that will contain the link. There is a form where a user supplies a name for the link and a path for the linked page. When submitted the URL has the following form:[m [32m+[m [32m+[m[32m!-http://host/PathToPage?responder=symlink&linkName= &linkPath= -![m [32m+[m [32m+[m[32mFirst we need to create some pages to play with.[m [32m+[m[32m!|Page creator.|[m [32m+[m[32m|Page name.|valid?|[m [32m+[m[32m|LinkingPage|true|[m [32m+[m[32m|LinkedPage|true|[m [32m+[m [32m+[m[32mNow we create a symbolic link named !-SymLink-!. This links !-LinkedPage-! as a child of !-LinkingPage-!.[m [32m+[m[32m!|Response Requester.|[m [32m+[m[32m|uri |status?|[m [32m+[m[32m|LinkingPage?responder=symlink&linkName=SymLink&linkPath=LinkedPage|303|[m [32m+[m [1mdiff --git a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateRelativeSymbolicLink/properties.xml b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateRelativeSymbolicLink/properties.xml[m [1mindex cccf3d6..397f67b 100644[m [1m--- a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateRelativeSymbolicLink/properties.xml[m [1m+++ b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateRelativeSymbolicLink/properties.xml[m [36m@@ -1,10 +1,10 @@[m [31m-[m [31m- [m [31m- [m [32m+[m[32m[m [32m+[m[32m[m [31m- [m [31m- 20071209231838 [m [31m-[m [31m- [m [31m- 1197229524174 [m [31m-5360217332855886973 [m [31m-[m [32m+[m[32m [m [1mdiff --git a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateSubPageSymbolicLink/content.txt b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateSubPageSymbolicLink/content.txt[m [1mindex 1dff5c4..7518a79 100644[m [1m--- a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateSubPageSymbolicLink/content.txt[m [1m+++ b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateSubPageSymbolicLink/content.txt[m [36m@@ -1,12 +1,12 @@[m [31m-Create a symbolic link to a sub-page:[m [31m-[m [31m-First we need to create some pages to play with.[m [31m-!|Page creator.|[m [31m-|Page name. |PageContents. |valid?|[m [31m-|LinkingPage |LINKING PAGE |true |[m [31m-|LinkingPage.LinkedChild |LINKED CHILD |true |[m [31m-[m [31m-Now we create a symbolic link named !-SymLink-!. This links !-LinkingPage.LinkedChild-! as a child of !-LinkingPage-!.[m [31m-!|Response Requester.|[m [31m-|uri |status?|[m [31m-|LinkingPage?responder=symlink&linkName=SymLink&linkPath=>LinkedChild|303|[m [32m+[m[32mCreate a symbolic link to a sub-page:[m [32m+[m [32m+[m[32mFirst we need to create some pages to play with.[m [32m+[m[32m!|Page creator.|[m [32m+[m[32m|Page name. |PageContents. |valid?|[m [32m+[m[32m|LinkingPage |LINKING PAGE |true |[m [32m+[m[32m|LinkingPage.LinkedChild |LINKED CHILD |true |[m [32m+[m [32m+[m[32mNow we create a symbolic link named !-SymLink-!. This links !-LinkingPage.LinkedChild-! as a child of !-LinkingPage-!.[m [32m+[m[32m!|Response Requester.|[m [32m+[m[32m|uri |status?|[m [32m+[m[32m|LinkingPage?responder=symlink&linkName=SymLink&linkPath=>LinkedChild|303|[m [1mdiff --git a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateSubPageSymbolicLink/properties.xml b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateSubPageSymbolicLink/properties.xml[m [1mindex 54faed6..c67bf59 100644[m [1m--- a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateSubPageSymbolicLink/properties.xml[m [1m+++ b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/CreateSubPageSymbolicLink/properties.xml[m [36m@@ -1,14 +1,14 @@[m [31m-[m [31m-[m [32m+[m[32m [m [32m+[m[32m 20071209231838 [m [32m+[m[32m[m [32m+[m[32m [m [32m+[m[32m 1197229524174 [m [32m+[m[32m5360217332855886973 [m [32m+[m[32m[m [31m- [m [32m+[m[32m[m [32m+[m[32mtrue [m [31m-true [m [31m-20071209210332 [m [31m-true [m [31m-true [m [31m-true [m [31m-true [m [31m-true [m [31m-true [m [31m-1197252212825 [m [31m-6202123951021509855 [m [31m-[m [32m+[m[32m [m [1mdiff --git a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/content.txt b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/content.txt[m [1mindex 0f89b13..759f058 100644[m [1m--- a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/content.txt[m [1m+++ b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/content.txt[m [36m@@ -1,14 +1,14 @@[m [31m-!c !3 Symbolic Links[m [31m-[m [31m-Symbolic Links allow a user to easily create parent-child links between pages without permanently affecting the wiki structure. One common reason need for Symbolic Links is the the testing of a system on multiple environments. For example, imagine an application that site on top of an Oracle database. Hundreds of FitNesse tests have been written for this application using Oracle settings and then the team is confronted with the need to run the application on !-MySql-!. Getting both databases running under the same suite of tests can be very difficult and may result in duplicating all the tests. With Symbolic Links, the database configurations can be stored in high level pages along with appropriate path elements. Then the high-level pages may symbolically link to the test suite. In this manner one suite of tests can be executed in multiple environments.[m [31m-[m [31m-[m [31m->TestCreatingRelativeSymbolicLink[m [31m->TestCreatingAbsoluteSymbolicLink[m [31m->TestCreatingSubPageSymbolicLink[m [31m->TestCreatingBackwardSymbolicLink[m [31m->TestRemovingSymbolicLink[m [31m->TestSymbolicLinkBehavior[m [31m-----[m [31m-All Subpages:[m [32m+[m[32m!c !3 Symbolic Links[m [32m+[m [32m+[m[32mSymbolic Links allow a user to easily create parent-child links between pages without permanently affecting the wiki structure. One common reason need for Symbolic Links is the the testing of a system on multiple environments. For example, imagine an application that site on top of an Oracle database. Hundreds of FitNesse tests have been written for this application using Oracle settings and then the team is confronted with the need to run the application on !-MySql-!. Getting both databases running under the same suite of tests can be very difficult and may result in duplicating all the tests. With Symbolic Links, the database configurations can be stored in high level pages along with appropriate path elements. Then the high-level pages may symbolically link to the test suite. In this manner one suite of tests can be executed in multiple environments.[m [32m+[m [32m+[m [32m+[m[32m>TestCreatingRelativeSymbolicLink[m [32m+[m[32m>TestCreatingAbsoluteSymbolicLink[m [32m+[m[32m>TestCreatingSubPageSymbolicLink[m [32m+[m[32m>TestCreatingBackwardSymbolicLink[m [32m+[m[32m>TestRemovingSymbolicLink[m [32m+[m[32m>TestSymbolicLinkBehavior[m [32m+[m[32m----[m [32m+[m[32mAll Subpages:[m !contents[m \ No newline at end of file[m [1mdiff --git a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/properties.xml b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/properties.xml[m [1mindex 3b4d24d..3c2058d 100644[m [1m--- a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/properties.xml[m [1m+++ b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSymbolicLinkTests/properties.xml[m [36m@@ -1,12 +1,12 @@[m [31m-[m [31m-true [m [32m+[m[32mtrue [m [32m+[m[32m20071209210332 [m [32m+[m[32mtrue [m [32m+[m[32mtrue [m [32m+[m[32mtrue [m [32m+[m[32mtrue [m [32m+[m[32mtrue [m [32m+[m[32mtrue [m [32m+[m[32m1197252212825 [m [32m+[m[32m6202123951021509855 [m [32m+[m[32m[m [31m- [m [32m+[m[32m[m [32m+[m[32m[m [31m- [m [31m- 20071209232537 [m [31m-[m [31m- [m [31m- [m [31m- [m [31m- 1197260737340 [m [31m-159061011507139978 [m [31m-[m [32m+[m[32m [m [1mdiff --git a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteWidgetTests/TestHttpStatus/properties.xml b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteWidgetTests/TestHttpStatus/properties.xml[m [1mindex abb3da8..59a0a7c 100644[m [1m--- a/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteWidgetTests/TestHttpStatus/properties.xml[m [1m+++ b/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteWidgetTests/TestHttpStatus/properties.xml[m [36m@@ -1,9 +1,9 @@[m [31m-[m [31m-[m [32m+[m[32m [m [32m+[m[32m 20071209232537 [m [32m+[m[32m[m [32m+[m[32m [m [32m+[m[32m [m [32m+[m[32m [m [32m+[m[32m 1197260737340 [m [32m+[m[32m159061011507139978 [m [32m+[m[32m[m [31m- [m [32m+[m[32m[m [32m+[m[32m[m [31m- 20071130010014 [m [31m-[m [31m- [m [31m- [m [31m- [m [31m- [m [32m+[m[32m [m [1mdiff --git a/pom.xml b/pom.xml[m [1mindex 29af419..e13676f 100644[m [1m--- a/pom.xml[m [1m+++ b/pom.xml[m [36m@@ -9,8 +9,8 @@[m[m [32m+[m[32m 20071130010014 [m [32m+[m[32m[m [32m+[m[32m [m [32m+[m[32m [m [32m+[m[32m [m [32m+[m[32m 1.2.0 [m [m[m [31m- src [m [31m-test [m [32m+[m[32msrc/main [m [32m+[m[32msrc/test [m [m[m [m [36m@@ -20,7 +20,7 @@[m [m [m [m [31m- test [m [32m+[m[32msrc/test [m[m [m [36m@@ -83,7 +83,7 @@[m**/*.java [m[m [m [1mdiff --git a/src/main/LispMain.java b/src/main/application/LispMain.java[m [1msimilarity index 99%[m [1mrename from src/main/LispMain.java[m [1mrename to src/main/application/LispMain.java[m [1mindex 837af64..91d8837 100644[m [1m--- a/src/main/LispMain.java[m [1m+++ b/src/main/application/LispMain.java[m [36m@@ -1,4 +1,4 @@[m [31m-package main;[m [32m+[m[32mpackage application;[m [m import static com.googlecode.lanterna.terminal.IOSafeTerminalAdapter.createRuntimeExceptionConvertingAdapter;[m import static java.text.MessageFormat.format;[m [1mdiff --git a/src/environment/RuntimeEnvironment.java b/src/main/environment/RuntimeEnvironment.java[m [1msimilarity index 100%[m [1mrename from src/environment/RuntimeEnvironment.java[m [1mrename to src/main/environment/RuntimeEnvironment.java[m [1mdiff --git a/src/error/CriticalLineColumnException.java b/src/main/error/CriticalLineColumnException.java[m [1msimilarity index 100%[m [1mrename from src/error/CriticalLineColumnException.java[m [1mrename to src/main/error/CriticalLineColumnException.java[m [1mdiff --git a/src/error/CriticalLispException.java b/src/main/error/CriticalLispException.java[m [1msimilarity index 100%[m [1mrename from src/error/CriticalLispException.java[m [1mrename to src/main/error/CriticalLispException.java[m [1mdiff --git a/src/error/ErrorManager.java b/src/main/error/ErrorManager.java[m [1msimilarity index 100%[m [1mrename from src/error/ErrorManager.java[m [1mrename to src/main/error/ErrorManager.java[m [1mdiff --git a/src/error/LineColumnException.java b/src/main/error/LineColumnException.java[m [1msimilarity index 100%[m [1mrename from src/error/LineColumnException.java[m [1mrename to src/main/error/LineColumnException.java[m [1mdiff --git a/src/error/LispException.java b/src/main/error/LispException.java[m [1msimilarity index 100%[m [1mrename from src/error/LispException.java[m [1mrename to src/main/error/LispException.java[m [1mdiff --git a/src/error/LispWarning.java b/src/main/error/LispWarning.java[m [1msimilarity index 100%[m [1mrename from src/error/LispWarning.java[m [1mrename to src/main/error/LispWarning.java[m [1mdiff --git a/src/file/FilePosition.java b/src/main/file/FilePosition.java[m [1msimilarity index 100%[m [1mrename from src/file/FilePosition.java[m [1mrename to src/main/file/FilePosition.java[m [1mdiff --git a/src/file/FilePositionTracker.java b/src/main/file/FilePositionTracker.java[m [1msimilarity index 100%[m [1mrename from src/file/FilePositionTracker.java[m [1mrename to src/main/file/FilePositionTracker.java[m [1mdiff --git a/src/function/ArgumentValidator.java b/src/main/function/ArgumentValidator.java[m [1msimilarity index 100%[m [1mrename from src/function/ArgumentValidator.java[m [1mrename to src/main/function/ArgumentValidator.java[m [1mdiff --git a/src/function/FunctionNames.java b/src/main/function/FunctionNames.java[m [1msimilarity index 100%[m [1mrename from src/function/FunctionNames.java[m [1mrename to src/main/function/FunctionNames.java[m [1mdiff --git a/src/function/LispFunction.java b/src/main/function/LispFunction.java[m [1msimilarity index 100%[m [1mrename from src/function/LispFunction.java[m [1mrename to src/main/function/LispFunction.java[m [1mdiff --git a/src/function/LispSpecialFunction.java b/src/main/function/LispSpecialFunction.java[m [1msimilarity index 100%[m [1mrename from src/function/LispSpecialFunction.java[m [1mrename to src/main/function/LispSpecialFunction.java[m [1mdiff --git a/src/function/UserDefinedFunction.java b/src/main/function/UserDefinedFunction.java[m [1msimilarity index 100%[m [1mrename from src/function/UserDefinedFunction.java[m [1mrename to src/main/function/UserDefinedFunction.java[m [1mdiff --git a/src/function/UserDefinedMacro.java b/src/main/function/UserDefinedMacro.java[m [1msimilarity index 100%[m [1mrename from src/function/UserDefinedMacro.java[m [1mrename to src/main/function/UserDefinedMacro.java[m [1mdiff --git a/src/function/UserDefinedSpecialFunction.java b/src/main/function/UserDefinedSpecialFunction.java[m [1msimilarity index 100%[m [1mrename from src/function/UserDefinedSpecialFunction.java[m [1mrename to src/main/function/UserDefinedSpecialFunction.java[m [1mdiff --git a/src/function/builtin/APPLY.java b/src/main/function/builtin/APPLY.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/APPLY.java[m [1mrename to src/main/function/builtin/APPLY.java[m [1mdiff --git a/src/function/builtin/BackquoteEvaluator.java b/src/main/function/builtin/BackquoteEvaluator.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/BackquoteEvaluator.java[m [1mrename to src/main/function/builtin/BackquoteEvaluator.java[m [1mdiff --git a/src/function/builtin/EVAL.java b/src/main/function/builtin/EVAL.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/EVAL.java[m [1mrename to src/main/function/builtin/EVAL.java[m [1mdiff --git a/src/function/builtin/EXIT.java b/src/main/function/builtin/EXIT.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/EXIT.java[m [1mrename to src/main/function/builtin/EXIT.java[m [1mdiff --git a/src/function/builtin/FUNCALL.java b/src/main/function/builtin/FUNCALL.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/FUNCALL.java[m [1mrename to src/main/function/builtin/FUNCALL.java[m [1mdiff --git a/src/function/builtin/FUSE.java b/src/main/function/builtin/FUSE.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/FUSE.java[m [1mrename to src/main/function/builtin/FUSE.java[m [1mdiff --git a/src/function/builtin/GENSYM.java b/src/main/function/builtin/GENSYM.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/GENSYM.java[m [1mrename to src/main/function/builtin/GENSYM.java[m [1mdiff --git a/src/function/builtin/LOAD.java b/src/main/function/builtin/LOAD.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/LOAD.java[m [1mrename to src/main/function/builtin/LOAD.java[m [1mdiff --git a/src/function/builtin/PRINT.java b/src/main/function/builtin/PRINT.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/PRINT.java[m [1mrename to src/main/function/builtin/PRINT.java[m [1mdiff --git a/src/function/builtin/SET.java b/src/main/function/builtin/SET.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/SET.java[m [1mrename to src/main/function/builtin/SET.java[m [1mdiff --git a/src/function/builtin/SYMBOLS.java b/src/main/function/builtin/SYMBOLS.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/SYMBOLS.java[m [1mrename to src/main/function/builtin/SYMBOLS.java[m [1mdiff --git a/src/function/builtin/SYMBOL_FUNCTION.java b/src/main/function/builtin/SYMBOL_FUNCTION.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/SYMBOL_FUNCTION.java[m [1mrename to src/main/function/builtin/SYMBOL_FUNCTION.java[m [1mdiff --git a/src/function/builtin/cons/APPEND.java b/src/main/function/builtin/cons/APPEND.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/cons/APPEND.java[m [1mrename to src/main/function/builtin/cons/APPEND.java[m [1mdiff --git a/src/function/builtin/cons/CONS.java b/src/main/function/builtin/cons/CONS.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/cons/CONS.java[m [1mrename to src/main/function/builtin/cons/CONS.java[m [1mdiff --git a/src/function/builtin/cons/FIRST.java b/src/main/function/builtin/cons/FIRST.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/cons/FIRST.java[m [1mrename to src/main/function/builtin/cons/FIRST.java[m [1mdiff --git a/src/function/builtin/cons/LENGTH.java b/src/main/function/builtin/cons/LENGTH.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/cons/LENGTH.java[m [1mrename to src/main/function/builtin/cons/LENGTH.java[m [1mdiff --git a/src/function/builtin/cons/LIST.java b/src/main/function/builtin/cons/LIST.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/cons/LIST.java[m [1mrename to src/main/function/builtin/cons/LIST.java[m [1mdiff --git a/src/function/builtin/cons/REST.java b/src/main/function/builtin/cons/REST.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/cons/REST.java[m [1mrename to src/main/function/builtin/cons/REST.java[m [1mdiff --git a/src/function/builtin/math/DIVIDE.java b/src/main/function/builtin/math/DIVIDE.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/math/DIVIDE.java[m [1mrename to src/main/function/builtin/math/DIVIDE.java[m [1mdiff --git a/src/function/builtin/math/MINUS.java b/src/main/function/builtin/math/MINUS.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/math/MINUS.java[m [1mrename to src/main/function/builtin/math/MINUS.java[m [1mdiff --git a/src/function/builtin/math/MODULO.java b/src/main/function/builtin/math/MODULO.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/math/MODULO.java[m [1mrename to src/main/function/builtin/math/MODULO.java[m [1mdiff --git a/src/function/builtin/math/MULTIPLY.java b/src/main/function/builtin/math/MULTIPLY.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/math/MULTIPLY.java[m [1mrename to src/main/function/builtin/math/MULTIPLY.java[m [1mdiff --git a/src/function/builtin/math/MathFunction.java b/src/main/function/builtin/math/MathFunction.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/math/MathFunction.java[m [1mrename to src/main/function/builtin/math/MathFunction.java[m [1mdiff --git a/src/function/builtin/math/PLUS.java b/src/main/function/builtin/math/PLUS.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/math/PLUS.java[m [1mrename to src/main/function/builtin/math/PLUS.java[m [1mdiff --git a/src/function/builtin/math/REMAINDER.java b/src/main/function/builtin/math/REMAINDER.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/math/REMAINDER.java[m [1mrename to src/main/function/builtin/math/REMAINDER.java[m [1mdiff --git a/src/function/builtin/predicate/ATOM.java b/src/main/function/builtin/predicate/ATOM.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/predicate/ATOM.java[m [1mrename to src/main/function/builtin/predicate/ATOM.java[m [1mdiff --git a/src/function/builtin/predicate/EQ.java b/src/main/function/builtin/predicate/EQ.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/predicate/EQ.java[m [1mrename to src/main/function/builtin/predicate/EQ.java[m [1mdiff --git a/src/function/builtin/predicate/EQUAL.java b/src/main/function/builtin/predicate/EQUAL.java[m [1msimilarity index 100%[m [1mrename from src/function/builtin/predicate/EQUAL.java[m [1mrename to src/main/function/builtin/predicate/EQUAL.java[m [1mdiff --git a/src/function/builtin/predicate/GENSYM_EQUAL.java b/src/main/fu[m [m[m [31m- [mmain.LispMain [m [32m+[m[32mapplication.LispMain [m
(truncated output; full size was 155.86 KB)
text/gemini; charset=utf-8
This content has been proxied by September (3851b).