Update FitNesse version
This commit is contained in:
parent
21df7b309a
commit
a2940286d5
|
@ -3,7 +3,6 @@
|
|||
.idea/**/workspace.xml
|
||||
.idea/dictionaries
|
||||
fitnesse/FitNesseRoot/files
|
||||
fitnesse/FitNesseRoot/FitNesse/UserGuide/
|
||||
fitnesse/fitnesse-results
|
||||
target/
|
||||
*.iml
|
||||
|
|
|
@ -3,8 +3,7 @@
|
|||
<option name="JAR_PATH" value="$PROJECT_DIR$/fitnesse/fitnesse-standalone.jar" />
|
||||
<option name="PROGRAM_PARAMETERS" value="-p 5150 -d fitnesse" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
|
||||
<option name="ALTERNATIVE_JRE_PATH" value="1.8" />
|
||||
<option name="ALTERNATIVE_JRE_PATH" value="10" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
|
@ -1,43 +1,61 @@
|
|||
!2 ${FITNESSE_VERSION}
|
||||
* Add ability to specify the locale used to format evaluated expressions ([[#929][https://github.com/unclebob/fitnesse/pull/929]])
|
||||
* Improve stability for non pipe based SUT connection ([[197][https://github.com/unclebob/fitnesse/pull/997]])
|
||||
* Fix new style wiki pages for Windows (line ending) ([[1058][https://github.com/unclebob/fitnesse/pull/1058]])
|
||||
* SLiM now better handles parameter types in fixture constructors ([[1024][https://github.com/unclebob/fitnesse/pull/1024]])
|
||||
* New wiki element: [[''!-!headings-!''][UserGuide.FitNesseWiki.MarkupLanguageReference.MarkupHeadings]] ([[1025][https://github.com/unclebob/fitnesse/pull/1025]])
|
||||
* Define table type now work for Script table ([[1029][https://github.com/unclebob/fitnesse/pull/1029]], [[1099][https://github.com/unclebob/fitnesse/pull/1099]])
|
||||
* JUnit runner supports system property based ''excludeSuiteFilter'' annotation ([[1033][https://github.com/unclebob/fitnesse/pull/1033]])
|
||||
* A SuiteQuery no longer runs test pages that are excluded ([[1079][https://github.com/unclebob/fitnesse/pull/1079]])
|
||||
* Root file pages are now included in the default wiki content by default ([[1084][https://github.com/unclebob/fitnesse/pull/1084]])
|
||||
* Table:Table now resizes when the last line contains more results than expected ([[1055][https://github.com/unclebob/fitnesse/pull/1055]])
|
||||
* Various documentation updates
|
||||
* Various small improvements
|
||||
|
||||
For a complete list of closed issues and merged pull requests see https://github.com/unclebob/fitnesse/issues?milestone=16&state=closed.
|
||||
|
||||
|
||||
!2 20161130
|
||||
* Add ability to specify the locale used to format evaluated expressions ([[929][https://github.com/unclebob/fitnesse/pull/929]])
|
||||
* New Slim table type: [[Baseline decision table][!-SuiteAcceptanceTests.SuiteSlimTests.BaseLineDecisionTable-!]] ([[965][https://github.com/unclebob/fitnesse/pull/965]])
|
||||
* Add base folder for plugin documentation ([[971][https://github.com/unclebob/fitnesse/pull/971]])
|
||||
* !-FitNesse-! and Slim can now communicate over stdin/stdout. This removes the hassle with network ports ([[977][https://github.com/unclebob/fitnesse/pull/977]], see UserGuide.WritingAcceptanceTests.SliM.SlimProtocol.PortManagement)
|
||||
* API changes:
|
||||
* FitNesse is more strictly propagating exceptions, instead of only logging them ([[#923][https://github.com/unclebob/fitnesse/pull/923]])
|
||||
* Updated ''!-FixtureInteraction-!'' interface ([[#911][https://github.com/unclebob/fitnesse/pull/911]])
|
||||
* To improve extensibility, scenario resolution has been moved to ``!-SlimtestContext-!'' ([[974][https://github.com/unclebob/fitnesse/pull/974]])
|
||||
* ''!-WikiPage-!'' interface now has a ''remove()'' method. This will replace the ''removeChild()'' method in the near future ([[#930][https://github.com/unclebob/fitnesse/pull/930]])
|
||||
* FitNesse is more strictly propagating exceptions, instead of only logging them ([[923][https://github.com/unclebob/fitnesse/pull/923]])
|
||||
* Updated ''!-FixtureInteraction-!'' interface ([[911][https://github.com/unclebob/fitnesse/pull/911]])
|
||||
* To improve extensibility, scenario resolution has been moved to ``!-SlimtestContext-!'' ([[974][https://github.com/unclebob/fitnesse/pull/974]])''
|
||||
* ''!-WikiPage-!'' interface now has a ''remove()'' method. This will replace the ''removeChild()'' method in the near future ([[930][https://github.com/unclebob/fitnesse/pull/930]])
|
||||
* Issues fixed:
|
||||
* Display of Map results from fixtures should allow nested HTML ([[#921][https://github.com/unclebob/fitnesse/pull/921]])
|
||||
* Fix assignment of output parameters of scenarios with graceful names in decision tables ([[#928][https://github.com/unclebob/fitnesse/pull/928]])
|
||||
* Fix Where Used page for pages under a Symbolic Link ([[#925][https://github.com/unclebob/fitnesse/issues/925]])
|
||||
* Display of Map results from fixtures should allow nested HTML ([[921][https://github.com/unclebob/fitnesse/pull/921]])
|
||||
* Fix assignment of output parameters of scenarios with graceful names in decision tables ([[928][https://github.com/unclebob/fitnesse/pull/928]])
|
||||
* Fix Where Used page for pages under a Symbolic Link ([[925][https://github.com/unclebob/fitnesse/issues/925]])
|
||||
* Fixed issues in ''!-CachedInteraction-!'' ([[973][https://github.com/unclebob/fitnesse/pull/973]])
|
||||
|
||||
For a complete list of closed issues and merged pull requests see https://github.com/unclebob/fitnesse/issues?milestone=15&state=closed.
|
||||
|
||||
|
||||
|
||||
!2 20160515
|
||||
* FitNesse requires Java 7 now ([[#872][https://github.com/unclebob/fitnesse/issues/872]], [[#877][https://github.com/unclebob/fitnesse/issues/877]])
|
||||
* New autocomplete feature for the "move page" page ([[#867][https://github.com/unclebob/fitnesse/issues/867]])
|
||||
* Name the link to execution log simply "Execution Log" ([[#851][https://github.com/unclebob/fitnesse/issues/851]])
|
||||
* Dynamically add fitnesse jartoclasspath ([[#862][https://github.com/unclebob/fitnesse/issues/862]], [[#866][https://github.com/unclebob/fitnesse/issues/866]])
|
||||
* Searching for tags across Symbolic links ([[#488][https://github.com/unclebob/fitnesse/issues/488]], [[#888][https://github.com/unclebob/fitnesse/issues/888]])
|
||||
* Add support for table-in-table editing in rich text editor ([[#669][https://github.com/unclebob/fitnesse/issues/669]], [[#885][https://github.com/unclebob/fitnesse/issues/885]])
|
||||
* ''!-@SystemUnderTest-!'' now accepts method calls from subclasses ([[#907][https://github.com/unclebob/fitnesse/issues/907]])
|
||||
* Disallow uploading to folder ''files/fitnesse'' ([[#889][https://github.com/unclebob/fitnesse/issues/889]])
|
||||
* Avoid infinite cycles when using symlinks ([[#888][https://github.com/unclebob/fitnesse/issues/888]])
|
||||
* (Slim) Deal with escaping content in hash table ([[#886][https://github.com/unclebob/fitnesse/issues/886]])
|
||||
* Properly handle symbol assignment in first column of a query table ([[#914][https://github.com/unclebob/fitnesse/issues/914]])
|
||||
* FitNesse requires Java 7 now ([[872][https://github.com/unclebob/fitnesse/issues/872]], [[877][https://github.com/unclebob/fitnesse/issues/877]])
|
||||
* New autocomplete feature for the "move page" page ([[867][https://github.com/unclebob/fitnesse/issues/867]])
|
||||
* Name the link to execution log simply "Execution Log" ([[851][https://github.com/unclebob/fitnesse/issues/851]])
|
||||
* Dynamically add fitnesse jartoclasspath ([[862][https://github.com/unclebob/fitnesse/issues/862]], [[866][https://github.com/unclebob/fitnesse/issues/866]])
|
||||
* Searching for tags across Symbolic links ([[488][https://github.com/unclebob/fitnesse/issues/488]], [[888][https://github.com/unclebob/fitnesse/issues/888]])
|
||||
* Add support for table-in-table editing in rich text editor ([[669][https://github.com/unclebob/fitnesse/issues/669]], [[885][https://github.com/unclebob/fitnesse/issues/885]])
|
||||
* ''!-@SystemUnderTest-!'' now accepts method calls from subclasses ([[907][https://github.com/unclebob/fitnesse/issues/907]])
|
||||
* Disallow uploading to folder ''files/fitnesse'' ([[889][https://github.com/unclebob/fitnesse/issues/889]])
|
||||
* Avoid infinite cycles when using symlinks ([[888][https://github.com/unclebob/fitnesse/issues/888]])
|
||||
* (Slim) Deal with escaping content in hash table ([[886][https://github.com/unclebob/fitnesse/issues/886]])
|
||||
* Properly handle symbol assignment in first column of a query table ([[914][https://github.com/unclebob/fitnesse/issues/914]])
|
||||
* Issues fixed:
|
||||
* !-CompareVersions-! responder is not escaping output properly ([[#861][https://github.com/unclebob/fitnesse/issues/861]], [[#869][https://github.com/unclebob/fitnesse/issues/869]])
|
||||
* Improve code by honoring ''InterruptedException'' ([[#874][https://github.com/unclebob/fitnesse/issues/874]])
|
||||
* FitNesse stops again when calling /?shutdown ([[#875][https://github.com/unclebob/fitnesse/issues/875]])
|
||||
* Fixed: Running suites does not show the tests summaries ([[#876][https://github.com/unclebob/fitnesse/issues/876]])
|
||||
* Fix escaping of HTML in Slim hash tables ([[#878][https://github.com/unclebob/fitnesse/issues/878]])
|
||||
* Fix class loading for FitNesse resources ([[#880][https://github.com/unclebob/fitnesse/issues/880]])
|
||||
* Change json content type from ''text/json'' to ''applicatioin/json'' ([[#891][https://github.com/unclebob/fitnesse/issues/891]])
|
||||
* JUnit runner now plays nice with Gradle ([[#909][https://github.com/unclebob/fitnesse/issues/909]])
|
||||
|
||||
* !-CompareVersions-! responder is not escaping output properly ([[861][https://github.com/unclebob/fitnesse/issues/861]], [[869][https://github.com/unclebob/fitnesse/issues/869]])
|
||||
* Improve code by honoring ''InterruptedException'' ([[874][https://github.com/unclebob/fitnesse/issues/874]])
|
||||
* FitNesse stops again when calling /?shutdown ([[875][https://github.com/unclebob/fitnesse/issues/875]])
|
||||
* Fixed: Running suites does not show the tests summaries ([[876][https://github.com/unclebob/fitnesse/issues/876]])
|
||||
* Fix escaping of HTML in Slim hash tables ([[878][https://github.com/unclebob/fitnesse/issues/878]])
|
||||
* Fix class loading for FitNesse resources ([[880][https://github.com/unclebob/fitnesse/issues/880]])
|
||||
* Change json content type from ''text/json'' to ''applicatioin/json'' ([[891][https://github.com/unclebob/fitnesse/issues/891]])
|
||||
* JUnit runner now plays nice with Gradle ([[909][https://github.com/unclebob/fitnesse/issues/909]])
|
||||
|
||||
|
||||
For a complete list of closed issues and merged pull requests see https://github.com/unclebob/fitnesse/issues?milestone=14&state=closed.
|
||||
|
||||
!2 20151230
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -2,15 +2,23 @@ Purpose: Checks that the Define Table Type table works
|
|||
|
||||
By default table should be parsed as a decision table.
|
||||
|Table Or Decision Fixture |
|
||||
|parsing as? |
|
||||
|Parsed as Decision fixture |
|
||||
|parsing as? |
|
||||
|Parsed as Decision fixture|
|
||||
|
||||
|
||||
However after this table it should be parsed as a Table: table.
|
||||
However after this table it should be parsed as a '''Table: table'''.
|
||||
|
||||
|Define Table Type |
|
||||
| Table or Decision Fixture | as Table |
|
||||
|Define Table Type |
|
||||
|Table or Decision Fixture|as Table|
|
||||
|
||||
|
||||
|Table Or Decision Fixture |
|
||||
|parsing as? | Parsed as Table fixture |
|
||||
|Table Or Decision Fixture |
|
||||
|parsing as?|Parsed as Table fixture|
|
||||
|
||||
The same works for script tables (which parse as decision tables in many respects).
|
||||
|
||||
|Define Table Type |
|
||||
|Table or Decision Fixture|as Script|
|
||||
|
||||
|Table Or Decision Fixture |
|
||||
|check|parsing as|Parsed as Decision fixture|
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<?xml version="1.0"?>
|
||||
<?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/>
|
||||
<Versions>true</Versions>
|
||||
<WhereUsed>true</WhereUsed>
|
||||
<Edit>true</Edit>
|
||||
<Files>true</Files>
|
||||
<Properties>true</Properties>
|
||||
<RecentChanges>true</RecentChanges>
|
||||
<Refactor>true</Refactor>
|
||||
<Search>true</Search>
|
||||
<Test/>
|
||||
<Versions>true</Versions>
|
||||
<WhereUsed>true</WhereUsed>
|
||||
</properties>
|
||||
|
|
|
@ -67,17 +67,17 @@ Example
|
|||
!3 Based on your test cases you might expect or need to add a varying number of properties to a collection.
|
||||
!4 Test Case with 2 properties
|
||||
|Properties |
|
||||
|#|property a|property b |size?|key set?|property a?|property b?|to string? |has Value '123456789' ?|
|
||||
| |$S1 |123456789 |2 |[b, a] |$S1 |123456789 |{b=123456789, a=abcdefghijklmnopqrstuvwxyz} |true |
|
||||
| |$S2 |"The fox jumps over the wall."|2 |[b, a] |123456789 |$S3 |{b="The fox jumps over the wall.", a=123456789} |true |
|
||||
| |$S3 |abcdefghijklmnopqrstuvwxyz |2 |[b, a] |$S3 |$S1 |{b=abcdefghijklmnopqrstuvwxyz, a="The fox jumps over the wall."}|false |
|
||||
|#|property a|property b |size?|property a?|property b?|has Value '123456789' ?|
|
||||
| |$S1 |123456789 |2 |$S1 |123456789 |true |
|
||||
| |$S2 |"The fox jumps over the wall."|2 |123456789 |$S3 |true |
|
||||
| |$S3 |abcdefghijklmnopqrstuvwxyz |2 |$S3 |$S1 |false |
|
||||
|
||||
!4 Test Case with 3 properties added and 2 expected
|
||||
|Properties |
|
||||
|#|property NEW|property a|property b|size?|key set?|property NEW?|property b?|to string? |has Value '123456789' ?|has Value '!-FitNesse-!'?|
|
||||
| |Hello |$S1 |$S2 |3 | |Hello |123456789 | |true |false |
|
||||
| |!-FitNesse-!|$S2 |$S3 |3 | | |$S3 | |true |true |
|
||||
| |World |$S3 |$S1 |3 | |World |$S1 |{b=abcdefghijklmnopqrstuvwxyz, a="The fox jumps over the wall.", NEW=World}|false |false |
|
||||
|#|property NEW|property a|property b|size?|property NEW?|property b?|has Value '123456789' ?|has Value '!-FitNesse-!'?|
|
||||
| |Hello |$S1 |$S2 |3 |Hello |123456789 |true |false |
|
||||
| |!-FitNesse-!|$S2 |$S3 |3 | |$S3 |true |true |
|
||||
| |World |$S3 |$S1 |3 |World |$S1 |false |false |
|
||||
|
||||
|
||||
!4 Look in the collapsed setup how the mapping between column names and method names is done.
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
Scenarios can be called from decision tables. They should respect the actor (i.e. fixture instance) and Slim table type (i.e. script table or a subclass) of the last script created.
|
||||
|
||||
!2 When we create a script using Slim's standard script table, the decision table should use that subtype also.
|
||||
|
||||
|scenario |my division1|numerator||denominator||expected|
|
||||
|setNumerator |@numerator |
|
||||
|setDenominator|@denominator |
|
||||
|check |quotient |@expected |
|
||||
|
||||
|
||||
Get the Division implementation from the eg package, and use a script subclass that uses 'verify' instead of the 'check' keyword.
|
||||
|script|eg.Division|
|
||||
|
||||
|
||||
|
||||
|my division1 |
|
||||
|numerator|denominator|expected|
|
||||
|10 |2 |5.0 |
|
||||
|
||||
|
||||
!2 When we create a script using a subclass of Slim's standard script table, the decision table should use that subtype also.
|
||||
|
||||
|scenario |my division2|numerator||denominator||expected|
|
||||
|setNumerator |@numerator |
|
||||
|setDenominator|@denominator |
|
||||
|verify |quotient |@expected |
|
||||
|
||||
|
||||
Get the Division implementation from the eg package, and use a script subclass that uses 'verify' instead of the 'check' keyword.
|
||||
|verify script|eg.Division|
|
||||
|
||||
|
||||
|
||||
|my division2 |
|
||||
|numerator|denominator|expected|
|
||||
|10 |2 |5.0 |
|
|
@ -0,0 +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>
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
!1 Symbol Handling by Fixtures
|
||||
|
||||
If you need advanced symbol handling in your TableTable fixtures than your fixture code must handle this.
|
||||
If you need advanced symbol handling in your [[!-TableTable-!][.FitNesse.FullReferenceGuide.UserGuide.WritingAcceptanceTests.SliM.TableTable]] fixtures than your fixture code must handle this.
|
||||
Advanced means that you assign to a symbol a value and need to reference this new value again in the same table.
|
||||
Think if you really need this as it makes your code more complicated.
|
||||
|
||||
|
@ -11,8 +11,8 @@ Think if you really need this as it makes your code more complicated.
|
|||
!3 Load the symbol aware fixture
|
||||
|import |
|
||||
|fitnesse.slim.test.statementexecutorconsumer|
|
||||
|
||||
|
||||
|
||||
|
||||
!include SymbolAssignmentAndReferenceOfTheSameInOneTable
|
||||
|
||||
|
||||
|
@ -24,7 +24,7 @@ Think if you really need this as it makes your code more complicated.
|
|||
|
||||
|
||||
|
||||
!3 The fixture handles a chain of assignments
|
||||
!3 The fixture handles a chain of assignments
|
||||
|
||||
|script |
|
||||
|$X=|echo|99|
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
<properties>
|
||||
<Edit>true</Edit>
|
||||
<Files>true</Files>
|
||||
<LastModifyingUser>six42</LastModifyingUser>
|
||||
<Properties>true</Properties>
|
||||
<RecentChanges>true</RecentChanges>
|
||||
<Refactor>true</Refactor>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -4,12 +4,12 @@
|
|||
| this is ''italic'' text | this is <i>italic</i> text | italic widget |
|
||||
| this is '''bold''' text | this is <b>bold</b> text | bold widget |
|
||||
| !c This is centered text | <center>This is centered text</center> |
|
||||
| !1 header | <h1>header</h1> |
|
||||
| !2 header | <h2>header</h2> |
|
||||
| !3 header | <h3>header</h3> |
|
||||
| !4 header | <h4>header</h4> |
|
||||
| !5 header | <h5>header</h5> |
|
||||
| !6 header | <h6>header</h6> |
|
||||
|!1 header |<h1 id="header">header</h1> |
|
||||
|!2 header |<h2 id="header">header</h2> |
|
||||
|!3 header |<h3 id="header">header</h3> |
|
||||
|!4 header |<h4 id="header">header</h4> |
|
||||
|!5 header |<h5 id="header">header</h5> |
|
||||
|!6 header |<h6 id="header">header</h6> |
|
||||
| http://files/x | <a href="files/x">http://files/x</a> | file link |
|
||||
| http://fitnesse.org | <a href="http://fitnesse.org">http://fitnesse.org</a> | http link |
|
||||
| SomePage | SomePage<a title="create page" href="SomePage\?edit&nonExistent=true">\[\?\]</a> | missing wiki word |
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<properties>
|
||||
<Edit/>
|
||||
<Files/>
|
||||
<Properties/>
|
||||
<RecentChanges/>
|
||||
<Refactor/>
|
||||
<Search/>
|
||||
<Suites>slim</Suites>
|
||||
<Test/>
|
||||
<Versions/>
|
||||
<WhereUsed/>
|
||||
<saveId>1233779413308</saveId>
|
||||
<ticketId>-5607632332474131237</ticketId>
|
||||
<Edit/>
|
||||
<Files/>
|
||||
<Properties/>
|
||||
<RecentChanges/>
|
||||
<Refactor/>
|
||||
<Search/>
|
||||
<Suites>slim</Suites>
|
||||
<Test/>
|
||||
<Versions/>
|
||||
<WhereUsed/>
|
||||
<saveId>1233779413308</saveId>
|
||||
<ticketId>-5607632332474131237</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>
|
||||
|
|
|
@ -38,7 +38,10 @@ To reuse one of the existing styles as an entry point, create a custom css file
|
|||
|
||||
{{{
|
||||
@import url(fitnesse_straight.css);
|
||||
}}}Now you can simply add custom elements to it.
|
||||
}}}
|
||||
|
||||
Now you can simply add custom elements to it.
|
||||
For example, changing the logo to something fitting your project can be done by placing a 200 x 37 logo file names ''fitnesse-logo-small.png'' file in files/images/ and then shift-f5 reloading the page.
|
||||
|
||||
!3 Create a theme based on Bootstrap
|
||||
The Bootstrap theme took a slightly different route. It's using a subfolder for it's resources. The skeleton.vm template ([[files/fitnesse/bootstrap/templates/skeleton.vm][http://files/fitnesse/bootstrap/templates/skeleton.vm]]) contains the general markup and layout. It also contains references to the other resources used. You can find the resources used to compile the bootstrap style (lesscss templates) in fitnesse.jar: fitnesse/resources/bootstrap/less. Use those as a basis for the custom theme. There are a few more template files that are overwritten by the bootstrap theme. If the theme needs to be reusable, refer (''#parse'') the the bootstrap templates for a start and add your own customisations along the way.
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
Headers are created by prefixing a line with !1 or !2 or !3
|
||||
|
||||
|!c '''Markup Text'''|!c '''Displayed as'''|
|
||||
|!- !1 Title -!|!1 Title|
|
||||
|!- !2 Header -!|!2 Header|
|
||||
|!- !3 Second Header -!|!3 Second Header|
|
||||
|
||||
|
||||
|
||||
Headers are created by prefixing a line with !1 or !2 or !3 or !4 or !5 or !6
|
||||
|
||||
|!c '''Markup Text''' |!c '''Displayed as'''|
|
||||
|!- !1 Title -!|!1 Title |
|
||||
|!- !2 Header -!|!2 Header |
|
||||
|!- !3 Second Header -!|!3 Second Header |
|
||||
|!- !4 Third Header -!|!4 Third Header |
|
||||
|!- !5 Fourth Header -!|!5 Fourth Header |
|
||||
|!- !6 Fifth Header -!|!6 Fifth Header |
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
Headings are created by prefixing a line with !headings
|
||||
|
||||
|!c '''Markup Text''' |!c '''Displayed as'''|
|
||||
|!- !heading -!|Table of contents |
|
||||
|
||||
Markup:
|
||||
{{{!headings -style decimal}}}
|
||||
|
||||
|''' argument '''|''' description '''|
|
||||
|-style |The CSS style of the list items, possible values: decimal, decimal-leading-zero, lower-roman, upper-roman, lower-alpha, upper-alpha, none. Default value: decimal. |
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Files/>
|
||||
<LastModified>20090228113826</LastModified>
|
||||
<RecentChanges>true</RecentChanges>
|
||||
<WhereUsed/>
|
||||
</properties>
|
|
@ -8,6 +8,7 @@ The !-FitNesse-! markup language is straightforward to learn, and powerful eno
|
|||
| [[Style][>MarkupStyle]] | ''Setting the style of some text.'' |
|
||||
| [[Cross Reference][>MarkupCrossReference]] | ''Add a cross reference to another page.'' |
|
||||
| [[Headers][>MarkupHeaders]] | ''Setting a line as a title or section header.'' |
|
||||
| [[Headings][>MarkupHeadings]] | ''Generate a table of contents of all headers from within a wiki page.'' |
|
||||
| [[Centering][>MarkupCenter]] | ''Centering a line.'' |
|
||||
| [[Notes][>MarkupNote]] | ''Making a note.'' |
|
||||
| [[Horizontal Rules][>MarkupHorizontalRule]] | ''Drawing a horizontal separator.'' |
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
The syntax of a wiki word is ''Camel Case'': an alternating pattern of upper and lower case letters. Strictly speaking a wiki word is a string of two more more capital letters with lower case letters or numbers between them.
|
||||
The syntax of a wiki word is ''Camel Case'': an alternating pattern of upper and lower case letters. Strictly speaking a wiki word is a string of two more capital letters with lower case letters or numbers between them.
|
||||
|
||||
* '''!-BobMartin-!''' is a wiki word.
|
||||
* '''!-SalesReport1972-!''' is a wiki word.
|
||||
|
@ -7,4 +7,4 @@ The syntax of a wiki word is ''Camel Case'': an alternating pattern of upper and
|
|||
* '''!-RcM-!''' is a wiki word because it is two or more capitals separated by lower case letters.
|
||||
* '''!-ItDoesNotMatterHowManyCapitalsThereAreYouCanHave1000IfYouLike-!''' is a wiki word with lots of capitals.
|
||||
----
|
||||
!note The Java Regular expression that we are using to represent a wiki word is: {{{\b[A-Z](?:[a-z0-9]+[A-Z][a-z0-9]*)+}}}
|
||||
!note The Java Regular expression that we are using to represent a wiki word is: {{{\b[A-Z](?:[a-z0-9]+[A-Z][a-z0-9]*)+}}}
|
||||
|
|
|
@ -43,12 +43,15 @@
|
|||
|${CODE}''over-text''${NUL}'''!-----------!'''${NUL}''under-text''${CODEend}|thicker |
|
||||
)
|
||||
#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
!define HEADINGS (${BANG}'''1''' ''largest heading text''
|
||||
!define HEADER LINES (${BANG}'''1''' ''largest heading text''
|
||||
${BANG}'''2''' ''middle heading text''
|
||||
${BANG}'''3''' ''smaller heading text''
|
||||
and so on up to ${BANG}'''6'''
|
||||
)
|
||||
#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
!define HEADINGS (${BANG}'''!headings''' generates a list of all header lines
|
||||
)
|
||||
#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
!define CollapsibleEXPANDED (${BANG}'''*''' ${OPT}''title''${OPTend}
|
||||
${SPC}${SPC}'' multi-line wiki text ''
|
||||
${SPC}${SPC}'' N.B.: Multiple asterisks are allowed, e.g.,'' ${BANG}'''****''' ${TEXT}
|
||||
|
@ -106,7 +109,7 @@ ${SPC}${SPC}'' N.B.: Multiple asterisks are allowed, e.g.,'' ${BANG}'''****'''${
|
|||
|
||||
)
|
||||
#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
!define TocInsert (| Contents List | ${CODE} ${BANG}'''contents''' ${CODEend} |
|
||||
!define TocInsert (| Contents List | ${CODE} ${BANG}'''contents''' ${CODEend} |
|
||||
| Contents Tree | ${CODE} ${BANG}'''contents -R''' ${CODEend} |
|
||||
| Contents Sub-tree | ${CODE} ${BANG}'''contents -R'''${OPT}''nn''${OPTend}${CODEend} |
|
||||
| Contents List - Graceful | ${CODE} ${BANG}'''contents -g''' ${CODEend} |
|
||||
|
|
|
@ -55,7 +55,7 @@ Note the ''list'' function simply builds an !-ArrayList-! from it's arguments.
|
|||
|
||||
The first thing to notice is the ''Query:'' in the first cell of the table. This tells the Slim table processor that this is a query table. Next notice the constructor argument. (See ConstructorArguments). The column headers are ''field names''. The fixture class must have a ''query'' method that returns a list of rows. Each row is a list of fields. Each field is a two-element list composed of the ''field name'' and it's string value.
|
||||
|
||||
Each row in the table is checked to see if there is a match in the query response. The fields are matched left to right. If the leftmost field matches, then the row is considered to be "found". Fields that don't matche are marked in error as in the 10-Oct-1974 field above. A cell that is left blank in the table will be filled in from the result and counted as ignored. If the first cell of a row cannot be matched, then the row is considered ''missing''. If there is an unmatched row remaining in the query response, it is added to the table and marked ''surplus''. The order of the rows is irrelevant.
|
||||
Each row in the table is checked to see if there is a match in the query response. The fields are matched left to right. If the leftmost field matches, then the row is considered to be "found". Fields that don't match are marked in error as in the 10-Oct-1974 field above. A cell that is left blank in the table will be filled in from the result and counted as ignored. If the first cell of a row cannot be matched, then the row is considered ''missing''. If there is an unmatched row remaining in the query response, it is added to the table and marked ''surplus''. The order of the rows is irrelevant.
|
||||
|
||||
If a !style_code(table) method is declared in the fixture it will be called before the !style_code(query) function is called. It will be passed a list of rows which are themselves lists of cells. The rows and cells represent the all but the first row of the table. This is the same format at the !style_code(doTable) method of Table table, and the !style_code(table) method of Decision table.
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ FitNesse started as an HTML and [[wiki][http://wiki.org/wiki.cgi?WhatIsWiki]] "f
|
|||
|
||||
!*** From the [[Fit website][http://fit.c2.com/]]:
|
||||
|
||||
Great software requires collaboration and communication.Fitis a tool for enhancing collaboration in software development. It's an invaluable way to collaborate on complicated problems -and get them right- early in development.
|
||||
Great software requires collaboration and communication.Fit is a tool for enhancing collaboration in software development. It's an invaluable way to collaborate on complicated problems -and get them right- early in development.
|
||||
|
||||
Fit allows customers, testers, and programmers to learn what their software ''should'' do and what it ''does'' do. It automatically compares customers' expectations to actual results.
|
||||
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
!1 Get more out of !-FitNesse-!
|
||||
!3 Add Plugins to your installation and extend !-FitNesse-! with additional great features.
|
||||
* Suport for other programming languages
|
||||
* Additional table types to express your tests and requirements in other ways
|
||||
* Additional Wiki Markup commands
|
||||
* Fixture frameworks you can use
|
||||
* and more ...
|
||||
|
||||
See [[All Available Plugins][http://fitnesse.org/PlugIns?getPage&FitnesseVersion=${FITNESSE_VERSION}]] for a list of all available extensions.
|
||||
|
||||
Read [[Writing Plugins][FitNesse.UserGuide.AdministeringFitNesse.WritingPlugins]] to understand how to install them or write your ownn.
|
||||
|
||||
|
||||
Below is the list of all installed plugins in this system:
|
||||
|
||||
!contents -R1 -g -p -f -h
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Edit>true</Edit>
|
||||
<Files>true</Files>
|
||||
<Properties>true</Properties>
|
||||
<RecentChanges>true</RecentChanges>
|
||||
<Refactor>true</Refactor>
|
||||
<Search>true</Search>
|
||||
<Versions>true</Versions>
|
||||
<WhereUsed>true</WhereUsed>
|
||||
</properties>
|
|
@ -0,0 +1 @@
|
|||
!contents
|
|
@ -1,3 +1,3 @@
|
|||
##FitNesse properties
|
||||
#Wed Feb 22 14:13:17 EST 2017
|
||||
Version=v20161106
|
||||
#Fri Aug 17 19:37:52 EDT 2018
|
||||
Version=v20180127
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0"?>
|
||||
<properties>
|
||||
<Edit>true</Edit>
|
||||
<Files>true</Files>
|
||||
<Properties>true</Properties>
|
||||
<RecentChanges>true</RecentChanges>
|
||||
<Refactor>true</Refactor>
|
||||
<Search>true</Search>
|
||||
<Versions>true</Versions>
|
||||
<WhereUsed>true</WhereUsed>
|
||||
</properties>
|
Binary file not shown.
Loading…
Reference in New Issue