widget_bool.js
92 lines
| 3.8 KiB
| application/javascript
|
JavascriptLexer
Jonathan Frederic
|
r14464 | // Test widget bool class | ||
casper.notebook_test(function () { | ||||
Matthias Bussonnier
|
r19739 | "use strict"; | ||
Jonathan Frederic
|
r14464 | |||
Jonathan Frederic
|
r18910 | // Create a checkbox and togglebutton. | ||
Jonathan Frederic
|
r14464 | var bool_index = this.append_cell( | ||
Jonathan Frederic
|
r18909 | 'from IPython.html import widgets\n' + | ||
'from IPython.display import display, clear_output\n' + | ||||
Jonathan Frederic
|
r17598 | 'bool_widgets = [widgets.Checkbox(description="Title", value=True),\n' + | ||
' widgets.ToggleButton(description="Title", value=True)]\n' + | ||||
Jonathan Frederic
|
r14583 | 'display(bool_widgets[0])\n' + | ||
'display(bool_widgets[1])\n' + | ||||
Jonathan Frederic
|
r14464 | 'print("Success")'); | ||
this.execute_cell_then(bool_index, function(index){ | ||||
MinRK
|
r14797 | this.test.assertEquals(this.get_output_cell(index).text, 'Success\n', | ||
Jonathan Frederic
|
r14464 | 'Create bool widget cell executed with correct output.'); | ||
Jonathan Frederic
|
r18909 | }); | ||
Jonathan Frederic
|
r18910 | // Wait for the widgets to actually display. | ||
var widget_checkbox_selector = '.widget-area .widget-subarea .widget-hbox input'; | ||||
var widget_togglebutton_selector = '.widget-area .widget-subarea button'; | ||||
this.wait_for_element(bool_index, widget_checkbox_selector); | ||||
this.wait_for_element(bool_index, widget_togglebutton_selector); | ||||
Jonathan Frederic
|
r14464 | |||
Jonathan Frederic
|
r18910 | // Continue the tests. | ||
Jonathan Frederic
|
r18909 | this.then(function() { | ||
this.test.assert(this.cell_element_exists(bool_index, | ||||
Jonathan Frederic
|
r14464 | '.widget-area .widget-subarea'), | ||
'Widget subarea exists.'); | ||||
Jonathan Frederic
|
r18909 | this.test.assert(this.cell_element_exists(bool_index, | ||
Jonathan Frederic
|
r18910 | widget_checkbox_selector), | ||
Jonathan Frederic
|
r14464 | 'Checkbox exists.'); | ||
Jonathan Frederic
|
r18909 | this.test.assert(this.cell_element_function(bool_index, | ||
Jonathan Frederic
|
r18910 | widget_checkbox_selector, 'prop', ['checked']), | ||
Jonathan Frederic
|
r14464 | 'Checkbox is checked.'); | ||
Jonathan Frederic
|
r18909 | this.test.assert(this.cell_element_exists(bool_index, | ||
Jonathan Frederic
|
r17929 | '.widget-area .widget-subarea .widget-hbox .widget-label'), | ||
Jonathan Frederic
|
r14464 | 'Checkbox label exists.'); | ||
Jonathan Frederic
|
r18909 | this.test.assert(this.cell_element_function(bool_index, | ||
Jonathan Frederic
|
r17929 | '.widget-area .widget-subarea .widget-hbox .widget-label', 'html')=="Title", | ||
Jonathan Frederic
|
r14464 | 'Checkbox labeled correctly.'); | ||
Jonathan Frederic
|
r18909 | this.test.assert(this.cell_element_exists(bool_index, | ||
Jonathan Frederic
|
r18910 | widget_togglebutton_selector), | ||
Jonathan Frederic
|
r14464 | 'Toggle button exists.'); | ||
Jonathan Frederic
|
r18909 | this.test.assert(this.cell_element_function(bool_index, | ||
Sylvain Corlay
|
r20397 | widget_togglebutton_selector, 'html')=='<i class="fa"></i>Title', | ||
Jonathan Frederic
|
r14464 | 'Toggle button labeled correctly.'); | ||
Jonathan Frederic
|
r18909 | this.test.assert(this.cell_element_function(bool_index, | ||
Jonathan Frederic
|
r18910 | widget_togglebutton_selector, 'hasClass', ['active']), | ||
Jonathan Frederic
|
r14464 | 'Toggle button is toggled.'); | ||
}); | ||||
Jonathan Frederic
|
r18910 | // Try changing the state of the widgets programatically. | ||
Matthias Bussonnier
|
r19739 | var index = this.append_cell( | ||
Jonathan Frederic
|
r14583 | 'bool_widgets[0].value = False\n' + | ||
Jonathan Frederic
|
r14595 | 'bool_widgets[1].value = False\n' + | ||
Jonathan Frederic
|
r14464 | 'print("Success")'); | ||
this.execute_cell_then(index, function(index){ | ||||
MinRK
|
r14797 | this.test.assertEquals(this.get_output_cell(index).text, 'Success\n', | ||
Jonathan Frederic
|
r14464 | 'Change bool widget value cell executed with correct output.'); | ||
this.test.assert(! this.cell_element_function(bool_index, | ||||
Jonathan Frederic
|
r18910 | widget_checkbox_selector, 'prop', ['checked']), | ||
Jonathan Frederic
|
r14464 | 'Checkbox is not checked. (1)'); | ||
this.test.assert(! this.cell_element_function(bool_index, | ||||
Jonathan Frederic
|
r18910 | widget_togglebutton_selector, 'hasClass', ['active']), | ||
Jonathan Frederic
|
r14464 | 'Toggle button is not toggled. (1)'); | ||
// Try toggling the bool by clicking on the checkbox. | ||||
Jonathan Frederic
|
r18910 | this.cell_element_function(bool_index, widget_checkbox_selector, 'click'); | ||
Jonathan Frederic
|
r14464 | |||
Jonathan Frederic
|
r14595 | this.test.assert(this.cell_element_function(bool_index, | ||
Jonathan Frederic
|
r18910 | widget_checkbox_selector, 'prop', ['checked']), | ||
Jonathan Frederic
|
r14595 | 'Checkbox is checked. (2)'); | ||
Jonathan Frederic
|
r14464 | |||
Jonathan Frederic
|
r14595 | // Try toggling the bool by clicking on the toggle button. | ||
Jonathan Frederic
|
r18910 | this.cell_element_function(bool_index, widget_togglebutton_selector, 'click'); | ||
Jonathan Frederic
|
r14595 | |||
this.test.assert(this.cell_element_function(bool_index, | ||||
Jonathan Frederic
|
r18910 | widget_togglebutton_selector, 'hasClass', ['active']), | ||
Jonathan Frederic
|
r14595 | 'Toggle button is toggled. (3)'); | ||
Jonathan Frederic
|
r14464 | |||
}); | ||||
Matthias Bussonnier
|
r19739 | }); | ||