##// END OF EJS Templates
Make the widget property_lock store the JSON state, not the original object...
Make the widget property_lock store the JSON state, not the original object Comparison between arbitrary python objects can get crazy, whereas we really only care about if the JSON state we are syncing is different. So with this change, we store and check against the JSON state.

File last commit:

r15201:029ac024
r17674:60553571
Show More
widget_bool.js
85 lines | 3.6 KiB | application/javascript | JavascriptLexer
Jonathan Frederic
Organized tests.
r14464 // Test widget bool class
casper.notebook_test(function () {
index = this.append_cell(
'from IPython.html import widgets\n' +
'from IPython.display import display, clear_output\n' +
'print("Success")');
this.execute_cell_then(index);
var bool_index = this.append_cell(
Jonathan Frederic
Renamed widgets......
r14834 'bool_widgets = [widgets.CheckboxWidget(description="Title", value=True),\n' +
Jonathan Frederic
More fixes
r14595 ' widgets.ToggleButtonWidget(description="Title", value=True)]\n' +
Jonathan Frederic
Many checks off the todo list, test fixes
r14583 'display(bool_widgets[0])\n' +
'display(bool_widgets[1])\n' +
Jonathan Frederic
Organized tests.
r14464 'print("Success")');
this.execute_cell_then(bool_index, function(index){
MinRK
first review pass on widget tests
r14797 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
Jonathan Frederic
Organized tests.
r14464 'Create bool widget cell executed with correct output.');
this.test.assert(this.cell_element_exists(index,
'.widget-area .widget-subarea'),
'Widget subarea exists.');
this.test.assert(this.cell_element_exists(index,
'.widget-area .widget-subarea .widget-hbox-single input'),
'Checkbox exists.');
this.test.assert(this.cell_element_function(index,
'.widget-area .widget-subarea .widget-hbox-single input', 'prop', ['checked']),
'Checkbox is checked.');
this.test.assert(this.cell_element_exists(index,
'.widget-area .widget-subarea .widget-hbox-single .widget-hlabel'),
'Checkbox label exists.');
this.test.assert(this.cell_element_function(index,
'.widget-area .widget-subarea .widget-hbox-single .widget-hlabel', 'html')=="Title",
'Checkbox labeled correctly.');
this.test.assert(this.cell_element_exists(index,
Jonathan Frederic
Many checks off the todo list, test fixes
r14583 '.widget-area .widget-subarea button'),
Jonathan Frederic
Organized tests.
r14464 'Toggle button exists.');
this.test.assert(this.cell_element_function(index,
Jonathan Frederic
Many checks off the todo list, test fixes
r14583 '.widget-area .widget-subarea button', 'html')=="Title",
Jonathan Frederic
Organized tests.
r14464 'Toggle button labeled correctly.');
this.test.assert(this.cell_element_function(index,
Jonathan Frederic
Many checks off the todo list, test fixes
r14583 '.widget-area .widget-subarea button', 'hasClass', ['active']),
Jonathan Frederic
Organized tests.
r14464 'Toggle button is toggled.');
});
index = this.append_cell(
Jonathan Frederic
Many checks off the todo list, test fixes
r14583 'bool_widgets[0].value = False\n' +
Jonathan Frederic
More fixes
r14595 'bool_widgets[1].value = False\n' +
Jonathan Frederic
Organized tests.
r14464 'print("Success")');
this.execute_cell_then(index, function(index){
MinRK
first review pass on widget tests
r14797 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
Jonathan Frederic
Organized tests.
r14464 'Change bool widget value cell executed with correct output.');
this.test.assert(! this.cell_element_function(bool_index,
'.widget-area .widget-subarea .widget-hbox-single input', 'prop', ['checked']),
'Checkbox is not checked. (1)');
this.test.assert(! this.cell_element_function(bool_index,
Jonathan Frederic
Many checks off the todo list, test fixes
r14583 '.widget-area .widget-subarea button', 'hasClass', ['active']),
Jonathan Frederic
Organized tests.
r14464 'Toggle button is not toggled. (1)');
// Try toggling the bool by clicking on the checkbox.
this.cell_element_function(bool_index, '.widget-area .widget-subarea .widget-hbox-single input', 'click');
Jonathan Frederic
More fixes
r14595 this.test.assert(this.cell_element_function(bool_index,
Jonathan Frederic
Organized tests.
r14464 '.widget-area .widget-subarea .widget-hbox-single input', 'prop', ['checked']),
Jonathan Frederic
More fixes
r14595 'Checkbox is checked. (2)');
Jonathan Frederic
Organized tests.
r14464
Jonathan Frederic
More fixes
r14595 // Try toggling the bool by clicking on the toggle button.
this.cell_element_function(bool_index, '.widget-area .widget-subarea button', 'click');
this.test.assert(this.cell_element_function(bool_index,
Jonathan Frederic
Many checks off the todo list, test fixes
r14583 '.widget-area .widget-subarea button', 'hasClass', ['active']),
Jonathan Frederic
More fixes
r14595 'Toggle button is toggled. (3)');
Jonathan Frederic
Organized tests.
r14464
});
});