Example #1
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.h1 = H1()
     self.h1.textContent = 'Hello, WDOM'
     self.input = Input()
     self.input.addEventListener('input', self.update)
     self.appendChild(self.input)
     self.appendChild(self.h1)
Example #2
0
class MyElement(Div):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.h1 = H1('Hello, WDOM', parent=self)  
        self.input = Input(parent=self)
        self.input.addEventListener('input', self.update)

    def update(self, event):
        self.h1.textContent = event.target.value
Example #3
0
class MyElement(Div):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.h1 = H1('Hello, WDOM', parent=self)
        self.input = Input(parent=self)
        self.input.addEventListener('input', self.update)

    def update(self, event):
        self.h1.textContent = event.target.value
Example #4
0
class MyElement(Div):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.h1 = H1()
        self.h1.textContent = 'Hello, WDOM'
        self.input = Input()
        self.input.addEventListener('input', self.update)
        self.appendChild(self.input)
        self.appendChild(self.h1)

    def update(self, event):
        self.h1.textContent = event.target.value
Example #5
0
class MyElement(Div):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.h1 = H1()
        self.h1.textContent = 'Hello, WDOM'
        self.input = Input()
        self.input.addEventListener('input', self.update)
        self.appendChild(self.input)
        self.appendChild(self.h1)

    def update(self, event):
        self.h1.textContent = event.target.value
Example #6
0
 def get_elements(self):
     self.root = Form()
     self.input = Input(parent=self.root, type='text')
     self.textarea = Textarea(parent=self.root)
     self.checkbox = CheckBox(parent=self.root, id='check1')
     self.check_l = Label('Check 1', parent=self.root, **{'for': 'check1'})
     self.radio1 = Input(parent=self.root, type='radio', name='radio_test', id='r1')  # noqa: E501
     self.radio2 = Input(parent=self.root, type='radio', name='radio_test', id='r2')  # noqa: E501
     self.radio3 = Input(parent=self.root, type='radio', name='radio_test2', id='r3')  # noqa: E501
     self.radio1_l = Label(self.radio1, 'Radio 1', parent=self.root)
     self.radio2_l = Label(self.radio2, 'Radio 2', parent=self.root)
     self.radio3_l = Label(self.radio3, 'Radio 3', parent=self.root)
     return self.root
Example #7
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.h1 = H1()
     self.h1.textContent = 'Hello, WDOM'
     self.input = Input()
     self.input.addEventListener('input', self.update)
     self.appendChild(self.input)
     self.appendChild(self.h1)
Example #8
0
def sample_page(**kwargs):
    doc = get_document()
    win = doc.defaultView
    app = Div()
    inp = Input(id='input', parent=app)
    win1 = H1(id='win1', parent=app)
    doc1 = H1(id='doc1', parent=app)
    input_view = H1(id='input_view', parent=app)

    def add_letter_doc(e):
        doc1.textContent = doc1.textContent + e.key

    def add_letter_win(e):
        win1.textContent = win1.textContent + e.key

    def input_handler(e):
        input_view.textContent = e.data

    doc.addEventListener('keypress', add_letter_doc)
    win.addEventListener('keypress', add_letter_win)
    inp.addEventListener('input', input_handler)
    return app
Example #9
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.h1 = H1('Hello, WDOM', parent=self)  
     self.input = Input(parent=self)
     self.input.addEventListener('input', self.update)
