scenario sandbox-click-on-result-toggles-color-to-green [
trace-until 100/app
assume-screen 100/width, 10/height
1:address:array:character <- new [
recipe foo [
reply 4
]]
2:address:array:character <- new [foo]
assume-console [
press F4
]
3:address:programming-environment-data <- new-programming-environment screen:address:screen, 1:address:array:character, 2:address:array:character
event-loop screen:address:screen, console:address:console, 3:address:programming-environment-data
screen-should-contain [
. run (F4) .
. ┊ .
.recipe foo [ ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
. reply 4 ┊0 edit copy delete .
.] ┊foo .
.┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊4 .
. ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
. ┊ .
]
assume-console [
left-click 5, 51
]
run [
event-loop screen:address:screen, console:address:console, 3:address:programming-environment-data
]
screen-should-contain-in-color 2/green, [
. .
. .
. .
. .
. .
. 4 .
. .
. .
]
run [
4:character/cursor <- copy 9251/␣
print screen:address:screen, 4:character/cursor
]
screen-should-contain [
. run (F4) .
.␣ ┊ .
.recipe foo [ ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
. reply 4 ┊0 edit copy delete .
.] ┊foo .
.┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊4 .
. ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
. ┊ .
. ┊ .
. ┊ .
]
assume-console [
left-click 3, 11
press backspace
type [3]
press F4
]
run [
event-loop screen:address:screen, console:address:console, 3:address:programming-environment-data
]
screen-should-contain-in-color 1/red, [
. .
. .
. .
. .
. .
. 3 .
. .
. .
]
]
container sandbox-data [
response-starting-row-on-screen:number
expected-response:address:array:character
]
before <end-save-sandbox> [
{
expected-response:address:array:character <- get *curr, expected-response:offset
break-unless expected-response
filename <- append filename, [.out]
save filename, expected-response
}
]
before <end-restore-sandbox> [
{
filename <- append filename, [.out]
contents <- restore filename
break-unless contents
*curr <- put *curr, expected-response:offset, contents
}
]
after <global-touch> [
{
sandbox-left-margin:number <- get *current-sandbox, left:offset
click-column:number <- get t, column:offset
on-sandbox-side?:boolean <- greater-or-equal click-column, sandbox-left-margin
break-unless on-sandbox-side?
first-sandbox:address:sandbox-data <- get *env, sandbox:offset
break-unless first-sandbox
first-sandbox-begins:number <- get *first-sandbox, starting-row-on-screen:offset
click-row:number <- get t, row:offset
below-sandbox-editor?:boolean <- greater-or-equal click-row, first-sandbox-begins
break-unless below-sandbox-editor?
sandbox:address:sandbox-data <- find-click-inMa %Zlr)1tMl.@KVs-
9AeArrܿ~beZs6?Xoof먽美Pu