예제 #1
0
    def test_displays_menu_items(self, bokeh_model_page) -> None:
        button = Dropdown(label="Dropdown button", menu=items, css_classes=["foo"])

        page = bokeh_model_page(button)

        button = page.driver.find_element_by_css_selector('.foo button')
        assert button.text == "Dropdown button"
        button.click()

        menu = page.driver.find_element_by_css_selector('.foo .bk-menu')
        assert menu.is_displayed()
예제 #2
0
    def test_displays_menu_items(self, bokeh_model_page):
        button = Dropdown(label="Dropdown button", menu=items, css_classes=["foo"])

        page = bokeh_model_page(button)

        button = page.driver.find_element_by_css_selector('.foo button')
        assert button.text == "Dropdown button"
        button.click()

        menu = page.driver.find_element_by_css_selector('.foo .bk-menu')
        assert menu.is_displayed()
예제 #3
0
    def test_displays_menu_items(self, bokeh_model_page):
        button = Dropdown(label="Dropdown button",
                          menu=items,
                          css_classes=["foo"])

        page = bokeh_model_page(button)

        button_div = page.driver.find_element_by_class_name('foo')
        button = button_div.find_element_by_tag_name("button")
        assert button.text == "Dropdown button"
        button.click()

        links = page.driver.find_elements_by_css_selector('ul li a')
        assert len(links) == 3

        for i, link in enumerate(links):
            assert link.text == items[i][0]
            assert link.get_attribute('data-value') == items[i][1]
예제 #4
0
    def test_js_on_change_executes(self, bokeh_model_page) -> None:
        button = Dropdown(label="Dropdown button", menu=items, css_classes=["foo"])
        button.js_on_event('menu_item_click', CustomJS(code=RECORD("value", "this.item")))

        page = bokeh_model_page(button)

        button = page.driver.find_element_by_css_selector('.foo button')
        button.click()
        item = page.driver.find_element_by_css_selector(".foo .bk-menu > *:nth-child(1)")
        item.click()

        results = page.results
        assert results == {'value': "item_1_value"}

        button = page.driver.find_element_by_css_selector('.foo button')
        button.click()
        item = page.driver.find_element_by_css_selector(".foo .bk-menu > *:nth-child(3)")
        item.click()

        results = page.results
        assert results == {'value': "item_3_value"}

        button = page.driver.find_element_by_css_selector('.foo button')
        button.click()
        item = page.driver.find_element_by_css_selector(".foo .bk-menu > *:nth-child(2)")
        item.click()

        results = page.results
        assert results == {'value': "item_2_value"}

        assert page.has_no_console_errors()
예제 #5
0
    def test_js_on_change_executes(self, bokeh_model_page):
        button = Dropdown(label="Dropdown button",
                          menu=items,
                          css_classes=["foo"])
        button.js_on_change('value',
                            CustomJS(code=RECORD("value", "cb_obj.value")))

        page = bokeh_model_page(button)

        button = page.driver.find_element_by_class_name('foo')
        button.click()
        item = page.driver.find_element_by_link_text("Item 1")
        item.click()

        results = page.results
        assert results == {'value': "item_1_value"}

        button = page.driver.find_element_by_class_name('foo')
        button.click()
        item = page.driver.find_element_by_link_text("Item 3")
        item.click()

        results = page.results
        assert results == {'value': "item_3_value"}

        button = page.driver.find_element_by_class_name('foo')
        button.click()
        item = page.driver.find_element_by_link_text("Item 2")
        item.click()

        results = page.results
        assert results == {'value': "item_2_value"}

        assert page.has_no_console_errors()
예제 #6
0
    def test_js_on_change_executes(self, bokeh_model_page):
        button = Dropdown(label="Dropdown button", menu=items, css_classes=["foo"])
        button.js_on_event('menu_item_click', CustomJS(code=RECORD("value", "this.item")))

        page = bokeh_model_page(button)

        button = page.driver.find_element_by_css_selector('.foo button')
        button.click()
        item = page.driver.find_element_by_css_selector(".foo .bk-menu > *:nth-child(1)")
        item.click()

        results = page.results
        assert results == {'value': "item_1_value"}

        button = page.driver.find_element_by_css_selector('.foo button')
        button.click()
        item = page.driver.find_element_by_css_selector(".foo .bk-menu > *:nth-child(3)")
        item.click()

        results = page.results
        assert results == {'value': "item_3_value"}

        button = page.driver.find_element_by_css_selector('.foo button')
        button.click()
        item = page.driver.find_element_by_css_selector(".foo .bk-menu > *:nth-child(2)")
        item.click()

        results = page.results
        assert results == {'value': "item_2_value"}

        assert page.has_no_console_errors()