about summary refs log tree commit diff stats
path: root/apps/browse/main.mu
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2020-09-11 00:29:20 -0700
committerKartik Agaram <vc@akkartik.com>2020-09-11 00:29:20 -0700
commit9818804c1f635ccad8b13025038212b22bb08f6a (patch)
tree22fc1083652ab7220913d94d66186f7427640002 /apps/browse/main.mu
parenta03daa83f59fa22a0d5a7857767ba03e3d2909a5 (diff)
downloadmu-9818804c1f635ccad8b13025038212b22bb08f6a.tar.gz
6771 - first passing test for the browser itself
In the process I had to go back and redo the `done-drawing?` logic everywhere.
Diffstat (limited to 'apps/browse/main.mu')
-rw-r--r--apps/browse/main.mu19
1 files changed, 19 insertions, 0 deletions
diff --git a/apps/browse/main.mu b/apps/browse/main.mu
index 90143953..ad66d7d0 100644
--- a/apps/browse/main.mu
+++ b/apps/browse/main.mu
@@ -59,6 +59,25 @@ fn render screen: (addr paginated-screen), fs: (addr buffered-file) {
   render-normal screen, fs
 }
 
+fn test-render-normal-text {
+  # input text
+  var input-storage: (handle buffered-file)
+  var input-ah/eax: (addr handle buffered-file) <- address input-storage
+  populate-buffered-file-containing "abcdefgh", input-ah
+  var in/eax: (addr buffered-file) <- lookup input-storage
+  # output screen
+  var pg: paginated-screen
+  var pg-addr/ecx: (addr paginated-screen) <- address pg
+  initialize-fake-paginated-screen pg-addr, 3, 6, 2, 1, 1  # 3 rows, 6 columns, 2 pages * 2 columns each
+  #
+  render pg-addr, in
+  var screen-ah/eax: (addr handle screen) <- get pg, screen
+  var screen/eax: (addr screen) <- lookup *screen-ah
+  check-screen-row screen, 1, "      ", "F - test-render-normal-text/row1"
+  check-screen-row screen, 2, " ab ef", "F - test-render-normal-text/row2"
+  check-screen-row screen, 3, " cd gh", "F - test-render-normal-text/row3"
+}
+
 fn render-normal screen: (addr paginated-screen), fs: (addr buffered-file) {
   var newline-seen?/esi: boolean <- copy 0  # false
   var start-of-paragraph?/edi: boolean <- copy 1  # true