[128] | 1 | class @webtest.name.caps@Test extends grails.util.WebTest { |
---|
| 2 | |
---|
| 3 | // Unlike unit tests, functional tests are often sequence dependent. |
---|
| 4 | // Specify that sequence here. |
---|
| 5 | void suite() { |
---|
| 6 | test@webtest.name.caps@ListNewDelete() |
---|
| 7 | // add tests for more operations here |
---|
| 8 | } |
---|
| 9 | |
---|
| 10 | def test@webtest.name.caps@ListNewDelete() { |
---|
| 11 | webtest('@webtest.name.caps@ basic operations: view list, create new entry, view, edit, delete, view') { |
---|
| 12 | invoke(url:'@webtest.name.lower@') |
---|
| 13 | verifyText(text:'Home') |
---|
| 14 | |
---|
| 15 | verifyListPage(0) |
---|
| 16 | |
---|
| 17 | clickLink(label:'New @webtest.name.caps@') |
---|
| 18 | verifyText(text:'Create @webtest.name.caps@') |
---|
| 19 | clickButton(label:'Create') |
---|
| 20 | verifyText(text:'Show @webtest.name.caps@', description:'Detail page') |
---|
| 21 | clickLink(label:'List', description:'Back to list view') |
---|
| 22 | |
---|
| 23 | verifyListPage(1) |
---|
| 24 | |
---|
| 25 | group(description:'edit the one element') { |
---|
| 26 | clickLink(label:'Show', description:'go to detail view') |
---|
| 27 | clickButton(label:'Edit') |
---|
| 28 | verifyText(text:'Edit @webtest.name.caps@') |
---|
| 29 | clickButton(label:'Update') |
---|
| 30 | verifyText(text:'Show @webtest.name.caps@') |
---|
| 31 | clickLink(label:'List', description:'Back to list view') |
---|
| 32 | } |
---|
| 33 | |
---|
| 34 | verifyListPage(1) |
---|
| 35 | |
---|
| 36 | group(description:'delete the only element') { |
---|
| 37 | clickLink(label:'Show', description:'go to detail view') |
---|
| 38 | clickButton(label:'Delete') |
---|
| 39 | verifyXPath(xpath:"//div[@class='message']", text:/@webtest.name.caps@.*deleted./, regex:true) |
---|
| 40 | } |
---|
| 41 | |
---|
| 42 | verifyListPage(0) |
---|
| 43 | } |
---|
| 44 | } |
---|
| 45 | |
---|
| 46 | String ROW_COUNT_XPATH = "count(//td[@class='actionButtons']/..)" |
---|
| 47 | |
---|
| 48 | def verifyListPage(int count) { |
---|
| 49 | ant.group(description:"verify @webtest.name.caps@ list view with $count row(s)") { |
---|
| 50 | verifyText(text:'@webtest.name.caps@ List') |
---|
| 51 | verifyXPath(xpath:ROW_COUNT_XPATH, text:count, description:"$count row(s) of data expected") |
---|
| 52 | } |
---|
| 53 | } |
---|
| 54 | } |
---|