GRAILS-1019: Allowing expressions to be used with the 'disabled' attribute for g...
[grails.git] / test / groovy / org / codehaus / groovy / grails / webflow / engine / builder / FlowBuilderDecisionExecutionTests.groovy
blobd99db880d0776b7ec67260d1f5c8ebb792c20d40
1 package org.codehaus.groovy.grails.webflow.engine.builder;
3 import org.springframework.webflow.engine.*
4 import org.springframework.webflow.test.execution.*
5 import org.springframework.webflow.definition.*
6 import org.springframework.webflow.execution.ViewSelection
8 class FlowBuilderDecisionExecutionTests extends AbstractFlowExecutionTests{
10 void setUp() {
11 ExpandoMetaClass.enableGlobally()
14 void tearDown() {
15 ExpandoMetaClass.disableGlobally()
18 def searchService = [executeSearch:{["foo", "bar"]}]
19 def params = [q:"foo"]
21 void testNoResultFlowExecution() {
22 grails.util.GrailsWebUtil.bindMockWebRequest()
23 searchService = [executeSearch:{[]}]
25 ViewSelection viewSelection = startFlow()
26 assert viewSelection
27 assertEquals "displaySearchForm", viewSelection.viewName
28 viewSelection = signalEvent( "submit" )
29 assert viewSelection
30 assertEquals "noResults", viewSelection.viewName
33 void testSuccessFlowExecution() {
34 grails.util.GrailsWebUtil.bindMockWebRequest()
35 searchService = [executeSearch:{["foo", "bar"]}]
37 def viewSelection = startFlow()
38 assert viewSelection
39 assertEquals "displaySearchForm", viewSelection.viewName
40 viewSelection = signalEvent( "submit" )
41 assert viewSelection
42 assertEquals "displayResults", viewSelection.viewName
43 assertEquals( ["foo", "bar"],viewSelection.model.results)
48 FlowDefinition getFlowDefinition() {
52 new FlowBuilder("myFlow").flow {
53 displaySearchForm {
54 on("submit").to "executeSearch"
56 executeSearch {
57 action {
58 def r = searchService.executeSearch(params.q)
59 def result = success(results:r)
60 r ? result : none()
62 on("success").to "displayResults"
63 on("none").to "noResults"
64 on("error").to "displaySearchForm"
66 noResults()
67 displayResults()