diff options
Diffstat (limited to 'test/test_windows.py')
-rw-r--r-- | test/test_windows.py | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/test/test_windows.py b/test/test_windows.py new file mode 100644 index 00000000..8fb85295 --- /dev/null +++ b/test/test_windows.py @@ -0,0 +1,76 @@ +import pytest +import sys +sys.path.append('src') + +class ConfigShim(object): + def get(self, *args, **kwargs): + return '' + +import config +config.config = ConfigShim() +import core + +from windows import Input, HistoryInput, MessageInput, CommandInput + +@pytest.fixture +def input(): + input = Input() + input.rewrite_text = lambda: None + return input + +class TestInput(object): + + def test_do_command(self, input): + + input.do_command('a') + assert input.text == 'a' + + for char in 'coucou': + input.do_command(char) + assert input.text == 'acoucou' + + def test_empty(self, input): + assert input.is_empty() == True + input.do_command('a') + assert input.is_empty() == False + + def test_key_left(self, input): + for char in 'this is a line': + input.do_command(char) + for i in range(4): + input.key_left() + for char in 'long ': + input.do_command(char) + + assert input.text == 'this is a long line' + + def test_key_right(self, input): + for char in 'this is a line': + input.do_command(char) + for i in range(4): + input.key_left() + input.key_right() + + for char in 'iii': + input.do_command(char) + + assert input.text == 'this is a liiiine' + + def test_key_home(self, input): + for char in 'this is a line of text': + input.do_command(char) + input.do_command('z') + input.key_home() + input.do_command('a') + + assert input.text == 'athis is a line of textz' + + def test_key_end(self, input): + for char in 'this is a line of text': + input.do_command(char) + input.key_home() + input.key_end() + input.do_command('z') + + assert input.text == 'this is a line of textz' + |