| package org.apache.tapestry5.integration.appfolder |
| |
| import org.apache.tapestry5.integration.GroovyTapestryCoreTestCase |
| import org.apache.tapestry5.test.TapestryTestConfiguration |
| import org.testng.annotations.Test |
| |
| @TapestryTestConfiguration(webAppFolder = "src/test/appfolder") |
| class AppFolderTests extends GroovyTapestryCoreTestCase |
| { |
| |
| /** |
| * Tests basic navigation, and also tests ability to place a page template in the context, under the configured |
| * application folder. |
| */ |
| @Test |
| void page_navigation() |
| { |
| openLinks "t5app/" |
| |
| assertTitle "Index Page" |
| |
| clickAndWait "link=context template demo" |
| |
| assertTitle "Context Template" |
| |
| clickAndWait "link=back to index" |
| |
| assertTitle "Index Page" |
| } |
| |
| @Test |
| void component_event_request() |
| { |
| openLinks "t5app/", "show index page alert" |
| |
| assertTextPresent "index page alert" |
| } |
| |
| @Test |
| void static_pages() |
| { |
| openLinks "static.html" |
| |
| assertTitle "Static File" |
| |
| clickAndWait "link=to Tapestry application" |
| |
| assertTitle "Index Page" |
| } |
| |
| @Test |
| void asset_access() |
| { |
| openLinks "t5app/" |
| |
| Thread.sleep(3000); |
| |
| // there's only one image on page |
| String assetURL = getAttribute("//img/@src") |
| |
| // Selenium now (sometimes?) adds unwanted port & host |
| if (assetURL.startsWith("http")) { |
| assetURL = new URL(assetURL).getPath() |
| } |
| |
| assert assetURL.startsWith("/t5app/assets/") |
| |
| assertDownloadedAsset assetURL, "src/test/appfolder/images/t5-logo.png" |
| } |
| } |