Refactor source code directories
This commit is contained in:
parent
529dfa473b
commit
114a3e4309
|
@ -1,12 +1,12 @@
|
|||
There are cases when you want to copy and append the last row of your column or row fixture certain number of times.
|
||||
|
||||
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.
|
||||
|
||||
!|Copy and Append Last Row|100|number of times|
|
||||
|Division|
|
||||
|numerator|denominator|quotient()|
|
||||
|10|2|5|
|
||||
|12.6|3|4.2|
|
||||
|100|4|25|
|
||||
|
||||
In the above example, we want to divide 100 by 4 101 times.
|
||||
There are cases when you want to copy and append the last row of your column or row fixture certain number of times.
|
||||
|
||||
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.
|
||||
|
||||
!|Copy and Append Last Row|100|number of times|
|
||||
|Division|
|
||||
|numerator|denominator|quotient()|
|
||||
|10|2|5|
|
||||
|12.6|3|4.2|
|
||||
|100|4|25|
|
||||
|
||||
In the above example, we want to divide 100 by 4 101 times.
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Edit/>
|
||||
<Files/>
|
||||
<LastModified>20061216213113</LastModified>
|
||||
<Properties/>
|
||||
<RecentChanges/>
|
||||
<Test/>
|
||||
<WhereUsed/>
|
||||
<saveId>1166322673244</saveId>
|
||||
<secure-write/>
|
||||
<ticketId>524008525574625139</ticketId>
|
||||
</properties>
|
||||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Edit/>
|
||||
<Files/>
|
||||
<LastModified>20061216213113</LastModified>
|
||||
<Properties/>
|
||||
<RecentChanges/>
|
||||
<Test/>
|
||||
<WhereUsed/>
|
||||
<saveId>1166322673244</saveId>
|
||||
<secure-write/>
|
||||
<ticketId>524008525574625139</ticketId>
|
||||
</properties>
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
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?
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
!|Copy and Append Last Row|100|times|
|
||||
|Increment Columns Value|numerator|of type|int|by|5|
|
||||
|Increment Columns Value|denominator|of type|int|by|1|
|
||||
|Division|
|
||||
|numerator|denominator|quotient()|
|
||||
|5|1|5|
|
||||
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?
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
!|Copy and Append Last Row|100|times|
|
||||
|Increment Columns Value|numerator|of type|int|by|5|
|
||||
|Increment Columns Value|denominator|of type|int|by|1|
|
||||
|Division|
|
||||
|numerator|denominator|quotient()|
|
||||
|5|1|5|
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Edit/>
|
||||
<Files/>
|
||||
<LastModified>20061216215829</LastModified>
|
||||
<Properties/>
|
||||
<RecentChanges/>
|
||||
<Test/>
|
||||
<WhereUsed/>
|
||||
<saveId>1166324308994</saveId>
|
||||
<secure-write/>
|
||||
<ticketId>-8528063939302055872</ticketId>
|
||||
</properties>
|
||||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Edit/>
|
||||
<Files/>
|
||||
<LastModified>20061216215829</LastModified>
|
||||
<Properties/>
|
||||
<RecentChanges/>
|
||||
<Test/>
|
||||
<WhereUsed/>
|
||||
<saveId>1166324308994</saveId>
|
||||
<secure-write/>
|
||||
<ticketId>-8528063939302055872</ticketId>
|
||||
</properties>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
!|Import|
|
||||
|fit.decorator|
|
||||
|fit.decorator.performance|
|
||||
|eg|
|
||||
!|Import|
|
||||
|fit.decorator|
|
||||
|fit.decorator.performance|
|
||||
|eg|
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Edit>true</Edit>
|
||||
<Files>true</Files>
|
||||
<LastModified>20061216183948</LastModified>
|
||||
<Properties>true</Properties>
|
||||
<RecentChanges>true</RecentChanges>
|
||||
<Refactor>true</Refactor>
|
||||
<Search>true</Search>
|
||||
<Versions>true</Versions>
|
||||
<WhereUsed>true</WhereUsed>
|
||||
<saveId>1166312388007</saveId>
|
||||
<ticketId>-6757238585913794424</ticketId>
|
||||
</properties>
|
||||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Edit>true</Edit>
|
||||
<Files>true</Files>
|
||||
<LastModified>20061216183948</LastModified>
|
||||
<Properties>true</Properties>
|
||||
<RecentChanges>true</RecentChanges>
|
||||
<Refactor>true</Refactor>
|
||||
<Search>true</Search>
|
||||
<Versions>true</Versions>
|
||||
<WhereUsed>true</WhereUsed>
|
||||
<saveId>1166312388007</saveId>
|
||||
<ticketId>-6757238585913794424</ticketId>
|
||||
</properties>
|
||||
|
|
|
@ -1 +1 @@
|
|||
!|fit.Summary|
|
||||
!|fit.Summary|
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Edit>true</Edit>
|
||||
<Files>true</Files>
|
||||
<LastModified>20061216141632</LastModified>
|
||||
<Properties>true</Properties>
|
||||
<RecentChanges>true</RecentChanges>
|
||||
<Refactor>true</Refactor>
|
||||
<Search>true</Search>
|
||||
<Versions>true</Versions>
|
||||
<WhereUsed>true</WhereUsed>
|
||||
<saveId>1166296592283</saveId>
|
||||
<ticketId>-5128325404176707243</ticketId>
|
||||
</properties>
|
||||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Edit>true</Edit>
|
||||
<Files>true</Files>
|
||||
<LastModified>20061216141632</LastModified>
|
||||
<Properties>true</Properties>
|
||||
<RecentChanges>true</RecentChanges>
|
||||
<Refactor>true</Refactor>
|
||||
<Search>true</Search>
|
||||
<Versions>true</Versions>
|
||||
<WhereUsed>true</WhereUsed>
|
||||
<saveId>1166296592283</saveId>
|
||||
<ticketId>-5128325404176707243</ticketId>
|
||||
</properties>
|
||||
|
|
|
@ -1,145 +1,145 @@
|
|||
!define TEST_SYSTEM {slim}
|
||||
|
||||
!| import |
|
||||
| fitnesse.slim.test |
|
||||
|
||||
|
||||
Test Strings by plain compare, neither custom compare nor regular expression.
|
||||
In this case detailed diff is wanted.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual string | expected string? | #comment |
|
||||
| abc | abc | equal |
|
||||
| abc | xyz | completly different |
|
||||
| abc | xbc | first char different |
|
||||
| abc | ayc | middle char different |
|
||||
| abc | abz | last char different |
|
||||
| | xyz | actual empty, expected filled |
|
||||
| abc | | actual filled, expected empty; will be counted as ignored |
|
||||
| <&> | <&> | equal with HTML special chars |
|
||||
| <&> | xyz | completly different with HTML special chars |
|
||||
| <&> | x&> | first char different with HTML special chars |
|
||||
| <&> | <y> | middle char different with HTML special chars |
|
||||
| <&> | <&z | last char differentwith HTML special chars |
|
||||
| | <&> | actual empty, expected filled with HTML special chars |
|
||||
| abc | <&> | completly different with HTML special chars |
|
||||
| abc | <bc | first char different with HTML special chars |
|
||||
| abc | a&c | middle char different with HTML special chars |
|
||||
| abc | ab> | last char different with HTML special chars |
|
||||
| Hello World | Wellcome Lord | no obvious match |
|
||||
|
||||
Test Strings by regular expression.
|
||||
In this case no detailed diff is wanted.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual string | expected string? | #comment |
|
||||
| abc | =~/abc/ | match |
|
||||
| abc | =~/a.c/ | match |
|
||||
| abc | =~/\w+/ | match |
|
||||
| abc | =~/\w{3}/ | match |
|
||||
| abc | =~/^\w{3}$/ | match |
|
||||
| abc | =~/\w{1}/ | match |
|
||||
| abc | =~/^\w{1}$/ | no match |
|
||||
| abc | =~/[ABC]+/ | no match |
|
||||
| abc | =~/[ABC]+/i | wrong syntax, disable value comparison, use string comparison |
|
||||
|
||||
|
||||
Test integers by string comparison.
|
||||
In this case detailed diff ist wanted.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual int | expected int? | #comment |
|
||||
| 1 | 1 | equal |
|
||||
| 1 | 2 | completly different |
|
||||
| 1 | 10 | partially different |
|
||||
| | 1 | completly different |
|
||||
|
||||
Test integers by value comparison, see <FitNesse.UserGuide.WritingAcceptanceTests.SliM.ValueComparisons
|
||||
In this case no detailed diff is wanted.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual int | expected int? | #comment |
|
||||
| 1 | >=1 | ok |
|
||||
| 1 | <2 | ok |
|
||||
| 1 | >1 | nok |
|
||||
| 1 | =1 | ok |
|
||||
| 1 | <1 | nok |
|
||||
| 1 | 0<_<2 | ok |
|
||||
| 1 | 2<_<0 | nok, logically wrong |
|
||||
| 1 | 0>_>2 | wrong syntax, disable value comparison, use string comparison |
|
||||
| 1 | 2>_>0 | wrong syntax, disable value comparison, use string comparison |
|
||||
|
||||
|
||||
Test doubles by string comparison.
|
||||
In this case detailed diff ist wanted.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual double | expected double? | #comment |
|
||||
| 1.0 | 1.0 | equal |
|
||||
| 1.1 | 222 | completly different |
|
||||
| 1.0 | 10 | partially different |
|
||||
| | 1.0 | partially different |
|
||||
|
||||
Test doubles by value comparison, see <FitNesse.UserGuide.WritingAcceptanceTests.SliM.ValueComparisons
|
||||
In this case no detailed diff is wanted.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual double | expected double? | #comment |
|
||||
| 1 | >=1 | ok |
|
||||
| 1 | <2 | ok |
|
||||
| 1 | >1 | nok |
|
||||
| 1 | =1 | ok |
|
||||
| 1 | <1 | nok |
|
||||
| 1 | 0<_<2 | ok |
|
||||
| 1 | 2<_<0 | nok, logically wrong |
|
||||
| 1 | 0>_>2 | wrong syntax, disable value comparison, use string comparison |
|
||||
| 1 | 2>_>0 | wrong syntax, disable value comparison, use string comparison |
|
||||
| 1.0 | ~=1 | ok |
|
||||
| 1.1 | ~=1 | ok |
|
||||
| 0.9 | ~=1 | ok |
|
||||
| 1.0 | ~=1.0 | ok |
|
||||
| 1.1 | ~=1.0 | nok |
|
||||
| 0.9 | ~=1.0 | nok |
|
||||
|
||||
|
||||
Test symbols by string comparison.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual symbol | expected symbol? | #comment |
|
||||
| abc | $symbol= | |
|
||||
| $symbol | abc | |
|
||||
| $symbol | xyz | |
|
||||
| $symbol | xbc | |
|
||||
| $symbol | ayc | |
|
||||
| $symbol | abz | |
|
||||
| abc | $symbol | |
|
||||
| xyz | $symbol | |
|
||||
| xbc | $symbol | |
|
||||
| ayc | $symbol | |
|
||||
| abz | $symbol | |
|
||||
| | $symbol | |
|
||||
|
||||
|
||||
Test custom comparator, see FitNesse.UserGuide.AdministeringFitNesse.ConfigurationFile
|
||||
The inverse comparator fitnesse.slim.test.InverseComparator negates the method String.equals(String).
|
||||
|
||||
| script | Detailed Diff |
|
||||
| note | everything not equals to 'abc' is ok |
|
||||
| check | echo | abc | inverse:xyz |
|
||||
| note | everything not equals to 'abc' is ok |
|
||||
| check | echo | abc | inverse:ABC |
|
||||
| note | everthing not equals to 'abc' is ok |
|
||||
| check | echo | abc | inverse:cba |
|
||||
| note | only 'abc' is nok |
|
||||
| check | echo | abc | inverse:abc |
|
||||
|
||||
|
||||
Test Scenario and Script
|
||||
|
||||
!| Scenario | Detailed Diff Scenario Test |
|
||||
| start | Detailed Diff |
|
||||
| check | echo | hello | hello |
|
||||
| check | echo | hello | hallo |
|
||||
|
||||
!| Script |
|
||||
| Detailed Diff Scenario Test |
|
||||
!define TEST_SYSTEM {slim}
|
||||
|
||||
!| import |
|
||||
| fitnesse.slim.test |
|
||||
|
||||
|
||||
Test Strings by plain compare, neither custom compare nor regular expression.
|
||||
In this case detailed diff is wanted.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual string | expected string? | #comment |
|
||||
| abc | abc | equal |
|
||||
| abc | xyz | completly different |
|
||||
| abc | xbc | first char different |
|
||||
| abc | ayc | middle char different |
|
||||
| abc | abz | last char different |
|
||||
| | xyz | actual empty, expected filled |
|
||||
| abc | | actual filled, expected empty; will be counted as ignored |
|
||||
| <&> | <&> | equal with HTML special chars |
|
||||
| <&> | xyz | completly different with HTML special chars |
|
||||
| <&> | x&> | first char different with HTML special chars |
|
||||
| <&> | <y> | middle char different with HTML special chars |
|
||||
| <&> | <&z | last char differentwith HTML special chars |
|
||||
| | <&> | actual empty, expected filled with HTML special chars |
|
||||
| abc | <&> | completly different with HTML special chars |
|
||||
| abc | <bc | first char different with HTML special chars |
|
||||
| abc | a&c | middle char different with HTML special chars |
|
||||
| abc | ab> | last char different with HTML special chars |
|
||||
| Hello World | Wellcome Lord | no obvious match |
|
||||
|
||||
Test Strings by regular expression.
|
||||
In this case no detailed diff is wanted.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual string | expected string? | #comment |
|
||||
| abc | =~/abc/ | match |
|
||||
| abc | =~/a.c/ | match |
|
||||
| abc | =~/\w+/ | match |
|
||||
| abc | =~/\w{3}/ | match |
|
||||
| abc | =~/^\w{3}$/ | match |
|
||||
| abc | =~/\w{1}/ | match |
|
||||
| abc | =~/^\w{1}$/ | no match |
|
||||
| abc | =~/[ABC]+/ | no match |
|
||||
| abc | =~/[ABC]+/i | wrong syntax, disable value comparison, use string comparison |
|
||||
|
||||
|
||||
Test integers by string comparison.
|
||||
In this case detailed diff ist wanted.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual int | expected int? | #comment |
|
||||
| 1 | 1 | equal |
|
||||
| 1 | 2 | completly different |
|
||||
| 1 | 10 | partially different |
|
||||
| | 1 | completly different |
|
||||
|
||||
Test integers by value comparison, see <FitNesse.UserGuide.WritingAcceptanceTests.SliM.ValueComparisons
|
||||
In this case no detailed diff is wanted.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual int | expected int? | #comment |
|
||||
| 1 | >=1 | ok |
|
||||
| 1 | <2 | ok |
|
||||
| 1 | >1 | nok |
|
||||
| 1 | =1 | ok |
|
||||
| 1 | <1 | nok |
|
||||
| 1 | 0<_<2 | ok |
|
||||
| 1 | 2<_<0 | nok, logically wrong |
|
||||
| 1 | 0>_>2 | wrong syntax, disable value comparison, use string comparison |
|
||||
| 1 | 2>_>0 | wrong syntax, disable value comparison, use string comparison |
|
||||
|
||||
|
||||
Test doubles by string comparison.
|
||||
In this case detailed diff ist wanted.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual double | expected double? | #comment |
|
||||
| 1.0 | 1.0 | equal |
|
||||
| 1.1 | 222 | completly different |
|
||||
| 1.0 | 10 | partially different |
|
||||
| | 1.0 | partially different |
|
||||
|
||||
Test doubles by value comparison, see <FitNesse.UserGuide.WritingAcceptanceTests.SliM.ValueComparisons
|
||||
In this case no detailed diff is wanted.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual double | expected double? | #comment |
|
||||
| 1 | >=1 | ok |
|
||||
| 1 | <2 | ok |
|
||||
| 1 | >1 | nok |
|
||||
| 1 | =1 | ok |
|
||||
| 1 | <1 | nok |
|
||||
| 1 | 0<_<2 | ok |
|
||||
| 1 | 2<_<0 | nok, logically wrong |
|
||||
| 1 | 0>_>2 | wrong syntax, disable value comparison, use string comparison |
|
||||
| 1 | 2>_>0 | wrong syntax, disable value comparison, use string comparison |
|
||||
| 1.0 | ~=1 | ok |
|
||||
| 1.1 | ~=1 | ok |
|
||||
| 0.9 | ~=1 | ok |
|
||||
| 1.0 | ~=1.0 | ok |
|
||||
| 1.1 | ~=1.0 | nok |
|
||||
| 0.9 | ~=1.0 | nok |
|
||||
|
||||
|
||||
Test symbols by string comparison.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual symbol | expected symbol? | #comment |
|
||||
| abc | $symbol= | |
|
||||
| $symbol | abc | |
|
||||
| $symbol | xyz | |
|
||||
| $symbol | xbc | |
|
||||
| $symbol | ayc | |
|
||||
| $symbol | abz | |
|
||||
| abc | $symbol | |
|
||||
| xyz | $symbol | |
|
||||
| xbc | $symbol | |
|
||||
| ayc | $symbol | |
|
||||
| abz | $symbol | |
|
||||
| | $symbol | |
|
||||
|
||||
|
||||
Test custom comparator, see FitNesse.UserGuide.AdministeringFitNesse.ConfigurationFile
|
||||
The inverse comparator fitnesse.slim.test.InverseComparator negates the method String.equals(String).
|
||||
|
||||
| script | Detailed Diff |
|
||||
| note | everything not equals to 'abc' is ok |
|
||||
| check | echo | abc | inverse:xyz |
|
||||
| note | everything not equals to 'abc' is ok |
|
||||
| check | echo | abc | inverse:ABC |
|
||||
| note | everthing not equals to 'abc' is ok |
|
||||
| check | echo | abc | inverse:cba |
|
||||
| note | only 'abc' is nok |
|
||||
| check | echo | abc | inverse:abc |
|
||||
|
||||
|
||||
Test Scenario and Script
|
||||
|
||||
!| Scenario | Detailed Diff Scenario Test |
|
||||
| start | Detailed Diff |
|
||||
| check | echo | hello | hello |
|
||||
| check | echo | hello | hallo |
|
||||
|
||||
!| Script |
|
||||
| Detailed Diff Scenario Test |
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<properties>
|
||||
<Edit/>
|
||||
<Files/>
|
||||
<Properties/>
|
||||
<Prune/>
|
||||
<RecentChanges/>
|
||||
<Refactor/>
|
||||
<Search/>
|
||||
<Test/>
|
||||
<Versions/>
|
||||
<WhereUsed/>
|
||||
</properties>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<properties>
|
||||
<Edit/>
|
||||
<Files/>
|
||||
<Properties/>
|
||||
<Prune/>
|
||||
<RecentChanges/>
|
||||
<Refactor/>
|
||||
<Search/>
|
||||
<Test/>
|
||||
<Versions/>
|
||||
<WhereUsed/>
|
||||
</properties>
|
||||
|
|
|
@ -1,230 +1,230 @@
|
|||
!define TEST_SYSTEM {slim}
|
||||
|
||||
!3 Diff of failed tests
|
||||
|
||||
!4 Original intentionally failing tests
|
||||
|
||||
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.
|
||||
|
||||
!4 Test wrapper for test
|
||||
|
||||
!*> Tests for type string
|
||||
|
||||
!| script |
|
||||
|given page|TestPage|with content|${SUT_PATH} !-
|
||||
!define TEST_SYSTEM {slim}
|
||||
|
||||
!| import |
|
||||
| fitnesse.slim.test |
|
||||
|
||||
Test Strings by plain compare, neither custom compare nor regular expression.
|
||||
In this case detailed diff is wanted.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual string | expected string? | #comment |
|
||||
| abc | abc | equal |
|
||||
| abc | xyz | completly different |
|
||||
| abc | xbc | first char different |
|
||||
| abc | ayc | middle char different |
|
||||
| abc | abz | last char different |
|
||||
| | xyz | actual empty, expected filled |
|
||||
| abc | | actual filled, expected empty; will be counted as ignored |
|
||||
| <&> | <&> | equal with HTML special chars |
|
||||
| <&> | xyz | completly different with HTML special chars |
|
||||
| <&> | x&> | first char different with HTML special chars |
|
||||
| <&> | <y> | middle char different with HTML special chars |
|
||||
| <&> | <&z | last char differentwith HTML special chars |
|
||||
| | <&> | actual empty, expected filled with HTML special chars |
|
||||
| abc | <&> | completly different with HTML special chars |
|
||||
| abc | <bc | first char different with HTML special chars |
|
||||
| abc | a&c | middle char different with HTML special chars |
|
||||
| abc | ab> | last char different with HTML special chars |
|
||||
| Hello World | Wellcome Lord | no obvious match |
|
||||
|
||||
Test Strings by regular expression.
|
||||
In this case no detailed diff is wanted.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual string | expected string? | #comment |
|
||||
| abc | =~/abc/ | match |
|
||||
| abc | =~/a.c/ | match |
|
||||
| abc | =~/\w+/ | match |
|
||||
| abc | =~/\w{3}/ | match |
|
||||
| abc | =~/^\w{3}$/ | match |
|
||||
| abc | =~/\w{1}/ | match |
|
||||
| abc | =~/^\w{1}$/ | no match |
|
||||
| abc | =~/[ABC]+/ | no match |
|
||||
| abc | =~/[ABC]+/i | wrong syntax, disable value comparison, use string comparison |
|
||||
-!|
|
||||
|test results for page|TestPage|should contain|!-<span class="pass">abc</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[<span class="diff">abc</span>] <span class="fail">expected [</span><span class="diff">xyz</span><span class="fail">]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[<span class="diff">a</span>bc] <span class="fail">expected [</span><span class="diff">x</span><span class="fail">bc]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[a<span class="diff">b</span>c] <span class="fail">expected [a</span><span class="diff">y</span><span class="fail">c]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[ab<span class="diff">c</span>] <span class="fail">expected [ab</span><span class="diff">z</span><span class="fail">]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[] <span class="fail">expected [</span><span class="diff">xyz</span><span class="fail">]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[<span class="diff">H</span>ello <span class="diff">W</span>or<span class="diff">l</span>d] <span class="fail">expected [</span><span class="diff">W</span><span class="fail">ell</span><span class="diff">c</span><span class="fail">o</span><span class="diff">me</span><span class="fail"> </span><span class="diff">L</span><span class="fail">ord]-!|
|
||||
*!
|
||||
|
||||
!*> Tests for type int
|
||||
|
||||
!| script |
|
||||
|given page|TestPage|with content|${SUT_PATH} !-
|
||||
!define TEST_SYSTEM {slim}
|
||||
|
||||
!| import |
|
||||
| fitnesse.slim.test |
|
||||
|
||||
Test integers by string comparison.
|
||||
In this case detailed diff ist wanted.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual int | expected int? | #comment |
|
||||
| 1 | 1 | equal |
|
||||
| 1 | 2 | completly different |
|
||||
| 1 | 10 | partially different |
|
||||
| | 1 | completly different |
|
||||
|
||||
Test integers by value comparison, see <FitNesse.UserGuide.WritingAcceptanceTests.SliM.ValueComparisons
|
||||
In this case no detailed diff is wanted.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual int | expected int? | #comment |
|
||||
| 1 | >=1 | ok |
|
||||
| 1 | <2 | ok |
|
||||
| 1 | >1 | nok |
|
||||
| 1 | =1 | ok |
|
||||
| 1 | <1 | nok |
|
||||
| 1 | 0<_<2 | ok |
|
||||
| 1 | 2<_<0 | nok, logically wrong |
|
||||
| 1 | 0>_>2 | wrong syntax, disable value comparison, use string comparison |
|
||||
| 1 | 2>_>0 | wrong syntax, disable value comparison, use string comparison |
|
||||
-!|
|
||||
|test results for page|TestPage|should contain||
|
||||
*!
|
||||
|
||||
!*> Tests for type double
|
||||
|
||||
!| script |
|
||||
|given page|TestPage|with content|${SUT_PATH} !-
|
||||
!define TEST_SYSTEM {slim}
|
||||
|
||||
!| import |
|
||||
| fitnesse.slim.test |
|
||||
|
||||
Test doubles by string comparison.
|
||||
In this case detailed diff ist wanted.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual double | expected double? | #comment |
|
||||
| 1.0 | 1.0 | equal |
|
||||
| 1.1 | 222 | completly different |
|
||||
| 1.0 | 10 | partially different |
|
||||
| | 1.0 | partially different |
|
||||
|
||||
Test doubles by value comparison, see <FitNesse.UserGuide.WritingAcceptanceTests.SliM.ValueComparisons
|
||||
In this case no detailed diff is wanted.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual double | expected double? | #comment |
|
||||
| 1 | >=1 | ok |
|
||||
| 1 | <2 | ok |
|
||||
| 1 | >1 | nok |
|
||||
| 1 | =1 | ok |
|
||||
| 1 | <1 | nok |
|
||||
| 1 | 0<_<2 | ok |
|
||||
| 1 | 2<_<0 | nok, logically wrong |
|
||||
| 1 | 0>_>2 | wrong syntax, disable value comparison, use string comparison |
|
||||
| 1 | 2>_>0 | wrong syntax, disable value comparison, use string comparison |
|
||||
| 1.0 | ~=1 | ok |
|
||||
| 1.1 | ~=1 | ok |
|
||||
| 0.9 | ~=1 | ok |
|
||||
| 1.0 | ~=1.0 | ok |
|
||||
| 1.1 | ~=1.0 | nok |
|
||||
| 0.9 | ~=1.0 | nok |
|
||||
-!|
|
||||
|test results for page|TestPage|should contain||
|
||||
*!
|
||||
|
||||
!*> Tests of fitnesse symbols
|
||||
|
||||
!| script |
|
||||
|given page|TestPage|with content|${SUT_PATH} !-
|
||||
!define TEST_SYSTEM {slim}
|
||||
|
||||
!| import |
|
||||
| fitnesse.slim.test |
|
||||
Test symbols by string comparison.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual symbol | expected symbol? | #comment |
|
||||
| abc | $symbol= | |
|
||||
| $symbol | abc | |
|
||||
| $symbol | xyz | |
|
||||
| $symbol | xbc | |
|
||||
| $symbol | ayc | |
|
||||
| $symbol | abz | |
|
||||
| abc | $symbol | |
|
||||
| xyz | $symbol | |
|
||||
| xbc | $symbol | |
|
||||
| ayc | $symbol | |
|
||||
| abz | $symbol | |
|
||||
| | $symbol | |
|
||||
-!|
|
||||
|test results for page|TestPage|should contain|!-<span class="pass">abc</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[<span class="diff">abc</span>] <span class="fail">expected [</span><span class="diff">xyz</span><span class="fail">]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[<span class="diff">a</span>bc] <span class="fail">expected [</span><span class="diff">x</span><span class="fail">bc]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[a<span class="diff">b</span>c] <span class="fail">expected [a</span><span class="diff">y</span><span class="fail">c]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[ab<span class="diff">c</span>] <span class="fail">expected [ab</span><span class="diff">z</span><span class="fail">]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-<span class="pass">$symbol->[abc]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[<span class="diff">xyz</span>] <span class="fail">expected [$symbol->[</span><span class="diff">abc</span><span class="fail">]]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[<span class="diff">x</span>bc] <span class="fail">expected [$symbol->[</span><span class="diff">a</span><span class="fail">bc]]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[a<span class="diff">y</span>c] <span class="fail">expected [$symbol->[a</span><span class="diff">b</span><span class="fail">c]]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[ab<span class="diff">z</span>] <span class="fail">expected [$symbol->[ab</span><span class="diff">c</span><span class="fail">]]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[] <span class="fail">expected [$symbol->[</span><span class="diff">abc</span><span class="fail">]]</span>-!|
|
||||
*!
|
||||
|
||||
!*> Tests of custom comparator
|
||||
|
||||
!| script |
|
||||
|given page|TestPage|with content|${SUT_PATH} !-
|
||||
!define TEST_SYSTEM {slim}
|
||||
|
||||
!| import |
|
||||
| fitnesse.slim.test |
|
||||
Test custom comparator, see FitNesse.UserGuide.AdministeringFitNesse.ConfigurationFile
|
||||
The inverse comparator fitnesse.slim.test.InverseComparator negates the method String.equals(String).
|
||||
|
||||
| script | Detailed Diff |
|
||||
| note | everything not equals to 'abc' is ok |
|
||||
| check | echo | abc | inverse:xyz |
|
||||
| note | everything not equals to 'abc' is ok |
|
||||
| check | echo | abc | inverse:ABC |
|
||||
| note | everthing not equals to 'abc' is ok |
|
||||
| check | echo | abc | inverse:cba |
|
||||
| note | only 'abc' is nok |
|
||||
| check | echo | abc | inverse:abc |
|
||||
-!|
|
||||
|test results for page|TestPage|should contain||
|
||||
*!
|
||||
|
||||
!*> Tests of scenario
|
||||
|
||||
!| script |
|
||||
|given page|TestPage|with content|${SUT_PATH} !-
|
||||
!define TEST_SYSTEM {slim}
|
||||
|
||||
!| import |
|
||||
| fitnesse.slim.test |
|
||||
Test Scenario and Script
|
||||
|
||||
!| Scenario | Detailed Diff Scenario Test |
|
||||
| start | Detailed Diff |
|
||||
| check | echo | hello | hello |
|
||||
| check | echo | hello | hallo |
|
||||
|
||||
!| Script |
|
||||
| Detailed Diff Scenario Test |
|
||||
-!|
|
||||
|test results for page|TestPage|should contain|!-<span class="pass">hello</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[h<span class="diff">e</span>llo] <span class="fail">expected [h</span><span class="diff">a</span><span class="fail">llo]</span>-!|
|
||||
*!
|
||||
!define TEST_SYSTEM {slim}
|
||||
|
||||
!3 Diff of failed tests
|
||||
|
||||
!4 Original intentionally failing tests
|
||||
|
||||
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.
|
||||
|
||||
!4 Test wrapper for test
|
||||
|
||||
!*> Tests for type string
|
||||
|
||||
!| script |
|
||||
|given page|TestPage|with content|${SUT_PATH} !-
|
||||
!define TEST_SYSTEM {slim}
|
||||
|
||||
!| import |
|
||||
| fitnesse.slim.test |
|
||||
|
||||
Test Strings by plain compare, neither custom compare nor regular expression.
|
||||
In this case detailed diff is wanted.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual string | expected string? | #comment |
|
||||
| abc | abc | equal |
|
||||
| abc | xyz | completly different |
|
||||
| abc | xbc | first char different |
|
||||
| abc | ayc | middle char different |
|
||||
| abc | abz | last char different |
|
||||
| | xyz | actual empty, expected filled |
|
||||
| abc | | actual filled, expected empty; will be counted as ignored |
|
||||
| <&> | <&> | equal with HTML special chars |
|
||||
| <&> | xyz | completly different with HTML special chars |
|
||||
| <&> | x&> | first char different with HTML special chars |
|
||||
| <&> | <y> | middle char different with HTML special chars |
|
||||
| <&> | <&z | last char differentwith HTML special chars |
|
||||
| | <&> | actual empty, expected filled with HTML special chars |
|
||||
| abc | <&> | completly different with HTML special chars |
|
||||
| abc | <bc | first char different with HTML special chars |
|
||||
| abc | a&c | middle char different with HTML special chars |
|
||||
| abc | ab> | last char different with HTML special chars |
|
||||
| Hello World | Wellcome Lord | no obvious match |
|
||||
|
||||
Test Strings by regular expression.
|
||||
In this case no detailed diff is wanted.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual string | expected string? | #comment |
|
||||
| abc | =~/abc/ | match |
|
||||
| abc | =~/a.c/ | match |
|
||||
| abc | =~/\w+/ | match |
|
||||
| abc | =~/\w{3}/ | match |
|
||||
| abc | =~/^\w{3}$/ | match |
|
||||
| abc | =~/\w{1}/ | match |
|
||||
| abc | =~/^\w{1}$/ | no match |
|
||||
| abc | =~/[ABC]+/ | no match |
|
||||
| abc | =~/[ABC]+/i | wrong syntax, disable value comparison, use string comparison |
|
||||
-!|
|
||||
|test results for page|TestPage|should contain|!-<span class="pass">abc</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[<span class="diff">abc</span>] <span class="fail">expected [</span><span class="diff">xyz</span><span class="fail">]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[<span class="diff">a</span>bc] <span class="fail">expected [</span><span class="diff">x</span><span class="fail">bc]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[a<span class="diff">b</span>c] <span class="fail">expected [a</span><span class="diff">y</span><span class="fail">c]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[ab<span class="diff">c</span>] <span class="fail">expected [ab</span><span class="diff">z</span><span class="fail">]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[] <span class="fail">expected [</span><span class="diff">xyz</span><span class="fail">]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[<span class="diff">H</span>ello <span class="diff">W</span>or<span class="diff">l</span>d] <span class="fail">expected [</span><span class="diff">W</span><span class="fail">ell</span><span class="diff">c</span><span class="fail">o</span><span class="diff">me</span><span class="fail"> </span><span class="diff">L</span><span class="fail">ord]-!|
|
||||
*!
|
||||
|
||||
!*> Tests for type int
|
||||
|
||||
!| script |
|
||||
|given page|TestPage|with content|${SUT_PATH} !-
|
||||
!define TEST_SYSTEM {slim}
|
||||
|
||||
!| import |
|
||||
| fitnesse.slim.test |
|
||||
|
||||
Test integers by string comparison.
|
||||
In this case detailed diff ist wanted.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual int | expected int? | #comment |
|
||||
| 1 | 1 | equal |
|
||||
| 1 | 2 | completly different |
|
||||
| 1 | 10 | partially different |
|
||||
| | 1 | completly different |
|
||||
|
||||
Test integers by value comparison, see <FitNesse.UserGuide.WritingAcceptanceTests.SliM.ValueComparisons
|
||||
In this case no detailed diff is wanted.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual int | expected int? | #comment |
|
||||
| 1 | >=1 | ok |
|
||||
| 1 | <2 | ok |
|
||||
| 1 | >1 | nok |
|
||||
| 1 | =1 | ok |
|
||||
| 1 | <1 | nok |
|
||||
| 1 | 0<_<2 | ok |
|
||||
| 1 | 2<_<0 | nok, logically wrong |
|
||||
| 1 | 0>_>2 | wrong syntax, disable value comparison, use string comparison |
|
||||
| 1 | 2>_>0 | wrong syntax, disable value comparison, use string comparison |
|
||||
-!|
|
||||
|test results for page|TestPage|should contain||
|
||||
*!
|
||||
|
||||
!*> Tests for type double
|
||||
|
||||
!| script |
|
||||
|given page|TestPage|with content|${SUT_PATH} !-
|
||||
!define TEST_SYSTEM {slim}
|
||||
|
||||
!| import |
|
||||
| fitnesse.slim.test |
|
||||
|
||||
Test doubles by string comparison.
|
||||
In this case detailed diff ist wanted.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual double | expected double? | #comment |
|
||||
| 1.0 | 1.0 | equal |
|
||||
| 1.1 | 222 | completly different |
|
||||
| 1.0 | 10 | partially different |
|
||||
| | 1.0 | partially different |
|
||||
|
||||
Test doubles by value comparison, see <FitNesse.UserGuide.WritingAcceptanceTests.SliM.ValueComparisons
|
||||
In this case no detailed diff is wanted.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual double | expected double? | #comment |
|
||||
| 1 | >=1 | ok |
|
||||
| 1 | <2 | ok |
|
||||
| 1 | >1 | nok |
|
||||
| 1 | =1 | ok |
|
||||
| 1 | <1 | nok |
|
||||
| 1 | 0<_<2 | ok |
|
||||
| 1 | 2<_<0 | nok, logically wrong |
|
||||
| 1 | 0>_>2 | wrong syntax, disable value comparison, use string comparison |
|
||||
| 1 | 2>_>0 | wrong syntax, disable value comparison, use string comparison |
|
||||
| 1.0 | ~=1 | ok |
|
||||
| 1.1 | ~=1 | ok |
|
||||
| 0.9 | ~=1 | ok |
|
||||
| 1.0 | ~=1.0 | ok |
|
||||
| 1.1 | ~=1.0 | nok |
|
||||
| 0.9 | ~=1.0 | nok |
|
||||
-!|
|
||||
|test results for page|TestPage|should contain||
|
||||
*!
|
||||
|
||||
!*> Tests of fitnesse symbols
|
||||
|
||||
!| script |
|
||||
|given page|TestPage|with content|${SUT_PATH} !-
|
||||
!define TEST_SYSTEM {slim}
|
||||
|
||||
!| import |
|
||||
| fitnesse.slim.test |
|
||||
Test symbols by string comparison.
|
||||
|
||||
| Detailed Diff |
|
||||
| actual symbol | expected symbol? | #comment |
|
||||
| abc | $symbol= | |
|
||||
| $symbol | abc | |
|
||||
| $symbol | xyz | |
|
||||
| $symbol | xbc | |
|
||||
| $symbol | ayc | |
|
||||
| $symbol | abz | |
|
||||
| abc | $symbol | |
|
||||
| xyz | $symbol | |
|
||||
| xbc | $symbol | |
|
||||
| ayc | $symbol | |
|
||||
| abz | $symbol | |
|
||||
| | $symbol | |
|
||||
-!|
|
||||
|test results for page|TestPage|should contain|!-<span class="pass">abc</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[<span class="diff">abc</span>] <span class="fail">expected [</span><span class="diff">xyz</span><span class="fail">]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[<span class="diff">a</span>bc] <span class="fail">expected [</span><span class="diff">x</span><span class="fail">bc]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[a<span class="diff">b</span>c] <span class="fail">expected [a</span><span class="diff">y</span><span class="fail">c]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[ab<span class="diff">c</span>] <span class="fail">expected [ab</span><span class="diff">z</span><span class="fail">]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-<span class="pass">$symbol->[abc]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[<span class="diff">xyz</span>] <span class="fail">expected [$symbol->[</span><span class="diff">abc</span><span class="fail">]]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[<span class="diff">x</span>bc] <span class="fail">expected [$symbol->[</span><span class="diff">a</span><span class="fail">bc]]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[a<span class="diff">y</span>c] <span class="fail">expected [$symbol->[a</span><span class="diff">b</span><span class="fail">c]]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[ab<span class="diff">z</span>] <span class="fail">expected [$symbol->[ab</span><span class="diff">c</span><span class="fail">]]</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[] <span class="fail">expected [$symbol->[</span><span class="diff">abc</span><span class="fail">]]</span>-!|
|
||||
*!
|
||||
|
||||
!*> Tests of custom comparator
|
||||
|
||||
!| script |
|
||||
|given page|TestPage|with content|${SUT_PATH} !-
|
||||
!define TEST_SYSTEM {slim}
|
||||
|
||||
!| import |
|
||||
| fitnesse.slim.test |
|
||||
Test custom comparator, see FitNesse.UserGuide.AdministeringFitNesse.ConfigurationFile
|
||||
The inverse comparator fitnesse.slim.test.InverseComparator negates the method String.equals(String).
|
||||
|
||||
| script | Detailed Diff |
|
||||
| note | everything not equals to 'abc' is ok |
|
||||
| check | echo | abc | inverse:xyz |
|
||||
| note | everything not equals to 'abc' is ok |
|
||||
| check | echo | abc | inverse:ABC |
|
||||
| note | everthing not equals to 'abc' is ok |
|
||||
| check | echo | abc | inverse:cba |
|
||||
| note | only 'abc' is nok |
|
||||
| check | echo | abc | inverse:abc |
|
||||
-!|
|
||||
|test results for page|TestPage|should contain||
|
||||
*!
|
||||
|
||||
!*> Tests of scenario
|
||||
|
||||
!| script |
|
||||
|given page|TestPage|with content|${SUT_PATH} !-
|
||||
!define TEST_SYSTEM {slim}
|
||||
|
||||
!| import |
|
||||
| fitnesse.slim.test |
|
||||
Test Scenario and Script
|
||||
|
||||
!| Scenario | Detailed Diff Scenario Test |
|
||||
| start | Detailed Diff |
|
||||
| check | echo | hello | hello |
|
||||
| check | echo | hello | hallo |
|
||||
|
||||
!| Script |
|
||||
| Detailed Diff Scenario Test |
|
||||
-!|
|
||||
|test results for page|TestPage|should contain|!-<span class="pass">hello</span>-!|
|
||||
|test results for page|TestPage|should contain|!-[h<span class="diff">e</span>llo] <span class="fail">expected [h</span><span class="diff">a</span><span class="fail">llo]</span>-!|
|
||||
*!
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<properties>
|
||||
<Edit>true</Edit>
|
||||
<Files>true</Files>
|
||||
<Properties>true</Properties>
|
||||
<RecentChanges>true</RecentChanges>
|
||||
<Refactor>true</Refactor>
|
||||
<Search>true</Search>
|
||||
<Test>true</Test>
|
||||
<Versions>true</Versions>
|
||||
<WhereUsed>true</WhereUsed>
|
||||
</properties>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<properties>
|
||||
<Edit>true</Edit>
|
||||
<Files>true</Files>
|
||||
<Properties>true</Properties>
|
||||
<RecentChanges>true</RecentChanges>
|
||||
<Refactor>true</Refactor>
|
||||
<Search>true</Search>
|
||||
<Test>true</Test>
|
||||
<Versions>true</Versions>
|
||||
<WhereUsed>true</WhereUsed>
|
||||
</properties>
|
||||
|
|
|
@ -1,33 +1,33 @@
|
|||
|import |
|
||||
|fitnesse.slim.test|
|
||||
|
||||
|
||||
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.
|
||||
|
||||
|
||||
!2 Scenario with no arguments and a shared root
|
||||
!|scenario |login |
|
||||
|connect to server|
|
||||
|
||||
!2
|
||||
!|scenario |connect as|username |with|password|
|
||||
|login with username|@username |and Password|@password |
|
||||
|
||||
|
||||
!2 Scenario With one argument and a shared root.
|
||||
!|scenario |login with|name|
|
||||
|connect to server as|@name |
|
||||
|
||||
|
||||
!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.
|
||||
!|scenario |connect as|username |with|password|
|
||||
|login with username|@username |and Password|@password |
|
||||
|
||||
|
||||
|
||||
|
||||
!|script |
|
||||
|start |Login Dialog Driver|bob |xyzz|
|
||||
|connect as|bob |with|xyzz|
|
||||
|
||||
|
||||
|import |
|
||||
|fitnesse.slim.test|
|
||||
|
||||
|
||||
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.
|
||||
|
||||
|
||||
!2 Scenario with no arguments and a shared root
|
||||
!|scenario |login |
|
||||
|connect to server|
|
||||
|
||||
!2
|
||||
!|scenario |connect as|username |with|password|
|
||||
|login with username|@username |and Password|@password |
|
||||
|
||||
|
||||
!2 Scenario With one argument and a shared root.
|
||||
!|scenario |login with|name|
|
||||
|connect to server as|@name |
|
||||
|
||||
|
||||
!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.
|
||||
!|scenario |connect as|username |with|password|
|
||||
|login with username|@username |and Password|@password |
|
||||
|
||||
|
||||
|
||||
|
||||
!|script |
|
||||
|start |Login Dialog Driver|bob |xyzz|
|
||||
|connect as|bob |with|xyzz|
|
||||
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Edit>true</Edit>
|
||||
<Files>true</Files>
|
||||
<Properties>true</Properties>
|
||||
<RecentChanges>true</RecentChanges>
|
||||
<Refactor>true</Refactor>
|
||||
<Search>true</Search>
|
||||
<Test>true</Test>
|
||||
<Versions>true</Versions>
|
||||
<WhereUsed>true</WhereUsed>
|
||||
</properties>
|
||||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Edit>true</Edit>
|
||||
<Files>true</Files>
|
||||
<Properties>true</Properties>
|
||||
<RecentChanges>true</RecentChanges>
|
||||
<Refactor>true</Refactor>
|
||||
<Search>true</Search>
|
||||
<Test>true</Test>
|
||||
<Versions>true</Versions>
|
||||
<WhereUsed>true</WhereUsed>
|
||||
</properties>
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
Create an absolute symbolic link from a sub-page:
|
||||
|
||||
First we need to create some pages to play with.
|
||||
!|Page creator.|
|
||||
|Page name. |PageContents. |valid?|
|
||||
|LinkingPage |LINKING PAGE |true |
|
||||
|LinkingPage.LinkingChild|LINKING CHILD |true |
|
||||
|LinkedPage |LINKED PAGE |true |
|
||||
|LinkedPage.LinkedChild |LINKED CHILD |true |
|
||||
|
||||
Now we create a symbolic link named !-SymLink-!. This links !-LinkedPage.LinkedChild-! as a child of !-LinkingPage.LinkingChild-!.
|
||||
!|Response Requester.|
|
||||
|uri |status?|
|
||||
|LinkingPage.LinkingChild?responder=symlink&linkName=SymLink&linkPath=.LinkedPage.LinkedChild|303|
|
||||
Create an absolute symbolic link from a sub-page:
|
||||
|
||||
First we need to create some pages to play with.
|
||||
!|Page creator.|
|
||||
|Page name. |PageContents. |valid?|
|
||||
|LinkingPage |LINKING PAGE |true |
|
||||
|LinkingPage.LinkingChild|LINKING CHILD |true |
|
||||
|LinkedPage |LINKED PAGE |true |
|
||||
|LinkedPage.LinkedChild |LINKED CHILD |true |
|
||||
|
||||
Now we create a symbolic link named !-SymLink-!. This links !-LinkedPage.LinkedChild-! as a child of !-LinkingPage.LinkingChild-!.
|
||||
!|Response Requester.|
|
||||
|uri |status?|
|
||||
|LinkingPage.LinkingChild?responder=symlink&linkName=SymLink&linkPath=.LinkedPage.LinkedChild|303|
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Files/>
|
||||
<Help></Help>
|
||||
<LastModified>20071209231745</LastModified>
|
||||
<RecentChanges/>
|
||||
<Suites></Suites>
|
||||
<saveId>1197255276583</saveId>
|
||||
<ticketId>-2802271540647210678</ticketId>
|
||||
</properties>
|
||||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Files/>
|
||||
<Help></Help>
|
||||
<LastModified>20071209231745</LastModified>
|
||||
<RecentChanges/>
|
||||
<Suites></Suites>
|
||||
<saveId>1197255276583</saveId>
|
||||
<ticketId>-2802271540647210678</ticketId>
|
||||
</properties>
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
Create an absolute symbolic link from a sub-page:
|
||||
|
||||
First we need to create some pages to play with.
|
||||
!|Page creator.|
|
||||
|Page name. |PageContents. |valid?|
|
||||
|LinkingPage |LINKING PAGE |true |
|
||||
|LinkingPage.LinkingChild|LINKING CHILD |true |
|
||||
|LinkingPage.LinkedChild |LINKED CHILD |true |
|
||||
|
||||
Now we create a symbolic link named !-SymLink-!. This links !-LinkedPage.LinkedChild-! as a child of !-LinkingPage.LinkingChild-!.
|
||||
!|Response Requester.|
|
||||
|uri |status?|
|
||||
|LinkingPage.LinkingChild?responder=symlink&linkName=SymLink&linkPath=<LinkingPage.LinkedChild|303|
|
||||
Create an absolute symbolic link from a sub-page:
|
||||
|
||||
First we need to create some pages to play with.
|
||||
!|Page creator.|
|
||||
|Page name. |PageContents. |valid?|
|
||||
|LinkingPage |LINKING PAGE |true |
|
||||
|LinkingPage.LinkingChild|LINKING CHILD |true |
|
||||
|LinkingPage.LinkedChild |LINKED CHILD |true |
|
||||
|
||||
Now we create a symbolic link named !-SymLink-!. This links !-LinkedPage.LinkedChild-! as a child of !-LinkingPage.LinkingChild-!.
|
||||
!|Response Requester.|
|
||||
|uri |status?|
|
||||
|LinkingPage.LinkingChild?responder=symlink&linkName=SymLink&linkPath=<LinkingPage.LinkedChild|303|
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Files/>
|
||||
<Help></Help>
|
||||
<LastModified>20071209231818</LastModified>
|
||||
<RecentChanges/>
|
||||
<Suites></Suites>
|
||||
<saveId>1197255523311</saveId>
|
||||
<ticketId>-2905294764201163185</ticketId>
|
||||
</properties>
|
||||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Files/>
|
||||
<Help></Help>
|
||||
<LastModified>20071209231818</LastModified>
|
||||
<RecentChanges/>
|
||||
<Suites></Suites>
|
||||
<saveId>1197255523311</saveId>
|
||||
<ticketId>-2905294764201163185</ticketId>
|
||||
</properties>
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
Create an nested backward symbolic link from a sub-page:
|
||||
|
||||
First we need to create some pages to play with.
|
||||
!|Page creator.|
|
||||
|Page name. |PageContents. |valid?|
|
||||
|LinkingPage |LINKING PAGE |true |
|
||||
|LinkingPage.LinkingChild |LINKING CHILD |true |
|
||||
|LinkingPage.LinkingChild.LinkingGrandChild |LINKING GRAND CHILD |true |
|
||||
|LinkingPage.LinkingChild.LinkingGrandChild.LinkingGreatGrandChild|LINKING GREAT GRAND CHILD |true |
|
||||
|LinkingPage.LinkingChild.LinkedChild |LINKED CHILD |true |
|
||||
|
||||
Now we create a symbolic link named !-SymLink-!. This links !-LinkedPage.LinkedChild-! as a child of !-LinkingPage.LinkingChild-!.
|
||||
!|Response Requester.|
|
||||
|uri |status?|
|
||||
|LinkingPage.LinkingChild.LinkingGrandChild.LinkingGreatGrandChild?responder=symlink&linkName=SymLink&linkPath=<LinkingChild.LinkedChild|303|
|
||||
Create an nested backward symbolic link from a sub-page:
|
||||
|
||||
First we need to create some pages to play with.
|
||||
!|Page creator.|
|
||||
|Page name. |PageContents. |valid?|
|
||||
|LinkingPage |LINKING PAGE |true |
|
||||
|LinkingPage.LinkingChild |LINKING CHILD |true |
|
||||
|LinkingPage.LinkingChild.LinkingGrandChild |LINKING GRAND CHILD |true |
|
||||
|LinkingPage.LinkingChild.LinkingGrandChild.LinkingGreatGrandChild|LINKING GREAT GRAND CHILD |true |
|
||||
|LinkingPage.LinkingChild.LinkedChild |LINKED CHILD |true |
|
||||
|
||||
Now we create a symbolic link named !-SymLink-!. This links !-LinkedPage.LinkedChild-! as a child of !-LinkingPage.LinkingChild-!.
|
||||
!|Response Requester.|
|
||||
|uri |status?|
|
||||
|LinkingPage.LinkingChild.LinkingGrandChild.LinkingGreatGrandChild?responder=symlink&linkName=SymLink&linkPath=<LinkingChild.LinkedChild|303|
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Files/>
|
||||
<Help></Help>
|
||||
<LastModified>20071212153458</LastModified>
|
||||
<RecentChanges/>
|
||||
<Suites></Suites>
|
||||
<saveId>1197318232254</saveId>
|
||||
<ticketId>-6614712250920689672</ticketId>
|
||||
</properties>
|
||||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Files/>
|
||||
<Help></Help>
|
||||
<LastModified>20071212153458</LastModified>
|
||||
<RecentChanges/>
|
||||
<Suites></Suites>
|
||||
<saveId>1197318232254</saveId>
|
||||
<ticketId>-6614712250920689672</ticketId>
|
||||
</properties>
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
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:
|
||||
|
||||
!-http://host/PathToPage?responder=symlink&linkName=<linkName>&linkPath=<linkPath>-!
|
||||
|
||||
First we need to create some pages to play with.
|
||||
!|Page creator.|
|
||||
|Page name.|valid?|
|
||||
|LinkingPage|true|
|
||||
|LinkedPage|true|
|
||||
|
||||
Now we create a symbolic link named !-SymLink-!. This links !-LinkedPage-! as a child of !-LinkingPage-!.
|
||||
!|Response Requester.|
|
||||
|uri |status?|
|
||||
|LinkingPage?responder=symlink&linkName=SymLink&linkPath=LinkedPage|303|
|
||||
|
||||
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:
|
||||
|
||||
!-http://host/PathToPage?responder=symlink&linkName=<linkName>&linkPath=<linkPath>-!
|
||||
|
||||
First we need to create some pages to play with.
|
||||
!|Page creator.|
|
||||
|Page name.|valid?|
|
||||
|LinkingPage|true|
|
||||
|LinkedPage|true|
|
||||
|
||||
Now we create a symbolic link named !-SymLink-!. This links !-LinkedPage-! as a child of !-LinkingPage-!.
|
||||
!|Response Requester.|
|
||||
|uri |status?|
|
||||
|LinkingPage?responder=symlink&linkName=SymLink&linkPath=LinkedPage|303|
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Files/>
|
||||
<Help></Help>
|
||||
<LastModified>20071209231838</LastModified>
|
||||
<RecentChanges/>
|
||||
<Suites></Suites>
|
||||
<saveId>1197229524174</saveId>
|
||||
<ticketId>5360217332855886973</ticketId>
|
||||
</properties>
|
||||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Files/>
|
||||
<Help></Help>
|
||||
<LastModified>20071209231838</LastModified>
|
||||
<RecentChanges/>
|
||||
<Suites></Suites>
|
||||
<saveId>1197229524174</saveId>
|
||||
<ticketId>5360217332855886973</ticketId>
|
||||
</properties>
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
Create a symbolic link to a sub-page:
|
||||
|
||||
First we need to create some pages to play with.
|
||||
!|Page creator.|
|
||||
|Page name. |PageContents. |valid?|
|
||||
|LinkingPage |LINKING PAGE |true |
|
||||
|LinkingPage.LinkedChild |LINKED CHILD |true |
|
||||
|
||||
Now we create a symbolic link named !-SymLink-!. This links !-LinkingPage.LinkedChild-! as a child of !-LinkingPage-!.
|
||||
!|Response Requester.|
|
||||
|uri |status?|
|
||||
|LinkingPage?responder=symlink&linkName=SymLink&linkPath=>LinkedChild|303|
|
||||
Create a symbolic link to a sub-page:
|
||||
|
||||
First we need to create some pages to play with.
|
||||
!|Page creator.|
|
||||
|Page name. |PageContents. |valid?|
|
||||
|LinkingPage |LINKING PAGE |true |
|
||||
|LinkingPage.LinkedChild |LINKED CHILD |true |
|
||||
|
||||
Now we create a symbolic link named !-SymLink-!. This links !-LinkingPage.LinkedChild-! as a child of !-LinkingPage-!.
|
||||
!|Response Requester.|
|
||||
|uri |status?|
|
||||
|LinkingPage?responder=symlink&linkName=SymLink&linkPath=>LinkedChild|303|
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Edit>true</Edit>
|
||||
<Files>true</Files>
|
||||
<LastModified>20071209210332</LastModified>
|
||||
<Properties>true</Properties>
|
||||
<RecentChanges>true</RecentChanges>
|
||||
<Refactor>true</Refactor>
|
||||
<Search>true</Search>
|
||||
<Versions>true</Versions>
|
||||
<WhereUsed>true</WhereUsed>
|
||||
<saveId>1197252212825</saveId>
|
||||
<ticketId>6202123951021509855</ticketId>
|
||||
</properties>
|
||||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Edit>true</Edit>
|
||||
<Files>true</Files>
|
||||
<LastModified>20071209210332</LastModified>
|
||||
<Properties>true</Properties>
|
||||
<RecentChanges>true</RecentChanges>
|
||||
<Refactor>true</Refactor>
|
||||
<Search>true</Search>
|
||||
<Versions>true</Versions>
|
||||
<WhereUsed>true</WhereUsed>
|
||||
<saveId>1197252212825</saveId>
|
||||
<ticketId>6202123951021509855</ticketId>
|
||||
</properties>
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
!c !3 Symbolic Links
|
||||
|
||||
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.
|
||||
|
||||
|
||||
>TestCreatingRelativeSymbolicLink
|
||||
>TestCreatingAbsoluteSymbolicLink
|
||||
>TestCreatingSubPageSymbolicLink
|
||||
>TestCreatingBackwardSymbolicLink
|
||||
>TestRemovingSymbolicLink
|
||||
>TestSymbolicLinkBehavior
|
||||
----
|
||||
All Subpages:
|
||||
!c !3 Symbolic Links
|
||||
|
||||
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.
|
||||
|
||||
|
||||
>TestCreatingRelativeSymbolicLink
|
||||
>TestCreatingAbsoluteSymbolicLink
|
||||
>TestCreatingSubPageSymbolicLink
|
||||
>TestCreatingBackwardSymbolicLink
|
||||
>TestRemovingSymbolicLink
|
||||
>TestSymbolicLinkBehavior
|
||||
----
|
||||
All Subpages:
|
||||
!contents
|
|
@ -1,12 +1,12 @@
|
|||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Files/>
|
||||
<Help/>
|
||||
<LastModified>20071209232537</LastModified>
|
||||
<RecentChanges/>
|
||||
<Suite/>
|
||||
<Suites/>
|
||||
<WhereUsed/>
|
||||
<saveId>1197260737340</saveId>
|
||||
<ticketId>159061011507139978</ticketId>
|
||||
</properties>
|
||||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Files/>
|
||||
<Help/>
|
||||
<LastModified>20071209232537</LastModified>
|
||||
<RecentChanges/>
|
||||
<Suite/>
|
||||
<Suites/>
|
||||
<WhereUsed/>
|
||||
<saveId>1197260737340</saveId>
|
||||
<ticketId>159061011507139978</ticketId>
|
||||
</properties>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Files/>
|
||||
<LastModified>20071130010014</LastModified>
|
||||
<RecentChanges/>
|
||||
<Suites></Suites>
|
||||
<Test/>
|
||||
<WhereUsed/>
|
||||
</properties>
|
||||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Files/>
|
||||
<LastModified>20071130010014</LastModified>
|
||||
<RecentChanges/>
|
||||
<Suites></Suites>
|
||||
<Test/>
|
||||
<WhereUsed/>
|
||||
</properties>
|
||||
|
|
8
pom.xml
8
pom.xml
|
@ -9,8 +9,8 @@
|
|||
<version>1.2.0</version>
|
||||
|
||||
<build>
|
||||
<sourceDirectory>src</sourceDirectory>
|
||||
<testSourceDirectory>test</testSourceDirectory>
|
||||
<sourceDirectory>src/main</sourceDirectory>
|
||||
<testSourceDirectory>src/test</testSourceDirectory>
|
||||
|
||||
<resources>
|
||||
<resource>
|
||||
|
@ -20,7 +20,7 @@
|
|||
|
||||
<testResources>
|
||||
<testResource>
|
||||
<directory>test</directory>
|
||||
<directory>src/test</directory>
|
||||
<excludes>
|
||||
<exclude>**/*.java</exclude>
|
||||
</excludes>
|
||||
|
@ -83,7 +83,7 @@
|
|||
<configuration>
|
||||
<transformers>
|
||||
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
|
||||
<mainClass>main.LispMain</mainClass>
|
||||
<mainClass>application.LispMain</mainClass>
|
||||
</transformer>
|
||||
</transformers>
|
||||
</configuration>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package main;
|
||||
package application;
|
||||
|
||||
import static com.googlecode.lanterna.terminal.IOSafeTerminalAdapter.createRuntimeExceptionConvertingAdapter;
|
||||
import static java.text.MessageFormat.format;
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue