about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--edit.mu32
1 files changed, 31 insertions, 1 deletions
diff --git a/edit.mu b/edit.mu
index 62055ac9..1f1527ca 100644
--- a/edit.mu
+++ b/edit.mu
@@ -5,7 +5,7 @@ scenario edit-prints-string-to-screen [
   assume-keyboard []
   run [
     s:address:array:character <- new [abc]
-    s2:address:array:character, screen:address, keyboard:address <- edit s:address:array:character, screen:address, 0:literal/top, 0:literal/right, 10:literal/bottom, 5:literal/right, keyboard:address
+    s2:address:array:character, screen:address, keyboard:address <- edit s:address:array:character, screen:address, 0:literal/top, 0:literal/left, 10:literal/bottom, 5:literal/right, keyboard:address
   ]
   screen-should-contain [
     .abc       .
@@ -22,5 +22,35 @@ recipe edit [
   bottom:number <- next-ingredient
   right:number <- next-ingredient
   keyboard:address <- next-ingredient
+  move-cursor screen:address, top:number, left:number
   print-string screen:address, s:address:array:character
 ]
+
+scenario edit-prints-multiple-lines [
+  assume-screen 5:literal/width, 3:literal/height
+  assume-keyboard []
+  run [
+    s:address:array:character <- new [abc
+def]
+    s2:address:array:character, screen:address, keyboard:address <- edit s:address:array:character, screen:address, 0:literal/top, 0:literal/left, 10:literal/bottom, 5:literal/right, keyboard:address
+  ]
+  screen-should-contain [
+    .abc  .
+    .def  .
+    .     .
+  ]
+]
+
+scenario edit-handles-offsets [
+  assume-screen 5:literal/width, 3:literal/height
+  assume-keyboard []
+  run [
+    s:address:array:character <- new [abc]
+    s2:address:array:character, screen:address, keyboard:address <- edit s:address:array:character, screen:address, 0:literal/top, 1:literal/left, 10:literal/bottom, 5:literal/right, keyboard:address
+  ]
+  screen-should-contain [
+    . abc .
+    .     .
+    .     .
+  ]
+]