1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- from typing import Dict, List
- import pytest
- from nicegui import ui
- from nicegui.testing import Screen
- # pylint: disable=protected-access
- def test_codemirror(screen: Screen):
- ui.codemirror('Line 1\nLine 2\nLine 3')
- screen.open('/')
- screen.should_contain('Line 2')
- def test_supported_values(screen: Screen):
- values: Dict[str, List[str]] = {}
- @ui.page('/')
- def page():
- editor = ui.codemirror()
- async def fetch():
- values['languages'] = await editor.run_method('getLanguages')
- values['themes'] = await editor.run_method('getThemes')
- values['supported_themes'] = editor.supported_themes
- values['supported_languages'] = editor.supported_languages
- ui.label('Done')
- ui.button('Fetch', on_click=fetch)
- screen.open('/')
- screen.click('Fetch')
- screen.wait_for('Done')
- assert values['languages'] == values['supported_languages']
- assert values['themes'] == values['supported_themes']
- @pytest.mark.parametrize('doc, sections, inserted, expected', [
- ('', [0, 1], [['A']], 'A'),
- ('', [0, 2], [['AB']], 'AB'),
- ('X', [1, 2], [['AB']], 'AB'),
- ('X', [1, -1], [], 'X'),
- ('X', [1, -1, 0, 1], [[], ['Y']], 'XY'),
- ('Hello', [5, -1, 0, 8], [[], [', world!']], 'Hello, world!'),
- ('Hello, world!', [5, -1, 7, 0, 1, -1], [], 'Hello!'),
- ('Hello, hello!', [2, -1, 3, 1, 4, -1, 3, 1, 1, -1], [[], ['y'], [], ['y']], 'Hey, hey!'),
- ('Hello, world!', [5, -1, 1, 3, 7, -1], [[], [' 🙂']], 'Hello 🙂 world!'),
- ('Hey! 🙂', [7, -1, 0, 4], [[], [' Ho!']], 'Hey! 🙂 Ho!'),
- ('Ha 🙂\nha 🙂', [3, -1, 2, 0, 4, -1, 2, 0], [[], [''], [], ['']], 'Ha \nha '),
- ])
- def test_change_set(screen: Screen, doc: str, sections: List[int], inserted: List[List[str]], expected: str):
- editor = ui.codemirror(doc)
- screen.open('/')
- assert editor._apply_change_set(sections, inserted) == expected
- def test_encode_codepoints():
- assert ui.codemirror._encode_codepoints('') == b''
- assert ui.codemirror._encode_codepoints('Hello') == bytes([1, 1, 1, 1, 1])
- assert ui.codemirror._encode_codepoints('🙂') == bytes([0, 1])
- assert ui.codemirror._encode_codepoints('Hello 🙂') == bytes([1, 1, 1, 1, 1, 1, 0, 1])
- assert ui.codemirror._encode_codepoints('😎😎😎') == bytes([0, 1, 0, 1, 0, 1])
|