Example #10
0
class TestInput(PyppeteerTestCase):
    def get_elements(self):
        self.root = Form()
        self.input = Input(parent=self.root, type='text')
        self.textarea = Textarea(parent=self.root)
        self.checkbox = CheckBox(parent=self.root, id='check1')
        self.check_l = Label('Check 1', parent=self.root, **{'for': 'check1'})
        self.radio1 = Input(parent=self.root, type='radio', name='radio_test', id='r1')  # noqa: E501
        self.radio2 = Input(parent=self.root, type='radio', name='radio_test', id='r2')  # noqa: E501
        self.radio3 = Input(parent=self.root, type='radio', name='radio_test2', id='r3')  # noqa: E501
        self.radio1_l = Label(self.radio1, 'Radio 1', parent=self.root)
        self.radio2_l = Label(self.radio2, 'Radio 2', parent=self.root)
        self.radio3_l = Label(self.radio3, 'Radio 3', parent=self.root)
        return self.root

    @sync
    async def test_textinput(self):
        inputs = []

        def input_handler(e):
            inputs.append(e.data)

        self.input.addEventListener('input', input_handler)
        await self.page.type('[wdom_id="{}"]'.format(self.input.wdom_id), 'a')
        await self.wait()
        self.assertEqual(self.input.value, 'a')
        self.assertEqual(len(inputs), 1)
        self.assertEqual(inputs[0], 'a')

        await self.page.reload()
        self.element = await self.get_element_handle(self.input)
        self.assertEqual(await self.get_attribute('value'), 'a')

        await self.page.type('[wdom_id="{}"]'.format(self.input.wdom_id), 'd')
        await self.wait()
        # focus on top of the text input
        self.assertEqual(self.input.value, 'da')
        self.assertEqual(len(inputs), 2)
        self.assertEqual(inputs[0], 'a')
        self.assertEqual(inputs[1], 'd')

    @sync
    async def test_textarea(self):
        await self.page.type('[wdom_id="{}"]'.format(self.textarea.wdom_id),
                             'abc')
        await self.wait()
        self.element = await self.get_element_handle(self.textarea)
        self.assertEqual(self.textarea.textContent, 'abc')

        await self.page.reload()
        await self.wait()
        self.element = await self.get_element_handle(self.textarea)
        await self.wait()
        self.assertEqual(await self.get_text(), 'abc')

        await self.page.type('[wdom_id="{}"]'.format(self.textarea.wdom_id),
                             'def')
        await self.wait()
        self.assertEqual(self.textarea.textContent, 'defabc')

    @sync
    async def test_checkbox(self):
        self.element = await self.get_element_handle(self.checkbox)
        await self.element.click()
        await self.wait()
        self.assertIsTrue(self.checkbox.checked)

        await self.page.reload()
        await self.wait()
        self.element = await self.get_element_handle(self.checkbox)
        self.assertIsTrue(
            await self.page.evaluate('(e) => e.hasAttribute("checked")',
                                     self.element))

        await self.element.click()
        await self.wait()
        # Error
        # self.assertIsFalse(
        #     await self.element.evaluate('(elm) => elm.hasAttribute("checked")')  # noqa
        # )
        self.assertIsFalse(self.checkbox.checked)

    @sync
    async def test_checkbox_label(self):
        self.element = await self.get_element_handle(self.checkbox)
        await self.element.click()
        await self.wait()
        self.assertTrue(self.checkbox.checked)

        await self.element.click()
        await self.wait()
        self.assertFalse(self.checkbox.checked)

    @sync
    async def test_radios(self):
        self.assertFalse(self.radio1.checked)
        self.assertFalse(self.radio2.checked)
        self.assertFalse(self.radio3.checked)

        self.element = await self.get_element_handle(self.radio1)
        await self.element.click()
        await self.wait()
        self.assertTrue(self.radio1.checked)
        self.assertFalse(self.radio2.checked)
        self.assertFalse(self.radio3.checked)

        self.element = await self.get_element_handle(self.radio2)
        await self.element.click()
        await self.wait()
        self.assertFalse(self.radio1.checked)
        self.assertTrue(self.radio2.checked)
        self.assertFalse(self.radio3.checked)

        self.element = await self.get_element_handle(self.radio3)
        await self.element.click()
        await self.wait()
        self.assertFalse(self.radio1.checked)
        self.assertTrue(self.radio2.checked)
        self.assertTrue(self.radio3.checked)

    @sync
    async def test_radios_label(self):
        self.element = await self.get_element_handle(self.radio1_l)
        await self.element.click()
        await self.wait()
        self.assertTrue(self.radio1.checked)
        self.assertFalse(self.radio2.checked)

        self.element = await self.get_element_handle(self.radio2_l)
        await self.element.click()
        await self.wait()
        self.assertFalse(self.radio1.checked)
        self.assertTrue(self.radio2.checked)

    def test_select(self):
        pass

    def test_select_multi(self):
        pass
Example #11
0
from wdom.tag import Input

input = Input(type='checkbox')
print(input.html_noid)  # <input type="checkbox">

# this is equivalent to:
input = Input()
input.setAttribute('type', 'checkbox')
# also same as:
input.type = 'checkbox'
Example #12
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.h1 = H1('Hello, WDOM', parent=self)
     self.input = Input(parent=self)
     self.input.addEventListener('input', self.update)