Ticket #382: formatExecutionOrderFix.patch
| File formatExecutionOrderFix.patch, 48.7 kB (added by cfgrok, 16 years ago) |
|---|
-
ModelGlue/gesture/eventhandler/EventHandler.cfc
13 13 14 14 <cfset this.name = "" /> 15 15 <cfset this.access = "public" /> 16 <cfset this.messages = structNew() /> 17 <cfset this.messages.cfNullKeyWorkaround = arrayNew(1) /> 18 <cfset this.views = structNew() /> 19 <cfset this.views.cfNullKeyWorkaround = arrayNew(1) /> 16 <cfset this.messages = arrayNew(1) /> 17 <cfset this.views = arrayNew(1) /> 20 18 <cfset this.results = structNew() /> 21 <cfset this.results.cfNullKeyWorkaround = structNew() />22 19 <cfset this.cache = 0 /> 23 20 <cfset this.cacheKey = "" /> 24 21 <cfset this.cacheKeyValues = "" /> … … 27 24 28 25 <cffunction name="addMessage" returntype="ModelGlue.gesture.eventhandler.EventHandler" output="false" hint="Adds a Message and returns this."> 29 26 <cfargument name="message" type="ModelGlue.gesture.eventhandler.Message" /> 30 <cfargument name="format" type="string" default="cfNullKeyWorkaround" />31 32 <cfif not structKeyExists(this.messages, arguments.format)>33 <cfset this.messages[arguments.format] = arrayNew(1) />34 </cfif>35 27 36 <cfset arrayAppend(this.messages [arguments.format], message) />28 <cfset arrayAppend(this.messages, message) /> 37 29 38 30 <cfreturn this /> 39 31 </cffunction> 40 32 41 33 <cffunction name="hasMessage" access="public" returnType="boolean" output="false" hint="I state if a message already exists in this EventHandler. Incurs a loop: not a map lookup"> 42 34 <cfargument name="messagename" required="true" type="string"> 43 <cfargument name="format" default="cfNullKeyWorkaround" type="string">44 35 45 36 <cfset var i = "" /> 46 37 47 <cfif not structKeyExists(this.messages, arguments.format)> 48 <cfset this.messages[arguments.format] = arrayNew(1) /> 49 </cfif> 50 51 <cfloop from="1" to="#arrayLen(this.messages[arguments.format])#" index="i"> 52 <cfif this.messages[arguments.format][i].name eq messageName> 38 <cfloop from="1" to="#arrayLen(this.messages)#" index="i"> 39 <cfif this.messages[i].name eq messageName> 53 40 <cfreturn true /> 54 41 </cfif> 55 42 </cfloop> … … 59 46 60 47 <cffunction name="addView" returntype="ModelGlue.gesture.eventhandler.EventHandler" output="false" hint="Adds a View and returns this."> 61 48 <cfargument name="view" type="ModelGlue.gesture.eventhandler.View" /> 62 <cfargument name="format" default="cfNullKeyWorkaround" type="string">63 49 64 <cfif not structKeyExists(this.views, arguments.format)> 65 <cfset this.views[arguments.format] = arrayNew(1) /> 66 </cfif> 67 68 <cfset arrayAppend(this.views[arguments.format], view) /> 50 <cfset arrayAppend(this.views, view) /> 69 51 70 52 <cfreturn this /> 71 53 </cffunction> 72 54 73 55 <cffunction name="addResult" returntype="ModelGlue.gesture.eventhandler.EventHandler" output="false" hint="Adds a Result and returns this."> 74 56 <cfargument name="result" type="ModelGlue.gesture.eventhandler.Result" /> 75 <cfargument name="format" type="string" default="cfNullKeyWorkaround" />76 57 77 58 <cfif arguments.result.name eq ""> 78 59 <cfset arguments.result.name = "cfNullKeyWorkaround" /> 79 60 </cfif> 80 61 81 <cfif not structKeyExists(this.results, arguments.format)> 82 <cfset this.results[arguments.format] = structNew() /> 83 </cfif> 84 85 <cfif not structKeyExists(this.results[arguments.format], arguments.result.name)> 86 <cfset this.results[arguments.format][arguments.result.name] = arrayNew(1) /> 62 <cfif not structKeyExists(this.results, arguments.result.name)> 63 <cfset this.results[arguments.result.name] = arrayNew(1) /> 87 64 </cfif> 88 65 89 <cfset arrayAppend(this.results[arguments. format][arguments.result.name], result) />66 <cfset arrayAppend(this.results[arguments.result.name], result) /> 90 67 91 68 <cfreturn this /> 92 69 </cffunction> 93 70 94 71 <cffunction name="hasResult" access="public" returntype="boolean" output="false" hint="I state if any resMappings exist for the given result name. Map lookup (fast operation)."> 95 72 <cfargument name="name" required="true" type="string"> 96 <cfargument name="format" required="false" default="cfNullKeyWorkaround" />97 73 98 <cfreturn structKeyExists(this.results, arguments. format) and structKeyExists(this.results[arguments.format], arguments.name) />74 <cfreturn structKeyExists(this.results, arguments.name) /> 99 75 </cffunction> 100 76 101 77 <cffunction name="resultMappingExists" access="public" returntype="boolean" output="false" hint="Deprecated for consistency: use hasResult()."> 102 78 <cfargument name="name" required="true" type="string"> 103 <cfargument name="format" required="false" default="cfNullKeyWorkaround" />104 79 105 80 <cfreturn hasResult(argumentCollection=arguments) /> 106 81 </cffunction> -
ModelGlue/gesture/eventhandler/Message.cfc
2 2 3 3 <cfproperty name="name" type="string" hint="The name of the message." /> 4 4 <cfproperty name="arguments" type="ModelGlue.gesture.collections.MapCollection" hint="The collection of arguments associated with the message." /> 5 <cfproperty name="format" type="string" hint="The request format of the message." /> 5 6 6 7 <cfset this.name = "" /> 7 8 <cfset this.arguments = createObject("component", "ModelGlue.gesture.collections.MapCollection").init() /> 9 <cfset this.format = "" /> 8 10 9 11 </cfcomponent> 12 No newline at end of file -
ModelGlue/gesture/eventhandler/Result.cfc
6 6 <cfproperty name="append" type="string" hint="If a redirect occurs, I'm a comma-delimited list of event values to append to the resultant url."> 7 7 <cfproperty name="anchor" type="string" hint="If a redirect occurs, I'm the name of an event value containing a string to append as an anchor (index.cfm?event=foo##Anchor)"> 8 8 <cfproperty name="preserveState" default="true" type="boolean" hint="If a redirect takes place, should state be preserved?"> 9 <cfproperty name="format" type="string" hint="The request format of the message." /> 9 10 10 11 <cfset this.name = "" /> 11 12 <cfset this.event = "" /> … … 13 14 <cfset this.append = "" /> 14 15 <cfset this.anchor = "" /> 15 16 <cfset this.preserveState = true /> 17 <cfset this.format = "" /> 16 18 17 19 </cfcomponent> 20 No newline at end of file -
ModelGlue/gesture/eventhandler/View.cfc
8 8 <cfproperty name="cacheKey" type="string" hint="Key by which this event-handler should be known in the cache. Typically set by convention." /> 9 9 <cfproperty name="cacheKeyValues" type="string" hint="List of event values to append to the cache key." /> 10 10 <cfproperty name="cacheTimeout" type="numeric" hint="Number of seconds this event-handler should be cached." /> 11 <cfproperty name="format" type="string" hint="The request format of the message." /> 11 12 12 13 <cfset this.name = "" /> 13 14 <cfset this.values = structNew() /> … … 17 18 <cfset this.cacheKey = "" /> 18 19 <cfset this.cacheKeyValues = "" /> 19 20 <cfset this.cacheTimeout = 0 /> 21 <cfset this.format = "" /> 20 22 21 23 <cffunction name="addValue" returntype="ModelGlue.gesture.eventhandler.View" output="false" hint="Adds a Value and returns this."> 22 24 <cfargument name="value" type="ModelGlue.gesture.eventhandler.Value" /> -
ModelGlue/gesture/eventhandler/test/TestEventHandler.cfc
48 48 49 49 <cfset eh.addMessage(message) /> 50 50 51 <cfset assertTrue(arrayLen(eh.messages .cfNullKeyWorkaround), "messages should have a length after add")>51 <cfset assertTrue(arrayLen(eh.messages), "messages should have a length after add")> 52 52 <cfset assertTrue(eh.hasMessage("message"), "hasMessage returned false after adding message!") /> 53 53 </cffunction> 54 54 … … 62 62 63 63 <cfset eh.addResult(result) /> 64 64 65 <cfset assertTrue(structCount(eh.results .cfNullKeyWorkaround), "results should have length after add")>65 <cfset assertTrue(structCount(eh.results), "results should have length after add")> 66 66 <cfset assertTrue(eh.hasResult("result"), "hasResult returned false after adding result!") /> 67 67 </cffunction> 68 68 … … 70 70 <cffunction name="testView_defaultProperties" returntype="void" access="public"> 71 71 <cfset var view = createView() /> 72 72 73 <cfset assertFalse(view.append, "view should have ap end=true by default")>73 <cfset assertFalse(view.append, "view should have append=true by default")> 74 74 <cfset assertTrue(view.cache eq false) /> 75 75 <cfset assertTrue(view.cacheKey eq "") /> 76 76 <cfset assertTrue(view.cacheKeyValues eq "") /> … … 85 85 86 86 <cfset eh.addView(view) /> 87 87 88 <cfset assertTrue(arrayLen(eh.views ["cfNullKeyWorkaround"]), "views should have length before add")>88 <cfset assertTrue(arrayLen(eh.views), "views should have length before add")> 89 89 </cffunction> 90 90 91 91 <cffunction name="testView_AddValue" returntype="void" access="public"> -
ModelGlue/gesture/eventrequest/EventContext.cfc
281 281 <cfset variables._currentEventHandler = arguments.eventHandler /> 282 282 283 283 <cfset this.addTraceStatement("Event Handler", "Execute ""#arguments.eventHandler.name#""", "<event-handler name=""#arguments.eventHandler.name#"">") /> 284 <!--- 285 Invoke "" message broadcasts. Code repeated for format, if necessary, to 286 avoid string parsing - this is a per-request invocation! 287 ---> 288 <cfloop from="1" to="#arrayLen(arguments.eventHandler.messages.cfNullKeyWorkaround)#" index="i"> 289 <cfset message = arguments.eventHandler.messages.cfNullKeyWorkaround[i] /> 284 285 <!--- Invoke message broadcasts ---> 286 <cfloop from="1" to="#arrayLen(arguments.eventHandler.messages)#" index="i"> 287 <cfset message = arguments.eventHandler.messages[i] /> 290 288 291 <cfset variables._currentMessage = message /> 292 293 <cfset this.addTraceStatement("Message Broadcast", "Broadcasting ""#message.name#""", "<message name=""#message.name#"">") /> 294 295 <cfif structKeyExists(variables._listeners, message.name)> 296 <cfloop from="1" to="#arrayLen(variables._listeners[message.name])#" index="j"> 297 <cfset this.addTraceStatement("Message Listener", "Invoking #variables._listeners[message.name][j].listenerFunction# in #getMetadata(variables._listeners[message.name][j].target).name#", "<message-listener message=""#message.name#"" function=""#variables._listeners[message.name][j].listenerFunction#"" />") /> 298 <!--- 299 <cfset variables._listeners[message.name][j].invokeListener(this) /> 300 ---> 301 <cfinvoke component="#variables._listeners[message.name][j].target#" method="#variables._listeners[message.name][j].listenerFunction#"> 302 <cfinvokeargument name="event" value="#this#" /> 303 </cfinvoke> 304 </cfloop> 305 </cfif> 306 </cfloop> 307 <cfif len(requestFormat) and structKeyExists(arguments.eventHandler.messages, requestFormat)> 308 <cfloop from="1" to="#arrayLen(arguments.eventHandler.messages[requestFormat])#" index="i"> 309 <cfset message = arguments.eventHandler.messages[requestFormat][i] /> 289 <cfif len(requestFormat) and (not len(message.format) or message.format is requestFormat)> 310 290 311 291 <cfset variables._currentMessage = message /> 312 292 313 293 <cfset this.addTraceStatement("Message Broadcast", "Broadcasting ""#message.name#""", "<message name=""#message.name#"">") /> 314 294 315 295 <cfif structKeyExists(variables._listeners, message.name)> 316 296 <cfloop from="1" to="#arrayLen(variables._listeners[message.name])#" index="j"> 317 297 <cfset this.addTraceStatement("Message Listener", "Invoking #variables._listeners[message.name][j].listenerFunction# in #getMetadata(variables._listeners[message.name][j].target).name#", "<message-listener message=""#message.name#"" function=""#variables._listeners[message.name][j].listenerFunction#"" />") /> 298 <!--- 318 299 <cfset variables._listeners[message.name][j].invokeListener(this) /> 300 ---> 301 <cfinvoke component="#variables._listeners[message.name][j].target#" method="#variables._listeners[message.name][j].listenerFunction#"> 302 <cfinvokeargument name="event" value="#this#" /> 303 </cfinvoke> 319 304 </cfloop> 320 305 </cfif> 321 </cfloop> 322 </cfif> 306 307 </cfif> 308 </cfloop> 323 309 324 310 <!--- Get, queue, and reset results. ---> 325 311 <cfset results = getResults() /> 326 312 327 <!--- Queue explicit results : repetitive on purpose. --->313 <!--- Queue explicit results. ---> 328 314 <cfloop from="1" to="#arrayLen(results)#" index="i"> 329 <cfif len(results[i]) and arguments.eventHandler.hasResult(results[i]) and isArray(arguments.eventHandler.results .cfNullKeyWorkaround[results[i]])>330 <cfloop from="1" to="#arrayLen(arguments.eventHandler.results .cfNullKeyWorkaround[results[i]])#" index="j">331 <cfset result = arguments.eventHandler.results .cfNullKeyWorkaround[results[i]][j] />315 <cfif len(results[i]) and arguments.eventHandler.hasResult(results[i]) and isArray(arguments.eventHandler.results[results[i]])> 316 <cfloop from="1" to="#arrayLen(arguments.eventHandler.results[results[i]])#" index="j"> 317 <cfset result = arguments.eventHandler.results[results[i]][j] /> 332 318 333 <cfif result.redirect> 334 <cfset this.addTraceStatement("Result", "Explicit result ""#result.name#"" added, redirecting to event event ""#result.event#""", "<result name=""#result.name#"" do=""#result.event#"" redirect=""#true#"" />") /> 335 <cfset forward(eventName:result.event, preserveState:result.preserveState, addToken:false, append:result.append, anchor:result.anchor) /> 336 <cfelse> 337 <cfset this.addTraceStatement("Result", "Explicit result ""#result.name#"" added, queueing event event ""#result.event#""", "<result name=""#result.name#"" do=""#result.event#"" />") /> 338 <cfset addEventHandler(variables._eventHandlers[arguments.eventHandler.results.cfNullKeyWorkaround[results[i]][j].event]) /> 339 </cfif> 340 </cfloop> 341 </cfif> 342 </cfloop> 343 <cfif len(requestFormat)> 344 345 <cfloop from="1" to="#arrayLen(results)#" index="i"> 346 <cfif len(results[i]) and arguments.eventHandler.hasResult(results[i], requestFormat) and isArray(arguments.eventHandler.results[requestFormat][results[i]])> 347 <cfloop from="1" to="#arrayLen(arguments.eventHandler.results[requestFormat][results[i]])#" index="j"> 348 <cfset result = arguments.eventHandler.results[requestFormat][results[i]][j] /> 319 <cfif len(requestFormat) and (not len(result.format) or result.format is requestFormat)> 349 320 350 321 <cfif result.redirect> 351 322 <cfset this.addTraceStatement("Result", "Explicit result ""#result.name#"" added, redirecting to event event ""#result.event#""", "<result name=""#result.name#"" do=""#result.event#"" redirect=""#true#"" />") /> 352 323 <cfset forward(eventName:result.event, preserveState:result.preserveState, addToken:false, append:result.append, anchor:result.anchor) /> 353 324 <cfelse> 354 <cfset this.addTraceStatement("Result", "Explicit result ""#result.name#"" added, que ingevent ""#result.event#""", "<result name=""#result.name#"" do=""#result.event#"" />") />355 <cfset addEventHandler(variables._eventHandlers[arguments.eventHandler.results[re questFormat][results[i]][j].event]) />325 <cfset this.addTraceStatement("Result", "Explicit result ""#result.name#"" added, queueing event event ""#result.event#""", "<result name=""#result.name#"" do=""#result.event#"" />") /> 326 <cfset addEventHandler(variables._eventHandlers[arguments.eventHandler.results[results[i]][j].event]) /> 356 327 </cfif> 357 </cfloop> 358 </cfif> 359 </cfloop> 360 </cfif> 328 329 </cfif> 330 </cfloop> 331 </cfif> 332 </cfloop> 361 333 362 334 <!--- Queue implicit results ---> 363 <cfif structKeyExists(arguments.eventHandler.results .cfNullKeyWorkaround, "cfNullKeyWorkaround") and isArray(arguments.eventHandler.results.cfNullKeyWorkaround.cfNullKeyWorkaround)>364 <cfset results = arguments.eventHandler.results.cfNullKeyWorkaround .cfNullKeyWorkaround/>335 <cfif structKeyExists(arguments.eventHandler.results, "cfNullKeyWorkaround") and isArray(arguments.eventHandler.results.cfNullKeyWorkaround)> 336 <cfset results = arguments.eventHandler.results.cfNullKeyWorkaround /> 365 337 366 338 <cfloop from="1" to="#arrayLen(results)#" index="i"> 367 339 <cfset result = results[i] /> 368 369 <cfif result.redirect> 370 <cfset this.addTraceStatement("Result", "Implicit result redirecting to event ""#result.event#""", "<result do=""#result.event#"" redirect=""true"" />") /> 371 <cfset forward(eventName:result.event, preserveState:result.preserveState, addToken:false, append:result.append, anchor:result.anchor) /> 372 <cfelse> 373 <cfset this.addTraceStatement("Result", "Implicit result queing event ""#result.event#""", "<result do=""#result.event#"" />") /> 374 <cfset addEventHandler(variables._eventHandlers[results[i].event]) /> 375 </cfif> 376 </cfloop> 377 </cfif> 378 <cfif len(requestFormat) and structKeyExists(arguments.eventHandler.results, requestFormat)> 379 <cfif structKeyExists(arguments.eventHandler.results[requestFormat], "cfNullKeyWorkaround") 380 and isArray(arguments.eventHandler.results[requestFormat].cfNullKeyWorkaround)> 381 <cfset results = arguments.eventHandler.results[requestFormat].cfNullKeyWorkaround /> 382 383 <cfloop from="1" to="#arrayLen(results)#" index="i"> 384 <cfset result = results[i] /> 385 340 341 <cfif len(requestFormat) and (not len(result.format) or result.format is requestFormat)> 342 386 343 <cfif result.redirect> 387 344 <cfset this.addTraceStatement("Result", "Implicit result redirecting to event ""#result.event#""", "<result do=""#result.event#"" redirect=""true"" />") /> 388 345 <cfset forward(eventName:result.event, preserveState:result.preserveState, addToken:false, append:result.append, anchor:result.anchor) /> … … 390 347 <cfset this.addTraceStatement("Result", "Implicit result queing event ""#result.event#""", "<result do=""#result.event#"" />") /> 391 348 <cfset addEventHandler(variables._eventHandlers[results[i].event]) /> 392 349 </cfif> 393 </cfloop> 394 </cfif> 350 351 </cfif> 352 </cfloop> 395 353 </cfif> 396 354 397 355 <!--- Reset results ---> 398 356 <cfset resetResults() /> 399 357 400 <!--- Queue views. Repetitive on purpose - speed over elegance here. ---> 401 <cfloop from="1" to="#arrayLen(arguments.eventHandler.views.cfNullKeyWorkaround)#" index="i"> 402 <cfset queueView(arguments.eventHandler.views.cfNullKeyWorkaround[i]) /> 358 <!--- Queue views. ---> 359 <cfloop from="1" to="#arrayLen(arguments.eventHandler.views)#" index="i"> 360 <cfif len(requestFormat) and (not len(arguments.eventHandler.views[i].format) or arguments.eventHandler.views[i].format is requestFormat)> 361 <cfset queueView(arguments.eventHandler.views[i]) /> 362 </cfif> 403 363 </cfloop> 404 <cfif len(requestFormat) and structKeyExists(arguments.eventHandler.views, requestFormat)>405 <cfloop from="1" to="#arrayLen(arguments.eventHandler.views[requestFormat])#" index="i">406 <cfset queueView(arguments.eventHandler.views[requestFormat][i]) />407 </cfloop>408 </cfif>409 364 </cffunction> 410 365 411 366 <!--- EVENT KNOWLEDGE ---> … … 470 425 <cfargument name="resultName" type="string" hint="The name of the result (e.g., ""formInvalid"" or the like) to add." /> 471 426 472 427 <cfset var results = getResults() /> 473 <cfset var format = "" /> 474 <cfset var formatList = listappend(getValue("requestFormat", ""), "cfNullKeyWorkaround") /> 428 <cfset var requestFormat = getValue("requestFormat", "") /> 475 429 <cfset var i = "" /> 476 430 <cfset var eh = getCurrentEventHandler() /> 477 431 <cfset var result = "" /> … … 479 433 480 434 <cfset addTraceStatement("Message Listener", "A named result ""#arguments.resultName#"" has been added.") /> 481 435 482 <cfloop list="#formatList#" index="format"> 483 <cfif structkeyexists(eh.results, format) AND structKeyExists(eh.results[format], arguments.resultName)> 484 <cfloop from="1" to="#arrayLen(eh.results[format][arguments.resultName])#" index="i"> 485 <cfset result = eh.results[format][arguments.resultName][i] /> 436 <cfif structkeyexists(eh.results, arguments.resultName)> 437 <cfloop from="1" to="#arrayLen(eh.results[arguments.resultName])#" index="i"> 438 <cfset result = eh.results[arguments.resultName][i] /> 439 440 <cfif len(requestFormat) and (not len(result.format) or result.format is requestFormat)> 486 441 487 442 <cfif result.redirect> 488 443 <cfset this.addTraceStatement("Result", "Explicit result redirecting to event ""#result.event#""", "<result do=""#result.event#"" redirect=""true"" />") /> 489 444 <cfset forward(eventName:result.event, preserveState:result.preserveState, addToken:false, append:result.append, anchor:result.anchor) /> 490 445 </cfif> 491 </cfloop> 492 </cfif> 493 </cfloop> 446 447 </cfif> 448 </cfloop> 449 </cfif> 494 450 495 451 <cfset arrayAppend(variables._results, arguments.resultName) /> 496 452 </cffunction> -
ModelGlue/gesture/eventrequest/test/TestEventContext.cfc
148 148 <cfset listener.listenerFunction = "listener_testExecuteEventHandler_ListenerInvocation_byFormat" /> 149 149 <cfset msg = createMessage() /> 150 150 <cfset msg.name = "explicitFormatMessage" /> 151 <cfset msg.format = "explicitFormat" /> 151 152 <cfset listeners[msg.name] = arrayNew(1) /> 152 153 <cfset arrayAppend(listeners[msg.name], listener) /> 153 <cfset eh1.addMessage(msg , "explicitFormat") />154 <cfset eh1.addMessage(msg) /> 154 155 155 156 <cfset er = createEventContext() /> 156 157 <cfset er.setListenerMap(listeners) /> … … 278 279 <cfset listener1.target = this /> 279 280 <cfset listener1.listenerFunction = "listener1_testExecuteEventHandler_ResultQueueing" /> 280 281 <cfset msg1.name = "message1" /> 282 <cfset msg1.format = "explicitFormat" /> 281 283 <cfset makePublic(this,"listener1_testExecuteEventHandler_ResultQueueing") /> 282 284 283 285 <cfset listener2.target = this /> 284 286 <cfset listener2.listenerFunction = "listener2_testExecuteEventHandler_ResultQueueing" /> 285 287 <cfset msg2.name = "message2" /> 288 <cfset msg2.format = "explicitFormat" /> 286 289 <cfset makePublic(this,"listener2_testExecuteEventHandler_ResultQueueing") /> 287 290 288 291 <cfset listener3.target = this /> 289 292 <cfset listener3.listenerFunction = "listener3_testExecuteEventHandler_ResultQueueing" /> 290 293 <cfset msg3.name = "message3" /> 291 <cfset makePublic(this,"listener3_testExecuteEventHandler_ResultQueueing") /> 294 <cfset msg3.format = "explicitFormat" /> 295 <cfset makePublic(this,"listener3_testExecuteEventHandler_ResultQueueing") /> 296 292 297 <cfset listeners[msg1.name] = arrayNew(1) /> 293 298 <cfset listeners[msg2.name] = arrayNew(1) /> 294 299 <cfset listeners[msg3.name] = arrayNew(1) /> … … 299 304 300 305 <!--- Set up event handlers ---> 301 306 <cfset eh1.name = "eh1" /> 302 <cfset eh1.addMessage(msg1 , "explicitFormat") />307 <cfset eh1.addMessage(msg1) /> 303 308 <!--- Explicit result ---> 304 309 <cfset result1.name = "result1" /> 305 310 <cfset result1.event = "eh2" /> 306 <cfset eh1.addResult(result1, "explicitFormat") /> 311 <cfset result1.format = "explicitFormat" /> 312 <cfset eh1.addResult(result1) /> 307 313 <!--- Implicit result ---> 308 314 <cfset result2.name = "" /> 309 315 <cfset result2.event = "eh3" /> 310 <cfset eh1.addResult(result2, "explicitFormat") /> 316 <cfset result2.format = "explicitFormat" /> 317 <cfset eh1.addResult(result2) /> 311 318 312 319 <cfset eh2.name = "eh2" /> 313 <cfset eh2.addMessage(msg2 , "explicitFormat") />320 <cfset eh2.addMessage(msg2) /> 314 321 315 322 <cfset eh3.name = "eh3" /> 316 <cfset eh3.addMessage(msg3 , "explicitFormat") />323 <cfset eh3.addMessage(msg3) /> 317 324 318 325 <cfset eventHandlers[eh1.name] = eh1 /> 319 326 <cfset eventHandlers[eh2.name] = eh2 /> … … 379 386 380 387 <cfset formattedView.name = "testFormattedRenderView" /> 381 388 <cfset formattedView.template = "testFormatView.cfm" /> 389 <cfset formattedView.format = "explicitFormat" /> 382 390 383 391 <cfset eh.name = "eh" /> 384 392 <cfset eh.addView(view) /> 385 <cfset eh.addView(formattedView , "explicitFormat") />393 <cfset eh.addView(formattedView) /> 386 394 387 395 <cfset ec = createEventContext() /> 388 396 <cfset ec.setValue("viewContents", "testEventHandler_ViewRendering") /> … … 567 575 <cfset ec = mg.handleRequest() /> 568 576 569 577 <cfset assertEquals( "home", ec.getInitialEventHandlerName(), "The requested event should be ""home"" " ) /> 578 579 <cfset structClear(url) /> 570 580 </cffunction> 571 581 572 582 <cffunction name="testGetInitialEventHandlerNameForExplicitEvent" returntype="void" access="public"> … … 584 594 <cfset ec = mg.handleRequest() /> 585 595 586 596 <cfset assertEquals( "test", ec.getInitialEventHandlerName(), "The requested event should be ""test"" " ) /> 597 598 <cfset structClear(url) /> 587 599 </cffunction> 588 600 589 601 <!--- EVENT HANDLER EXTENSIBILITY TEST ---> … … 601 613 602 614 <cfset assertTrue( ec.exists("onRequestStart"), "The internal onRequestStart function was not invoked" ) /> 603 615 <cfset assertTrue( ec.exists("customOnRequestStart"), "The custom onRequestStart function was not invoked" ) /> 616 617 <cfset structClear(url) /> 618 </cffunction> 619 620 <!--- FORMAT EXECUTION ORDER TESTS ---> 621 <cffunction name="testExecutionOrderOfMessageBroadcastWithFormat" returntype="void" access="public"> 622 <cfset var mg = createModelGlue(this.coldspringPath) /> 623 <cfset var loader = "" /> 624 <cfset var ec = "" /> 625 626 <cfset loader = mg.getInternalBean("modelglue.ModuleLoaderFactory").create("XML") /> 627 <cfset loader.load(mg, "/ModelGlue/gesture/eventrequest/test/format/formatOrder.xml") /> 628 629 <cfset structClear(url) /> 630 631 <cfset url.event = "broadcastEvent" /> 632 <cfset url.requestFormat = "format" /> 633 634 <cfset ec = mg.handleRequest() /> 635 636 <cfset assertEquals( "format,none", ec.getValue("messageFormats"), "The message with the format of ""format"" should be broadcast first" ) /> 637 638 <cfset structClear(url) /> 639 </cffunction> 640 641 <cffunction name="testExecutionOrderOfMessageBroadcastWithFormatFromEventType" returntype="void" access="public"> 642 <cfset var mg = createModelGlue(this.coldspringPath) /> 643 <cfset var loader = "" /> 644 <cfset var ec = "" /> 645 646 <cfset loader = mg.getInternalBean("modelglue.ModuleLoaderFactory").create("XML") /> 647 <cfset loader.load(mg, "/ModelGlue/gesture/eventrequest/test/format/formatOrder.xml") /> 648 649 <cfset structClear(url) /> 650 651 <cfset url.event = "typedBroadcastEvent" /> 652 <cfset url.requestFormat = "format" /> 653 654 <cfset ec = mg.handleRequest() /> 655 656 <cfset assertEquals( "format,none", ec.getValue("messageFormats"), "The message with the format of ""format"" should be broadcast first" ) /> 657 658 <cfset structClear(url) /> 659 </cffunction> 660 661 <cffunction name="testExecutionOrderOfImplicitResultQueuedWithFormat" returntype="void" access="public"> 662 <cfset var mg = createModelGlue(this.coldspringPath) /> 663 <cfset var loader = "" /> 664 <cfset var ec = "" /> 665 666 <cfset loader = mg.getInternalBean("modelglue.ModuleLoaderFactory").create("XML") /> 667 <cfset loader.load(mg, "/ModelGlue/gesture/eventrequest/test/format/formatOrder.xml") /> 668 669 <cfset structClear(url) /> 670 671 <cfset url.event = "resultEvent" /> 672 <cfset url.requestFormat = "format" /> 673 674 <cfset ec = mg.handleRequest() /> 675 676 <cfset assertEquals( "format,none", ec.getValue("messageFormats"), "The message with the format of ""format"" should be broadcast first" ) /> 677 678 <cfset structClear(url) /> 679 </cffunction> 680 681 <cffunction name="testExecutionOrderOfImplicitResultQueuedWithFormatFromEventType" returntype="void" access="public"> 682 <cfset var mg = createModelGlue(this.coldspringPath) /> 683 <cfset var loader = "" /> 684 <cfset var ec = "" /> 685 686 <cfset loader = mg.getInternalBean("modelglue.ModuleLoaderFactory").create("XML") /> 687 <cfset loader.load(mg, "/ModelGlue/gesture/eventrequest/test/format/formatOrder.xml") /> 688 689 <cfset structClear(url) /> 690 691 <cfset url.event = "typedResultEvent" /> 692 <cfset url.requestFormat = "format" /> 693 694 <cfset ec = mg.handleRequest() /> 695 696 <cfset assertEquals( "format,none", ec.getValue("messageFormats"), "The message with the format of ""format"" should be broadcast first" ) /> 697 698 <cfset structClear(url) /> 699 </cffunction> 700 701 <cffunction name="testExecutionOrderOfNamedResultQueuedWithFormat" returntype="void" access="public"> 702 <cfset var mg = createModelGlue(this.coldspringPath) /> 703 <cfset var loader = "" /> 704 <cfset var ec = "" /> 705 706 <cfset loader = mg.getInternalBean("modelglue.ModuleLoaderFactory").create("XML") /> 707 <cfset loader.load(mg, "/ModelGlue/gesture/eventrequest/test/format/formatOrder.xml") /> 708 709 <cfset structClear(url) /> 710 711 <cfset url.event = "namedResultEvent" /> 712 <cfset url.requestFormat = "format" /> 713 714 <cfset ec = mg.handleRequest() /> 715 716 <cfset assertEquals( "format,none", ec.getValue("messageFormats"), "The message with the format of ""format"" should be broadcast first" ) /> 717 718 <cfset structClear(url) /> 719 </cffunction> 720 721 <cffunction name="testExecutionOrderOfNamedResultQueuedWithFormatFromEventType" returntype="void" access="public"> 722 <cfset var mg = createModelGlue(this.coldspringPath) /> 723 <cfset var loader = "" /> 724 <cfset var ec = "" /> 725 726 <cfset loader = mg.getInternalBean("modelglue.ModuleLoaderFactory").create("XML") /> 727 <cfset loader.load(mg, "/ModelGlue/gesture/eventrequest/test/format/formatOrder.xml") /> 728 729 <cfset structClear(url) /> 730 731 <cfset url.event = "typedNamedResultEvent" /> 732 <cfset url.requestFormat = "format" /> 733 734 <cfset ec = mg.handleRequest() /> 735 736 <cfset assertEquals( "format,none", ec.getValue("messageFormats"), "The message with the format of ""format"" should be broadcast first" ) /> 737 738 <cfset structClear(url) /> 739 </cffunction> 740 741 <cffunction name="testExecutionOrderOfViewQueuedWithFormat" returntype="void" access="public"> 742 <cfset var mg = createModelGlue(this.coldspringPath) /> 743 <cfset var loader = "" /> 744 <cfset var ec = "" /> 745 746 <cfset loader = mg.getInternalBean("modelglue.ModuleLoaderFactory").create("XML") /> 747 <cfset loader.load(mg, "/ModelGlue/gesture/eventrequest/test/format/formatOrder.xml") /> 748 749 <cfset structClear(url) /> 750 751 <cfset url.event = "viewEvent" /> 752 <cfset url.requestFormat = "format" /> 753 754 <cfset ec = mg.handleRequest() /> 755 756 <cfset assertEquals( "none", ec.getViewCollection().getFinalView(), "The view with the content of ""none"" should be the final view" ) /> 757 758 <cfset structClear(url) /> 759 </cffunction> 760 761 <cffunction name="testExecutionOrderOfViewQueuedWithFormatFromEventType" returntype="void" access="public"> 762 <cfset var mg = createModelGlue(this.coldspringPath) /> 763 <cfset var loader = "" /> 764 <cfset var ec = "" /> 765 766 <cfset loader = mg.getInternalBean("modelglue.ModuleLoaderFactory").create("XML") /> 767 <cfset loader.load(mg, "/ModelGlue/gesture/eventrequest/test/format/formatOrder.xml") /> 768 769 <cfset structClear(url) /> 770 771 <cfset url.event = "typedViewEvent" /> 772 <cfset url.requestFormat = "format" /> 773 774 <cfset ec = mg.handleRequest() /> 775 776 <cfset assertEquals( "none", ec.getViewCollection().getFinalView(), "The view with the content of ""none"" should be the final view" ) /> 777 778 <cfset structClear(url) /> 604 779 </cffunction> 605 780 606 781 </cfcomponent> 782 No newline at end of file -
ModelGlue/gesture/eventrequest/test/format/FormatController.cfc
1 <cfcomponent output="false" extends="ModelGlue.gesture.controller.Controller"> 2 3 <cffunction name="addNamedResult" access="public" output="false" returntype="void"> 4 <cfargument name="event" type="any" required="true" /> 5 6 <cfset arguments.event.addResult("target") /> 7 </cffunction> 8 9 <cffunction name="addFormatNamedResult" access="public" output="false" returntype="void"> 10 <cfargument name="event" type="any" required="true" /> 11 12 <cfset arguments.event.addResult("formatTarget") /> 13 </cffunction> 14 15 <cffunction name="message" access="public" output="false" returntype="void"> 16 <cfargument name="event" type="any" required="true" /> 17 18 <cfset var messageFormats = arguments.event.getValue("messageFormats") /> 19 20 <cfset messageFormats = listAppend(messageFormats, "none") /> 21 22 <cfset arguments.event.setValue("messageFormats", messageFormats) /> 23 </cffunction> 24 25 <cffunction name="formatMessage" access="public" output="false" returntype="void"> 26 <cfargument name="event" type="any" required="true" /> 27 28 <cfset var messageFormats = arguments.event.getValue("messageFormats") /> 29 30 <cfset messageFormats = listAppend(messageFormats, "format") /> 31 32 <cfset arguments.event.setValue("messageFormats", messageFormats) /> 33 </cffunction> 34 35 </cfcomponent> 36 No newline at end of file -
ModelGlue/gesture/eventrequest/test/format/formatOrder.xml
1 <modelglue> 2 3 <config> 4 5 <setting name="viewMappings" value="/ModelGlue/gesture/eventrequest/test/format" /> 6 7 </config> 8 9 <controllers> 10 11 <controller id="FormatController" type="ModelGlue.gesture.eventrequest.test.format.FormatController"> 12 <message-listener message="addNamedResult" /> 13 <message-listener message="addFormatNamedResult" /> 14 <message-listener message="message" /> 15 <message-listener message="formatMessage" /> 16 </controller> 17 18 </controllers> 19 20 <event-types> 21 22 <event-type name="broadcastType"> 23 <before> 24 <broadcasts format="format"> 25 <message name="formatMessage" /> 26 </broadcasts> 27 </before> 28 </event-type> 29 30 <event-type name="resultType"> 31 <before> 32 <results format="format"> 33 <result do="formatTargetEvent" /> 34 </results> 35 </before> 36 </event-type> 37 38 <event-type name="namedResultType"> 39 <before> 40 <broadcasts format="format"> 41 <message name="addFormatNamedResult" /> 42 </broadcasts> 43 </before> 44 </event-type> 45 46 <event-type name="viewType"> 47 <before> 48 <views format="format"> 49 <include name="view" template="formatView.cfm" /> 50 </views> 51 </before> 52 </event-type> 53 54 </event-types> 55 56 <event-handlers> 57 58 <event-handler name="broadcastEvent"> 59 <broadcasts format="format"> 60 <message name="formatMessage" /> 61 </broadcasts> 62 <broadcasts> 63 <message name="message" /> 64 </broadcasts> 65 </event-handler> 66 <event-handler name="typedBroadcastEvent" type="broadcastType"> 67 <broadcasts> 68 <message name="message" /> 69 </broadcasts> 70 </event-handler> 71 72 <event-handler name="resultEvent"> 73 <results format="format"> 74 <result do="formatTargetEvent" /> 75 </results> 76 <results> 77 <result do="targetEvent" /> 78 </results> 79 </event-handler> 80 <event-handler name="typedResultEvent" type="resultType"> 81 <results> 82 <result do="targetEvent" /> 83 </results> 84 </event-handler> 85 86 <event-handler name="namedResultEvent"> 87 <broadcasts format="format"> 88 <message name="addFormatNamedResult" /> 89 </broadcasts> 90 <broadcasts> 91 <message name="addNamedResult" /> 92 </broadcasts> 93 <results> 94 <result name="target" do="targetEvent" /> 95 <result name="formatTarget" do="formatTargetEvent" /> 96 </results> 97 </event-handler> 98 <event-handler name="typedNamedResultEvent" type="namedResultType"> 99 <broadcasts> 100 <message name="addNamedResult" /> 101 </broadcasts> 102 <results> 103 <result name="target" do="targetEvent" /> 104 <result name="formatTarget" do="formatTargetEvent" /> 105 </results> 106 </event-handler> 107 108 <event-handler name="targetEvent"> 109 <broadcasts> 110 <message name="message" /> 111 </broadcasts> 112 </event-handler> 113 <event-handler name="formatTargetEvent"> 114 <broadcasts> 115 <message name="formatMessage" /> 116 </broadcasts> 117 </event-handler> 118 119 <event-handler name="viewEvent"> 120 <views format="format"> 121 <include name="view" template="formatView.cfm" /> 122 </views> 123 <views> 124 <include name="view" template="view.cfm" /> 125 </views> 126 </event-handler> 127 <event-handler name="typedViewEvent" type="viewType"> 128 <views> 129 <include name="view" template="view.cfm" /> 130 </views> 131 </event-handler> 132 133 </event-handlers> 134 135 </modelglue> 136 No newline at end of file -
ModelGlue/gesture/eventrequest/test/format/formatView.cfm
1 format 2 No newline at end of file -
ModelGlue/gesture/eventrequest/test/format/view.cfm
1 none 2 No newline at end of file -
ModelGlue/gesture/module/XMLModuleLoader.cfc
456 456 <cfloop from="1" to="#arrayLen(arguments.broadcastsXml.xmlChildren)#" index="i"> 457 457 <cfset msgXml = arguments.broadcastsXml.xmlChildren[i] /> 458 458 <cfset msgInst = createObject("component", "ModelGlue.gesture.eventhandler.Message") /> 459 460 <cfparam name="arguments.broadcastsXml.xmlAttributes.format" default="" /> 459 461 460 462 <cfset msgInst.name = msgXml.xmlAttributes.name /> 463 <cfset msgInst.format = arguments.broadcastsXml.xmlAttributes.format /> 461 464 462 465 <cfloop from="1" to="#arrayLen(msgXml.xmlChildren)#" index="j"> 463 466 <cfset argXml = msgXml.xmlChildren[j] /> 464 467 <cfset msgInst.arguments.setValue(argXml.xmlAttributes.name, argXml.xmlAttributes.value) /> 465 468 </cfloop> 466 469 467 <cfif structKeyExists(arguments.broadcastsXml.xmlAttributes, "format")> 468 <cfset arguments.eventHandler.addMessage(msgInst, arguments.broadcastsXml.xmlAttributes.format) /> 469 <cfelse> 470 <cfset arguments.eventHandler.addMessage(msgInst) /> 471 </cfif> 470 <cfset arguments.eventHandler.addMessage(msgInst) /> 472 471 </cfloop> 473 472 </cffunction> 474 473 … … 486 485 <cfloop from="1" to="#arrayLen(arguments.resultsXml.xmlChildren)#" index="i"> 487 486 <cfset resXml = arguments.resultsXml.xmlChildren[i] /> 488 487 <cfset resInst = createObject("component", "ModelGlue.gesture.eventhandler.Result") /> 489 490 488 489 <cfparam name="arguments.resultsXml.xmlAttributes.format" default="" /> 490 491 <cfset resInst.format = arguments.resultsXml.xmlAttributes.format /> 492 491 493 <cfloop collection="#resXml.xmlAttributes#" item="j"> 492 494 <cfswitch expression="#j#"> 493 495 <cfcase value="do"> … … 505 507 </cfswitch> 506 508 </cfloop> 507 509 508 <cfif structKeyExists(arguments.resultsXml.xmlAttributes, "format")> 509 <cfset arguments.eventHandler.addResult(resInst, arguments.resultsXml.xmlAttributes.format) /> 510 <cfelse> 511 <cfset arguments.eventHandler.addResult(resInst) /> 512 </cfif> 510 <cfset arguments.eventHandler.addResult(resInst) /> 513 511 </cfloop> 514 512 </cffunction> 515 513 … … 564 562 <cfloop from="1" to="#arrayLen(arguments.viewsXml.xmlChildren)#" index="i"> 565 563 <cfset viewXml = arguments.viewsXml.xmlChildren[i] /> 566 564 <cfset viewInst = createObject("component", "ModelGlue.gesture.eventhandler.View") /> 567 565 566 <cfparam name="arguments.viewsXml.xmlAttributes.format" default="" /> 567 568 568 <cfset viewInst.name = viewXml.xmlAttributes.name /> 569 569 <cfset viewInst.template = viewXml.xmlAttributes.template /> 570 <cfset viewInst.format = arguments.viewsXml.xmlAttributes.format /> 570 571 571 572 <cfparam name="viewXml.xmlAttributes.append" default="false" /> 572 573 <cfparam name="viewXml.xmlAttributes.cache" default="false" /> … … 603 604 <cfset viewInst.addValue(valueInst) /> 604 605 </cfloop> 605 606 606 <cfif structKeyExists(arguments.viewsXml.xmlAttributes, "format")> 607 <cfset arguments.eventHandler.addView(viewInst, arguments.viewsXml.xmlAttributes.format) /> 608 <cfelse> 609 <cfset arguments.eventHandler.addView(viewInst) /> 610 </cfif> 607 <cfset arguments.eventHandler.addView(viewInst) /> 611 608 612 609 </cfloop> 613 610 </cffunction> -
ModelGlue/gesture/module/test/TestXMLModuleLoader.cfc
48 48 <cfset assertTrue(isObject(obj), "event handler not object!") /> 49 49 50 50 <!--- Messages ---> 51 <cfset assertTrue( structCount(obj.messages) eq 1, "message not found or more than one message found") />51 <cfset assertTrue(arrayLen(obj.messages) eq 1, "message not found or more than one message found") /> 52 52 53 <cfset assertTrue(obj.messages .CFNULLKEYWORKAROUND[1].name eq "messageName", "message name not set") />54 <cfset assertTrue(obj.messages .CFNULLKEYWORKAROUND[1].arguments.getValue("argumentName") eq "argumentValue", "argument value not set (result = '#obj.messages.CFNULLKEYWORKAROUND[1].arguments.getValue("argumentName")#')") />53 <cfset assertTrue(obj.messages[1].name eq "messageName", "message name not set") /> 54 <cfset assertTrue(obj.messages[1].arguments.getValue("argumentName") eq "argumentValue", "argument value not set (result = '#obj.messages[1].arguments.getValue("argumentName")#')") /> 55 55 56 56 57 57 <!--- Results ---> 58 <cfset assertTrue(structCount(obj.results .CFNULLKEYWORKAROUND) eq 2, "results not found or two results not found") />59 <cfset assertTrue(arrayLen(obj.results. CFNULLKEYWORKAROUND.resultName) eq 1, "resultName result not found or more than one result mapped") />60 <cfset assertTrue(obj.results. CFNULLKEYWORKAROUND.resultName[1].event eq "eventName", "resultName event prop misdefined") />61 <cfset assertTrue(obj.results. CFNULLKEYWORKAROUND.resultName[1].redirect, "resultName redirect prop misdefined") />62 <cfset assertTrue(obj.results. CFNULLKEYWORKAROUND.resultName[1].append eq "appendValue", "resultName append prop misdefined") />63 <cfset assertTrue(obj.results. CFNULLKEYWORKAROUND.resultName[1].anchor eq "anchorValue", "resultName anchor prop misdefined") />64 <cfset assertFalse(obj.results. CFNULLKEYWORKAROUND.resultName[1].preservestate, "resultName preservestate prop misdefined") />65 <cfset assertTrue(arrayLen(obj.results .CFNULLKEYWORKAROUND["CFNULLKEYWORKAROUND"]) eq 1, "implicit result result not found or more than one result mapped") />66 <cfset assertTrue(obj.results .CFNULLKEYWORKAROUND["CFNULLKEYWORKAROUND"][1].event eq "implicitEventName", "implicit result event prop misdefined") />67 <cfset assertTrue(obj.results .CFNULLKEYWORKAROUND["CFNULLKEYWORKAROUND"][1].redirect, "implicit result redirect prop misdefined") />68 <cfset assertTrue(obj.results .CFNULLKEYWORKAROUND["CFNULLKEYWORKAROUND"][1].append eq "appendValue", "implicit result append prop misdefined") />69 <cfset assertTrue(obj.results .CFNULLKEYWORKAROUND["CFNULLKEYWORKAROUND"][1].anchor eq "anchorValue", "implicit result anchor prop misdefined") />70 <cfset assertFalse(obj.results .CFNULLKEYWORKAROUND["CFNULLKEYWORKAROUND"][1].preservestate, "implicit result preservestate prop misdefined") />58 <cfset assertTrue(structCount(obj.results) eq 2, "results not found or two results not found") /> 59 <cfset assertTrue(arrayLen(obj.results.resultName) eq 1, "resultName result not found or more than one result mapped") /> 60 <cfset assertTrue(obj.results.resultName[1].event eq "eventName", "resultName event prop misdefined") /> 61 <cfset assertTrue(obj.results.resultName[1].redirect, "resultName redirect prop misdefined") /> 62 <cfset assertTrue(obj.results.resultName[1].append eq "appendValue", "resultName append prop misdefined") /> 63 <cfset assertTrue(obj.results.resultName[1].anchor eq "anchorValue", "resultName anchor prop misdefined") /> 64 <cfset assertFalse(obj.results.resultName[1].preservestate, "resultName preservestate prop misdefined") /> 65 <cfset assertTrue(arrayLen(obj.results["CFNULLKEYWORKAROUND"]) eq 1, "implicit result result not found or more than one result mapped") /> 66 <cfset assertTrue(obj.results["CFNULLKEYWORKAROUND"][1].event eq "implicitEventName", "implicit result event prop misdefined") /> 67 <cfset assertTrue(obj.results["CFNULLKEYWORKAROUND"][1].redirect, "implicit result redirect prop misdefined") /> 68 <cfset assertTrue(obj.results["CFNULLKEYWORKAROUND"][1].append eq "appendValue", "implicit result append prop misdefined") /> 69 <cfset assertTrue(obj.results["CFNULLKEYWORKAROUND"][1].anchor eq "anchorValue", "implicit result anchor prop misdefined") /> 70 <cfset assertFalse(obj.results["CFNULLKEYWORKAROUND"][1].preservestate, "implicit result preservestate prop misdefined") /> 71 71 72 72 <!--- Views ---> 73 <cfset assertTrue(arrayLen(obj.views .CFNULLKEYWORKAROUND) eq 1, "view not found or more than one view found") />74 <cfset assertTrue(obj.views .CFNULLKEYWORKAROUND[1].name eq "viewName", "view name not set") />75 <cfset assertTrue(obj.views .CFNULLKEYWORKAROUND[1].template eq "templateName", "view template not set") />76 <cfset assertTrue(structCount(obj.views .CFNULLKEYWORKAROUND[1].values) eq 1, "number of values is not one") />77 <cfset assertTrue(structKeyExists(obj.views .CFNULLKEYWORKAROUND[1].values, "valueName"), "value named ""valuename"" not found") />78 <cfset assertTrue(obj.views .CFNULLKEYWORKAROUND[1].values.valueName.name eq "valueName", "valueName value not named valueName (ugh, that's confusing.)") />79 <cfset assertTrue(obj.views .CFNULLKEYWORKAROUND[1].values.valueName.value eq "valueValue", "valueName value not set to valueValue") />80 <cfset assertFalse(obj.views .CFNULLKEYWORKAROUND[1].values.valueName.overwrite eq "valueValue", "valueName value wasn't set to not overwrite") />73 <cfset assertTrue(arrayLen(obj.views) eq 1, "view not found or more than one view found") /> 74 <cfset assertTrue(obj.views[1].name eq "viewName", "view name not set") /> 75 <cfset assertTrue(obj.views[1].template eq "templateName", "view template not set") /> 76 <cfset assertTrue(structCount(obj.views[1].values) eq 1, "number of values is not one") /> 77 <cfset assertTrue(structKeyExists(obj.views[1].values, "valueName"), "value named ""valuename"" not found") /> 78 <cfset assertTrue(obj.views[1].values.valueName.name eq "valueName", "valueName value not named valueName (ugh, that's confusing.)") /> 79 <cfset assertTrue(obj.views[1].values.valueName.value eq "valueValue", "valueName value not set to valueValue") /> 80 <cfset assertFalse(obj.views[1].values.valueName.overwrite eq "valueValue", "valueName value wasn't set to not overwrite") /> 81 81 82 82 </cffunction> 83 83 -
ModelGlue/gesture/modules/internal/utility/test/TestUtilityModule.cfc
35 35 <cfset url.event = "eventHandlerWithEventTypeOfDisabledDebug" /> 36 36 <cfset ec = mg.handleRequest() /> 37 37 <cfset assertTrue( request.modelGlueSuppressDebugging IS true, "Disable Debug setting did not work when event type had modelglue.disableModelGlueDebugging broadcast ") /> 38 <cfset structClear(url) /> 38 39 39 40 <!--- If we don't throw error, we made it. ---> 40 41 </cffunction> -
ModelGlue/gesture/test/TestModelGlue.cfc
80 80 <cfset assertTrue(context.getValue("someFormKey") eq "someFormValue", "form value not populated") /> 81 81 <cfset assertTrue(context.getValue("someUrlKey") eq "someUrlValue", "form value not populated") /> 82 82 <cfset assertTrue(context.getValue("conflictKey") eq "formConflictValue", "conflict value not recognized from form") /> 83 83 84 <cfset structClear(url) /> 85 <cfset structClear(form) /> 84 86 </cffunction> 85 87 86 88 <cffunction name="testPhase_StatefulRedirectPopulation" returntype="void" access="public"> … … 99 101 <cfset assertTrue(context.getValue("preservedValueName") eq "preservedValue", "preserved value not populated") /> 100 102 <cfset assertFalse(structKeyExists(session, "_modelgluePreservedState"), "preserved state not cleared") /> 101 103 <cfset assertTrue(context.getValue("conflictKey") eq "formConflictValue", "conflict value not recognized from form") /> 104 105 <cfset structClear(form) /> 106 <cfset structClear(url) /> 102 107 </cffunction> 103 108 104 109 </cfcomponent> 110 No newline at end of file
![(please configure the [header_logo] section in trac.ini)](/ModelGlue.com/trac.cgi/chrome/site/your_project_logo.png)