diff --git a/test/CursorTest.re b/test/CursorTest.re index 8dcf21e..3c32857 100644 --- a/test/CursorTest.re +++ b/test/CursorTest.re @@ -8,6 +8,8 @@ let input = s => ignore(Vim.input(s)); describe("Cursor", ({describe, _}) => { describe("setLocation", ({test, _}) => { test("cursor location gets updated", ({expect}) => { + let _ = resetBuffer(); + Cursor.setLocation(~line=Index.zero, ~column=Index.(zero + 1)); expect.int((Cursor.getLine() :> int)).toBe(0); expect.int((Cursor.getColumn() :> int)).toBe(1); diff --git a/test/CursorTestSwedish.re b/test/CursorTestSwedish.re new file mode 100644 index 0000000..3174fc6 --- /dev/null +++ b/test/CursorTestSwedish.re @@ -0,0 +1,47 @@ +open EditorCoreTypes; +open Vim; +open TestFramework; + +let resetBuffer = () => Helpers.resetBuffer("test/testfile_swedish.txt"); +let input = s => ignore(Vim.input(s)); + +describe("Cursor with Swedish characters", ({describe, _}) => { + describe("normal mode", ({test, _}) => { + test("l over a swedish character", ({expect}) => { + let _ = resetBuffer(); + + let cursorMoves: ref(list(Location.t)) = ref([]); + let dispose = Cursor.onMoved(p => cursorMoves := [p, ...cursorMoves^]); + + expect.int((Cursor.getLine() :> int)).toBe(0); + expect.int((Cursor.getColumn() :> int)).toBe(0); + expect.int(List.length(cursorMoves^)).toBe(0); + + input("l"); + + expect.int((Cursor.getLine() :> int)).toBe(0); + expect.int((Cursor.getColumn() :> int)).toBe(1); + + dispose(); + }); + + test("l without swedish characters", ({expect}) => { + let _ = resetBuffer(); + + let cursorMoves: ref(list(Location.t)) = ref([]); + let dispose = Cursor.onMoved(p => cursorMoves := [p, ...cursorMoves^]); + + expect.int((Cursor.getLine() :> int)).toBe(0); + expect.int((Cursor.getColumn() :> int)).toBe(0); + expect.int(List.length(cursorMoves^)).toBe(0); + + input("j"); + input("l"); + + expect.int((Cursor.getLine() :> int)).toBe(1); + expect.int((Cursor.getColumn() :> int)).toBe(1); + + dispose(); + }); + }); +}); diff --git a/test/testfile_swedish.txt b/test/testfile_swedish.txt new file mode 100644 index 0000000..9c65674 --- /dev/null +++ b/test/testfile_swedish.txt @@ -0,0 +1,2 @@ +äbcdefgeh +abcdefgeh