widget_selectioncontainer.js
119 lines
| 5.3 KiB
| application/javascript
|
JavascriptLexer
Jonathan Frederic
|
r14464 | // Test multicontainer 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); | |||
// Test tab view | |||
var multicontainer1_query = '.widget-area .widget-subarea div div.nav-tabs'; | |||
var multicontainer1_index = this.append_cell( | |||
Jonathan Frederic
|
r17598 | 'multicontainer = widgets.Tab()\n' + | |
'page1 = widgets.Text()\n' + | |||
'page2 = widgets.Text()\n' + | |||
'page3 = widgets.Text()\n' + | |||
Jonathan Frederic
|
r14509 | 'multicontainer.children = [page1, page2, page3]\n' + | |
Jonathan Frederic
|
r14464 | 'display(multicontainer)\n' + | |
'multicontainer.selected_index = 0\n' + | |||
'print("Success")\n'); | |||
this.execute_cell_then(multicontainer1_index, function(index){ | |||
MinRK
|
r14797 | this.test.assertEquals(this.get_output_cell(index).text, 'Success\n', | |
Jonathan Frederic
|
r14464 | 'Create multicontainer cell executed with correct output. (1)'); | |
Jonathan Frederic
|
r18910 | }); | |
// Wait for the widget to actually display. | |||
this.wait_for_element(multicontainer1_index, multicontainer1_query); | |||
Jonathan Frederic
|
r14464 | ||
Jonathan Frederic
|
r18910 | // Continue with the tests. | |
this.then(function() { | |||
this.test.assert(this.cell_element_exists(multicontainer1_index, | |||
Jonathan Frederic
|
r14464 | '.widget-area .widget-subarea'), | |
'Widget subarea exists.'); | |||
Jonathan Frederic
|
r18910 | this.test.assert(this.cell_element_exists(multicontainer1_index, multicontainer1_query), | |
Jonathan Frederic
|
r14464 | 'Widget tab list exists.'); | |
// JQuery selector is 1 based | |||
MinRK
|
r14797 | this.click(multicontainer1_query + ' li:nth-child(2) a'); | |
Jonathan Frederic
|
r14464 | }); | |
Jonathan Frederic
|
r14970 | this.wait_for_idle(); | |
Jonathan Frederic
|
r14464 | ||
index = this.append_cell( | |||
'print(multicontainer.selected_index)\n' + | |||
'multicontainer.selected_index = 2'); // 0 based | |||
this.execute_cell_then(index, function(index){ | |||
MinRK
|
r14797 | this.test.assertEquals(this.get_output_cell(index).text, '1\n', // 0 based | |
Jonathan Frederic
|
r14464 | 'selected_index property updated with tab change.'); | |
// JQuery selector is 1 based | |||
this.test.assert(!this.cell_element_function(multicontainer1_index, multicontainer1_query + ' li:nth-child(1)', 'hasClass', ['active']), | |||
MinRK
|
r14797 | "Tab 1 is not selected."); | |
Jonathan Frederic
|
r14464 | this.test.assert(!this.cell_element_function(multicontainer1_index, multicontainer1_query + ' li:nth-child(2)', 'hasClass', ['active']), | |
MinRK
|
r14797 | "Tab 2 is not selected."); | |
Jonathan Frederic
|
r14464 | this.test.assert(this.cell_element_function(multicontainer1_index, multicontainer1_query + ' li:nth-child(3)', 'hasClass', ['active']), | |
MinRK
|
r14797 | "Tab 3 is selected."); | |
Jonathan Frederic
|
r14464 | }); | |
index = this.append_cell('multicontainer.set_title(1, "hello")\nprint("Success")'); // 0 based | |||
this.execute_cell_then(index, function(index){ | |||
this.test.assert(this.cell_element_function(multicontainer1_index, multicontainer1_query + | |||
' li:nth-child(2) a', 'html') == 'hello', | |||
'Tab page title set (after display).'); | |||
}); | |||
// Test accordion view | |||
Jonathan Frederic
|
r16913 | var multicontainer2_query = '.widget-area .widget-subarea .panel-group'; | |
Jonathan Frederic
|
r14464 | var multicontainer2_index = this.append_cell( | |
Jonathan Frederic
|
r17598 | 'multicontainer = widgets.Accordion()\n' + | |
'page1 = widgets.Text()\n' + | |||
'page2 = widgets.Text()\n' + | |||
'page3 = widgets.Text()\n' + | |||
Jonathan Frederic
|
r14509 | 'multicontainer.children = [page1, page2, page3]\n' + | |
Jonathan Frederic
|
r14464 | 'multicontainer.set_title(2, "good")\n' + | |
Jonathan Frederic
|
r14596 | 'display(multicontainer)\n' + | |
Jonathan Frederic
|
r14464 | 'multicontainer.selected_index = 0\n' + | |
'print("Success")\n'); | |||
this.execute_cell_then(multicontainer2_index, function(index){ | |||
MinRK
|
r14797 | this.test.assertEquals(this.get_output_cell(index).text, 'Success\n', | |
Jonathan Frederic
|
r14464 | 'Create multicontainer cell executed with correct output. (2)'); | |
Jonathan Frederic
|
r18910 | }); | |
// Wait for the widget to actually display. | |||
this.wait_for_element(multicontainer2_index, multicontainer2_query); | |||
Jonathan Frederic
|
r14464 | ||
Jonathan Frederic
|
r18910 | // Continue with the tests. | |
this.then(function() { | |||
this.test.assert(this.cell_element_exists(multicontainer2_index, | |||
Jonathan Frederic
|
r14464 | '.widget-area .widget-subarea'), | |
'Widget subarea exists.'); | |||
Jonathan Frederic
|
r18910 | this.test.assert(this.cell_element_exists(multicontainer2_index, multicontainer2_query), | |
Jonathan Frederic
|
r16914 | 'Widget accordion exists.'); | |
Jonathan Frederic
|
r14464 | ||
Jonathan Frederic
|
r18910 | this.test.assert(this.cell_element_exists(multicontainer2_index, multicontainer2_query + | |
Jonathan Frederic
|
r16914 | ' .panel:nth-child(1) .panel-collapse'), | |
'First accordion page exists.'); | |||
Jonathan Frederic
|
r14464 | ||
// JQuery selector is 1 based | |||
Jonathan Frederic
|
r18910 | this.test.assert(this.cell_element_function(multicontainer2_index, multicontainer2_query + | |
Jonathan Frederic
|
r16913 | ' .panel.panel-default:nth-child(3) .panel-heading .accordion-toggle', | |
Jonathan Frederic
|
r14464 | 'html')=='good', 'Accordion page title set (before display).'); | |
// JQuery selector is 1 based | |||
Jonathan Frederic
|
r16914 | this.click(multicontainer2_query + ' .panel:nth-child(2) .panel-heading .accordion-toggle'); | |
Jonathan Frederic
|
r14464 | }); | |
Jonathan Frederic
|
r14970 | this.wait_for_idle(); | |
Jonathan Frederic
|
r14464 | ||
index = this.append_cell('print(multicontainer.selected_index)'); // 0 based | |||
this.execute_cell_then(index, function(index){ | |||
MinRK
|
r14797 | this.test.assertEquals(this.get_output_cell(index).text, '1\n', // 0 based | |
Jonathan Frederic
|
r14464 | 'selected_index property updated with tab change.'); | |
Jonathan Frederic
|
r15976 | ||
var is_collapsed = this.evaluate(function(s){ | |||
Jonathan Frederic
|
r16914 | return $(s + ' div.panel:nth-child(2) a').hasClass('collapsed'); // 1 based | |
Jonathan Frederic
|
r15976 | }, {s: multicontainer2_query}); | |
this.test.assertEquals(is_collapsed, false, 'Was tab actually opened?'); | |||
Jonathan Frederic
|
r14464 | }); | |
}); |