mirror of
https://github.com/jupyter/notebook.git
synced 2025-03-13 13:17:50 +08:00
Make all tests async display safe
This commit is contained in:
parent
56c5020a84
commit
0d591619c6
@ -80,7 +80,7 @@ define(["widgets/js/manager",
|
||||
this.trigger('msg:custom', msg.content.data.content);
|
||||
break;
|
||||
case 'display':
|
||||
return that.widget_manager.display_view(msg, that);
|
||||
this.widget_manager.display_view(msg, that);
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
@ -180,10 +180,31 @@ casper.wait_for_widget = function (widget_info) {
|
||||
// widget_info : object
|
||||
// Object which contains info related to the widget. The model_id property
|
||||
// is used to identify the widget.
|
||||
|
||||
// Clear the results of a previous query, if they exist. Make sure a
|
||||
// dictionary exists to store the async results in.
|
||||
this.thenEvaluate(function(model_id) {
|
||||
if (window.pending_msgs === undefined) {
|
||||
window.pending_msgs = {};
|
||||
} else {
|
||||
window.pending_msgs[model_id] = -1;
|
||||
}
|
||||
}, {model_id: widget_info.model_id});
|
||||
|
||||
// Wait for the pending messages to be 0.
|
||||
this.waitFor(function () {
|
||||
var pending = this.evaluate(function (m) {
|
||||
return IPython.notebook.kernel.widget_manager.get_model(m).pending_msgs;
|
||||
}, {m: widget_info.model_id});
|
||||
var pending = this.evaluate(function (model_id) {
|
||||
|
||||
// Get the model. Once the model is had, store it's pending_msgs
|
||||
// count in the window's dictionary.
|
||||
IPython.notebook.kernel.widget_manager.get_model(model_id)
|
||||
.then(function(model) {
|
||||
window.pending_msgs[model_id] = model.pending_msgs;
|
||||
});
|
||||
|
||||
// Return the pending_msgs result.
|
||||
return window.pending_msgs[model_id];
|
||||
}, {model_id: widget_info.model_id});
|
||||
|
||||
if (pending === 0) {
|
||||
return true;
|
||||
@ -314,13 +335,13 @@ casper.execute_cell_then = function(index, then_callback, expect_failure) {
|
||||
return return_val;
|
||||
};
|
||||
|
||||
casper.waitfor_cell_element = function(index, selector){
|
||||
casper.wait_for_element = function(index, selector){
|
||||
// Utility function that allows us to easily wait for an element
|
||||
// within a cell. Uses JQuery selector to look for the element.
|
||||
var that = this;
|
||||
this.waitFor(function() {
|
||||
return that.cell_element_exists(index, selector);
|
||||
}, function() { console.log('FOUND!'); });
|
||||
});
|
||||
};
|
||||
|
||||
casper.cell_element_exists = function(index, selector){
|
||||
|
@ -131,7 +131,7 @@ casper.notebook_test(function () {
|
||||
multiset.model_id = this.get_output_cell(index).text.trim();
|
||||
});
|
||||
|
||||
this.wait_for_widget(multiset);
|
||||
this.wait_for_widget(multiset);
|
||||
|
||||
index = this.append_cell(
|
||||
'print("%d%d%d" % (multiset.a, multiset.b, multiset.c))');
|
||||
|
@ -1,9 +1,7 @@
|
||||
// Test widget bool class
|
||||
casper.notebook_test(function () {
|
||||
// index = this.append_cell(
|
||||
// 'print("Success")');
|
||||
// this.execute_cell_then(index);
|
||||
|
||||
// Create a checkbox and togglebutton.
|
||||
var bool_index = this.append_cell(
|
||||
'from IPython.html import widgets\n' +
|
||||
'from IPython.display import display, clear_output\n' +
|
||||
@ -17,20 +15,24 @@ casper.notebook_test(function () {
|
||||
'Create bool widget cell executed with correct output.');
|
||||
});
|
||||
|
||||
this.waitfor_cell_element(bool_index, '.widget-area .widget-subarea .widget-hbox input');
|
||||
this.waitfor_cell_element(bool_index, '.widget-area .widget-subarea button');
|
||||
// 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);
|
||||
|
||||
// Continue the tests.
|
||||
this.then(function() {
|
||||
this.test.assert(this.cell_element_exists(bool_index,
|
||||
'.widget-area .widget-subarea'),
|
||||
'Widget subarea exists.');
|
||||
|
||||
this.test.assert(this.cell_element_exists(bool_index,
|
||||
'.widget-area .widget-subarea .widget-hbox input'),
|
||||
widget_checkbox_selector),
|
||||
'Checkbox exists.');
|
||||
|
||||
this.test.assert(this.cell_element_function(bool_index,
|
||||
'.widget-area .widget-subarea .widget-hbox input', 'prop', ['checked']),
|
||||
widget_checkbox_selector, 'prop', ['checked']),
|
||||
'Checkbox is checked.');
|
||||
|
||||
this.test.assert(this.cell_element_exists(bool_index,
|
||||
@ -42,18 +44,19 @@ casper.notebook_test(function () {
|
||||
'Checkbox labeled correctly.');
|
||||
|
||||
this.test.assert(this.cell_element_exists(bool_index,
|
||||
'.widget-area .widget-subarea button'),
|
||||
widget_togglebutton_selector),
|
||||
'Toggle button exists.');
|
||||
|
||||
this.test.assert(this.cell_element_function(bool_index,
|
||||
'.widget-area .widget-subarea button', 'html')=="Title",
|
||||
widget_togglebutton_selector, 'html')=="Title",
|
||||
'Toggle button labeled correctly.');
|
||||
|
||||
this.test.assert(this.cell_element_function(bool_index,
|
||||
'.widget-area .widget-subarea button', 'hasClass', ['active']),
|
||||
widget_togglebutton_selector, 'hasClass', ['active']),
|
||||
'Toggle button is toggled.');
|
||||
});
|
||||
|
||||
// Try changing the state of the widgets programatically.
|
||||
index = this.append_cell(
|
||||
'bool_widgets[0].value = False\n' +
|
||||
'bool_widgets[1].value = False\n' +
|
||||
@ -63,25 +66,25 @@ casper.notebook_test(function () {
|
||||
'Change bool widget value cell executed with correct output.');
|
||||
|
||||
this.test.assert(! this.cell_element_function(bool_index,
|
||||
'.widget-area .widget-subarea .widget-hbox input', 'prop', ['checked']),
|
||||
widget_checkbox_selector, 'prop', ['checked']),
|
||||
'Checkbox is not checked. (1)');
|
||||
|
||||
this.test.assert(! this.cell_element_function(bool_index,
|
||||
'.widget-area .widget-subarea button', 'hasClass', ['active']),
|
||||
widget_togglebutton_selector, 'hasClass', ['active']),
|
||||
'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 input', 'click');
|
||||
this.cell_element_function(bool_index, widget_checkbox_selector, 'click');
|
||||
|
||||
this.test.assert(this.cell_element_function(bool_index,
|
||||
'.widget-area .widget-subarea .widget-hbox input', 'prop', ['checked']),
|
||||
widget_checkbox_selector, 'prop', ['checked']),
|
||||
'Checkbox is checked. (2)');
|
||||
|
||||
// Try toggling the bool by clicking on the toggle button.
|
||||
this.cell_element_function(bool_index, '.widget-area .widget-subarea button', 'click');
|
||||
this.cell_element_function(bool_index, widget_togglebutton_selector, 'click');
|
||||
|
||||
this.test.assert(this.cell_element_function(bool_index,
|
||||
'.widget-area .widget-subarea button', 'hasClass', ['active']),
|
||||
widget_togglebutton_selector, 'hasClass', ['active']),
|
||||
'Toggle button is toggled. (3)');
|
||||
|
||||
});
|
||||
|
@ -1,12 +1,10 @@
|
||||
// Test container class
|
||||
casper.notebook_test(function () {
|
||||
index = this.append_cell(
|
||||
|
||||
// Create a box widget.
|
||||
var container_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 container_index = this.append_cell(
|
||||
'container = widgets.Box()\n' +
|
||||
'button = widgets.Button()\n'+
|
||||
'container.children = [button]\n'+
|
||||
@ -14,24 +12,32 @@ casper.notebook_test(function () {
|
||||
'container._dom_classes = ["my-test-class"]\n'+
|
||||
'print("Success")\n');
|
||||
this.execute_cell_then(container_index, function(index){
|
||||
|
||||
this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
|
||||
'Create container cell executed with correct output.');
|
||||
});
|
||||
|
||||
this.test.assert(this.cell_element_exists(index,
|
||||
// Wait for the widgets to actually display.
|
||||
var widget_box_selector = '.widget-area .widget-subarea .widget-box';
|
||||
var widget_box_button_selector = '.widget-area .widget-subarea .widget-box button';
|
||||
this.wait_for_element(container_index, widget_box_selector);
|
||||
this.wait_for_element(container_index, widget_box_button_selector);
|
||||
|
||||
// Continue with the tests.
|
||||
this.then(function() {
|
||||
this.test.assert(this.cell_element_exists(container_index,
|
||||
'.widget-area .widget-subarea'),
|
||||
'Widget subarea exists.');
|
||||
|
||||
this.test.assert(this.cell_element_exists(index,
|
||||
'.widget-area .widget-subarea .widget-box'),
|
||||
this.test.assert(this.cell_element_exists(container_index,
|
||||
widget_box_selector),
|
||||
'Widget container exists.');
|
||||
|
||||
this.test.assert(this.cell_element_exists(index,
|
||||
this.test.assert(this.cell_element_exists(container_index,
|
||||
'.widget-area .widget-subarea .my-test-class'),
|
||||
'_dom_classes works.');
|
||||
|
||||
this.test.assert(this.cell_element_exists(index,
|
||||
'.widget-area .widget-subarea .my-test-class button'),
|
||||
this.test.assert(this.cell_element_exists(container_index,
|
||||
widget_box_button_selector),
|
||||
'Container parent/child relationship works.');
|
||||
});
|
||||
|
||||
@ -61,20 +67,26 @@ casper.notebook_test(function () {
|
||||
'_dom_classes can be used to remove a class.');
|
||||
});
|
||||
|
||||
index = this.append_cell(
|
||||
var boxalone_index = this.append_cell(
|
||||
'display(button)\n'+
|
||||
'print("Success")\n');
|
||||
this.execute_cell_then(index, function(index){
|
||||
|
||||
this.execute_cell_then(boxalone_index, function(index){
|
||||
this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
|
||||
'Display container child executed with correct output.');
|
||||
});
|
||||
|
||||
this.test.assert(! this.cell_element_exists(index,
|
||||
'.widget-area .widget-subarea .widget-box'),
|
||||
// Wait for the widget to actually display.
|
||||
var widget_button_selector = '.widget-area .widget-subarea button';
|
||||
this.wait_for_element(boxalone_index, widget_button_selector);
|
||||
|
||||
// Continue with the tests.
|
||||
this.then(function() {
|
||||
this.test.assert(! this.cell_element_exists(boxalone_index,
|
||||
widget_box_selector),
|
||||
'Parent container not displayed.');
|
||||
|
||||
this.test.assert(this.cell_element_exists(index,
|
||||
'.widget-area .widget-subarea button'),
|
||||
this.test.assert(this.cell_element_exists(boxalone_index,
|
||||
widget_button_selector),
|
||||
'Child displayed.');
|
||||
});
|
||||
});
|
@ -1,12 +1,8 @@
|
||||
// Test widget button class
|
||||
casper.notebook_test(function () {
|
||||
index = this.append_cell(
|
||||
var button_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 button_index = this.append_cell(
|
||||
'button = widgets.Button(description="Title")\n' +
|
||||
'display(button)\n' +
|
||||
'print("Success")\n' +
|
||||
@ -14,24 +10,30 @@ casper.notebook_test(function () {
|
||||
' display("Clicked")\n' +
|
||||
'button.on_click(handle_click)');
|
||||
this.execute_cell_then(button_index, function(index){
|
||||
|
||||
this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
|
||||
'Create button cell executed with correct output.');
|
||||
});
|
||||
|
||||
this.test.assert(this.cell_element_exists(index,
|
||||
// Wait for the widgets to actually display.
|
||||
var widget_button_selector = '.widget-area .widget-subarea button';
|
||||
this.wait_for_element(button_index, widget_button_selector);
|
||||
|
||||
// Continue with the tests.
|
||||
this.then(function() {
|
||||
this.test.assert(this.cell_element_exists(button_index,
|
||||
'.widget-area .widget-subarea'),
|
||||
'Widget subarea exists.');
|
||||
|
||||
this.test.assert(this.cell_element_exists(index,
|
||||
'.widget-area .widget-subarea button'),
|
||||
this.test.assert(this.cell_element_exists(button_index,
|
||||
widget_button_selector),
|
||||
'Widget button exists.');
|
||||
|
||||
this.test.assert(this.cell_element_function(index,
|
||||
'.widget-area .widget-subarea button', 'html')=='Title',
|
||||
this.test.assert(this.cell_element_function(button_index,
|
||||
widget_button_selector, 'html')=='Title',
|
||||
'Set button description.');
|
||||
|
||||
this.cell_element_function(index,
|
||||
'.widget-area .widget-subarea button', 'click');
|
||||
this.cell_element_function(button_index,
|
||||
widget_button_selector, 'click');
|
||||
});
|
||||
|
||||
this.wait_for_output(button_index, 1);
|
||||
|
@ -1,30 +1,34 @@
|
||||
// Test widget float 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 float_text = {};
|
||||
float_text.query = '.widget-area .widget-subarea .my-second-float-text input';
|
||||
float_text.index = this.append_cell(
|
||||
'from IPython.html import widgets\n' +
|
||||
'from IPython.display import display, clear_output\n' +
|
||||
'float_widget = widgets.FloatText()\n' +
|
||||
'display(float_widget)\n' +
|
||||
'float_widget._dom_classes = ["my-second-float-text"]\n' +
|
||||
'print(float_widget.model_id)\n');
|
||||
this.execute_cell_then(float_text.index, function(index){
|
||||
float_text.model_id = this.get_output_cell(index).text.trim();
|
||||
|
||||
this.test.assert(this.cell_element_exists(index,
|
||||
});
|
||||
|
||||
// Wait for the widget to actually display.
|
||||
this.wait_for_element(float_text.index, float_text.query);
|
||||
|
||||
// Continue with the tests
|
||||
this.then(function(){
|
||||
this.test.assert(this.cell_element_exists(float_text.index,
|
||||
'.widget-area .widget-subarea'),
|
||||
'Widget subarea exists.');
|
||||
|
||||
this.test.assert(this.cell_element_exists(index, float_text.query),
|
||||
this.test.assert(this.cell_element_exists(float_text.index, float_text.query),
|
||||
'Widget float textbox exists.');
|
||||
|
||||
this.cell_element_function(float_text.index, float_text.query, 'val', ['']);
|
||||
console.log('send keys');
|
||||
this.sendKeys(float_text.query, '1.05');
|
||||
console.log('send keys done');
|
||||
});
|
||||
|
||||
this.wait_for_widget(float_text);
|
||||
@ -64,18 +68,23 @@ casper.notebook_test(function () {
|
||||
'[display(floatrange[i]) for i in range(2)]\n' +
|
||||
'print("Success")\n');
|
||||
this.execute_cell_then(slider.index, function(index){
|
||||
|
||||
this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
|
||||
'Create float range cell executed with correct output.');
|
||||
});
|
||||
|
||||
this.test.assert(this.cell_element_exists(index,
|
||||
// Wait for the widgets to actually display.
|
||||
this.wait_for_element(slider.index, slider.query);
|
||||
this.wait_for_element(slider.index, float_text_query);
|
||||
|
||||
this.then(function(){
|
||||
this.test.assert(this.cell_element_exists(slider.index,
|
||||
'.widget-area .widget-subarea'),
|
||||
'Widget subarea exists.');
|
||||
|
||||
this.test.assert(this.cell_element_exists(index, slider.query),
|
||||
this.test.assert(this.cell_element_exists(slider.index, slider.query),
|
||||
'Widget slider exists.');
|
||||
|
||||
this.test.assert(this.cell_element_exists(index, float_text_query),
|
||||
this.test.assert(this.cell_element_exists(slider.index, float_text_query),
|
||||
'Widget float textbox exists.');
|
||||
});
|
||||
|
||||
|
@ -26,19 +26,23 @@ casper.notebook_test(function () {
|
||||
'display(image)\n' +
|
||||
'print("Success")\n');
|
||||
this.execute_cell_then(image_index, function(index){
|
||||
|
||||
this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
|
||||
'Create image executed with correct output.');
|
||||
});
|
||||
|
||||
this.test.assert(this.cell_element_exists(index,
|
||||
// Wait for the widget to actually display.
|
||||
var img_selector = '.widget-area .widget-subarea img';
|
||||
this.wait_for_element(image_index, img_selector);
|
||||
|
||||
this.then(function(){
|
||||
this.test.assert(this.cell_element_exists(image_index,
|
||||
'.widget-area .widget-subarea'),
|
||||
'Widget subarea exists.');
|
||||
|
||||
var img_sel = '.widget-area .widget-subarea img';
|
||||
this.test.assert(this.cell_element_exists(index, img_sel), 'Image exists.');
|
||||
this.test.assert(this.cell_element_exists(image_index, img_selector), 'Image exists.');
|
||||
|
||||
// Verify that the image's base64 data has made it into the DOM.
|
||||
var img_src = this.cell_element_function(image_index, img_sel, 'attr', ['src']);
|
||||
var img_src = this.cell_element_function(image_index, img_selector, 'attr', ['src']);
|
||||
this.test.assert(img_src.indexOf(test_jpg) > -1, 'Image src data exists.');
|
||||
});
|
||||
});
|
@ -1,26 +1,28 @@
|
||||
// Test widget int 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 int_text = {};
|
||||
int_text.query = '.widget-area .widget-subarea .my-second-int-text input';
|
||||
int_text.index = this.append_cell(
|
||||
'from IPython.html import widgets\n' +
|
||||
'from IPython.display import display, clear_output\n' +
|
||||
'int_widget = widgets.IntText()\n' +
|
||||
'display(int_widget)\n' +
|
||||
'int_widget._dom_classes = ["my-second-int-text"]\n' +
|
||||
'print(int_widget.model_id)\n');
|
||||
this.execute_cell_then(int_text.index, function(index){
|
||||
int_text.model_id = this.get_output_cell(index).text.trim();
|
||||
|
||||
this.test.assert(this.cell_element_exists(index,
|
||||
});
|
||||
|
||||
// Wait for the widget to actually display.
|
||||
this.wait_for_element(int_text.index, int_text.query);
|
||||
|
||||
// Continue with the tests.
|
||||
this.then(function() {
|
||||
this.test.assert(this.cell_element_exists(int_text.index,
|
||||
'.widget-area .widget-subarea'),
|
||||
'Widget subarea exists.');
|
||||
|
||||
this.test.assert(this.cell_element_exists(index, int_text.query),
|
||||
this.test.assert(this.cell_element_exists(int_text.index, int_text.query),
|
||||
'Widget int textbox exists.');
|
||||
|
||||
this.cell_element_function(int_text.index, int_text.query, 'val', ['']);
|
||||
@ -54,13 +56,6 @@ casper.notebook_test(function () {
|
||||
this.test.assertEquals(this.get_output_cell(index).text, '12\n',
|
||||
'Invald int textbox value caught and filtered.');
|
||||
});
|
||||
|
||||
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 slider_query = '.widget-area .widget-subarea .slider';
|
||||
var int_text2 = {};
|
||||
@ -73,15 +68,22 @@ casper.notebook_test(function () {
|
||||
'print(intrange[0].model_id)\n');
|
||||
this.execute_cell_then(int_text2.index, function(index){
|
||||
int_text2.model_id = this.get_output_cell(index).text.trim();
|
||||
});
|
||||
|
||||
this.test.assert(this.cell_element_exists(index,
|
||||
// Wait for the widgets to actually display.
|
||||
this.wait_for_element(int_text2.index, int_text2.query);
|
||||
this.wait_for_element(int_text2.index, slider_query);
|
||||
|
||||
// Continue with the tests.
|
||||
this.then(function(){
|
||||
this.test.assert(this.cell_element_exists(int_text2.index,
|
||||
'.widget-area .widget-subarea'),
|
||||
'Widget subarea exists.');
|
||||
|
||||
this.test.assert(this.cell_element_exists(index, slider_query),
|
||||
this.test.assert(this.cell_element_exists(int_text2.index, slider_query),
|
||||
'Widget slider exists.');
|
||||
|
||||
this.test.assert(this.cell_element_exists(index, int_text2.query),
|
||||
this.test.assert(this.cell_element_exists(int_text2.index, int_text2.query),
|
||||
'Widget int textbox exists.');
|
||||
});
|
||||
|
||||
|
@ -58,21 +58,30 @@ casper.notebook_test(function () {
|
||||
this.execute_cell_then(selection_index, function(index){
|
||||
this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
|
||||
'Create selection cell executed with correct output.');
|
||||
});
|
||||
|
||||
this.test.assert(this.cell_element_exists(index,
|
||||
// Wait for the widgets to actually display.
|
||||
this.wait_for_element(selection_index, combo_selector);
|
||||
this.wait_for_element(selection_index, multibtn_selector);
|
||||
this.wait_for_element(selection_index, radio_selector);
|
||||
this.wait_for_element(selection_index, list_selector);
|
||||
|
||||
// Continue with the tests.
|
||||
this.then(function() {
|
||||
this.test.assert(this.cell_element_exists(selection_index,
|
||||
'.widget-area .widget-subarea'),
|
||||
'Widget subarea exists.');
|
||||
|
||||
this.test.assert(this.cell_element_exists(index, combo_selector),
|
||||
this.test.assert(this.cell_element_exists(selection_index, combo_selector),
|
||||
'Widget combobox exists.');
|
||||
|
||||
this.test.assert(this.cell_element_exists(index, multibtn_selector),
|
||||
this.test.assert(this.cell_element_exists(selection_index, multibtn_selector),
|
||||
'Widget multibutton exists.');
|
||||
|
||||
this.test.assert(this.cell_element_exists(index, radio_selector),
|
||||
this.test.assert(this.cell_element_exists(selection_index, radio_selector),
|
||||
'Widget radio buttons exists.');
|
||||
|
||||
this.test.assert(this.cell_element_exists(index, list_selector),
|
||||
this.test.assert(this.cell_element_exists(selection_index, list_selector),
|
||||
'Widget list exists.');
|
||||
|
||||
// Verify that no items are selected.
|
||||
|
@ -18,20 +18,22 @@ casper.notebook_test(function () {
|
||||
'multicontainer.selected_index = 0\n' +
|
||||
'print("Success")\n');
|
||||
this.execute_cell_then(multicontainer1_index, function(index){
|
||||
|
||||
this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
|
||||
'Create multicontainer cell executed with correct output. (1)');
|
||||
});
|
||||
|
||||
this.test.assert(this.cell_element_exists(index,
|
||||
// Wait for the widget to actually display.
|
||||
this.wait_for_element(multicontainer1_index, multicontainer1_query);
|
||||
|
||||
// Continue with the tests.
|
||||
this.then(function() {
|
||||
this.test.assert(this.cell_element_exists(multicontainer1_index,
|
||||
'.widget-area .widget-subarea'),
|
||||
'Widget subarea exists.');
|
||||
|
||||
this.test.assert(this.cell_element_exists(index, multicontainer1_query),
|
||||
this.test.assert(this.cell_element_exists(multicontainer1_index, multicontainer1_query),
|
||||
'Widget tab list exists.');
|
||||
|
||||
this.test.assert(this.cell_element_exists(index, multicontainer1_query),
|
||||
'First widget tab list exists.');
|
||||
|
||||
// JQuery selector is 1 based
|
||||
this.click(multicontainer1_query + ' li:nth-child(2) a');
|
||||
});
|
||||
@ -74,23 +76,28 @@ casper.notebook_test(function () {
|
||||
'multicontainer.selected_index = 0\n' +
|
||||
'print("Success")\n');
|
||||
this.execute_cell_then(multicontainer2_index, function(index){
|
||||
|
||||
this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
|
||||
'Create multicontainer cell executed with correct output. (2)');
|
||||
});
|
||||
|
||||
this.test.assert(this.cell_element_exists(index,
|
||||
// Wait for the widget to actually display.
|
||||
this.wait_for_element(multicontainer2_index, multicontainer2_query);
|
||||
|
||||
// Continue with the tests.
|
||||
this.then(function() {
|
||||
this.test.assert(this.cell_element_exists(multicontainer2_index,
|
||||
'.widget-area .widget-subarea'),
|
||||
'Widget subarea exists.');
|
||||
|
||||
this.test.assert(this.cell_element_exists(index, multicontainer2_query),
|
||||
this.test.assert(this.cell_element_exists(multicontainer2_index, multicontainer2_query),
|
||||
'Widget accordion exists.');
|
||||
|
||||
this.test.assert(this.cell_element_exists(index, multicontainer2_query +
|
||||
this.test.assert(this.cell_element_exists(multicontainer2_index, multicontainer2_query +
|
||||
' .panel:nth-child(1) .panel-collapse'),
|
||||
'First accordion page exists.');
|
||||
|
||||
// JQuery selector is 1 based
|
||||
this.test.assert(this.cell_element_function(index, multicontainer2_query +
|
||||
this.test.assert(this.cell_element_function(multicontainer2_index, multicontainer2_query +
|
||||
' .panel.panel-default:nth-child(3) .panel-heading .accordion-toggle',
|
||||
'html')=='good', 'Accordion page title set (before display).');
|
||||
|
||||
|
@ -1,12 +1,8 @@
|
||||
// Test widget string class
|
||||
casper.notebook_test(function () {
|
||||
index = this.append_cell(
|
||||
var string_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 string_index = this.append_cell(
|
||||
'string_widget = [widgets.Text(value = "xyz", placeholder = "abc"),\n' +
|
||||
' widgets.Textarea(value = "xyz", placeholder = "def"),\n' +
|
||||
' widgets.HTML(value = "xyz"),\n' +
|
||||
@ -14,40 +10,50 @@ casper.notebook_test(function () {
|
||||
'[display(widget) for widget in string_widget]\n'+
|
||||
'print("Success")');
|
||||
this.execute_cell_then(string_index, function(index){
|
||||
|
||||
this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
|
||||
'Create string widget cell executed with correct output.');
|
||||
});
|
||||
|
||||
this.test.assert(this.cell_element_exists(index,
|
||||
// Wait for the widget to actually display.
|
||||
var textbox_selector = '.widget-area .widget-subarea .widget-hbox input[type=text]';
|
||||
var textarea_selector = '.widget-area .widget-subarea .widget-hbox textarea';
|
||||
var latex_selector = '.widget-area .widget-subarea div span.MathJax_Preview';
|
||||
this.wait_for_element(string_index, textbox_selector);
|
||||
this.wait_for_element(string_index, textarea_selector);
|
||||
this.wait_for_element(string_index, latex_selector);
|
||||
|
||||
// Continue with the tests.
|
||||
this.then(function(){
|
||||
this.test.assert(this.cell_element_exists(string_index,
|
||||
'.widget-area .widget-subarea'),
|
||||
'Widget subarea exists.');
|
||||
|
||||
this.test.assert(this.cell_element_exists(index,
|
||||
'.widget-area .widget-subarea .widget-hbox input[type=text]'),
|
||||
this.test.assert(this.cell_element_exists(string_index,
|
||||
textbox_selector),
|
||||
'Textbox exists.');
|
||||
|
||||
this.test.assert(this.cell_element_exists(index,
|
||||
'.widget-area .widget-subarea .widget-hbox textarea'),
|
||||
this.test.assert(this.cell_element_exists(string_index,
|
||||
textarea_selector),
|
||||
'Textarea exists.');
|
||||
|
||||
this.test.assert(this.cell_element_function(index,
|
||||
'.widget-area .widget-subarea .widget-hbox textarea', 'val')=='xyz',
|
||||
this.test.assert(this.cell_element_function(string_index,
|
||||
textarea_selector, 'val')=='xyz',
|
||||
'Python set textarea value.');
|
||||
|
||||
this.test.assert(this.cell_element_function(index,
|
||||
'.widget-area .widget-subarea .widget-hbox input[type=text]', 'val')=='xyz',
|
||||
this.test.assert(this.cell_element_function(string_index,
|
||||
textbox_selector, 'val')=='xyz',
|
||||
'Python set textbox value.');
|
||||
|
||||
this.test.assert(this.cell_element_exists(string_index,
|
||||
'.widget-area .widget-subarea div span.MathJax_Preview'),
|
||||
latex_selector),
|
||||
'MathJax parsed the LaTeX successfully.');
|
||||
|
||||
this.test.assert(this.cell_element_function(index,
|
||||
'.widget-area .widget-subarea .widget-hbox textarea', 'attr', ['placeholder'])=='def',
|
||||
this.test.assert(this.cell_element_function(string_index,
|
||||
textarea_selector, 'attr', ['placeholder'])=='def',
|
||||
'Python set textarea placeholder.');
|
||||
|
||||
this.test.assert(this.cell_element_function(index,
|
||||
'.widget-area .widget-subarea .widget-hbox input[type=text]', 'attr', ['placeholder'])=='abc',
|
||||
this.test.assert(this.cell_element_function(string_index,
|
||||
textbox_selector, 'attr', ['placeholder'])=='abc',
|
||||
'Python set textbox placehoder.');
|
||||
});
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user