##// END OF EJS Templates
Added ImageWidget tests
Jonathan Frederic -
Show More
@@ -26,7 +26,6 b' casper.notebook_test(function () {'
26 }), 'Notebook widget manager instanciated');
26 }), 'Notebook widget manager instanciated');
27 });
27 });
28
28
29
30 // Check widget mapping ////////////////////////////////////////////////////
29 // Check widget mapping ////////////////////////////////////////////////////
31 index = this.append_cell(
30 index = this.append_cell(
32 'names = [name for name in dir(widgets)' +
31 'names = [name for name in dir(widgets)' +
@@ -165,6 +164,7 b' casper.notebook_test(function () {'
165 });
164 });
166
165
167 // Test button widget //////////////////////////////////////////////////////
166 // Test button widget //////////////////////////////////////////////////////
167
168 var button_index = this.append_cell(
168 var button_index = this.append_cell(
169 'button = widgets.ButtonWidget(description="Title")\n' +
169 'button = widgets.ButtonWidget(description="Title")\n' +
170 'display(button)\n'+
170 'display(button)\n'+
@@ -418,7 +418,63 b' casper.notebook_test(function () {'
418 index = this.append_cell('print(float_widget.value)\n');
418 index = this.append_cell('print(float_widget.value)\n');
419 this.execute_cell_then(index, function(index){
419 this.execute_cell_then(index, function(index){
420 this.test.assert(this.get_output_cell(index).text == '12.0\n',
420 this.test.assert(this.get_output_cell(index).text == '12.0\n',
421 'Float textbox value set.');
421 'Invald float textbox value caught and filtered.');
422 });
423
424 // Test image widget ///////////////////////////////////////////////////////
425
426 // Get the temporary directory that the test server is running in.
427 var cwd = '';
428 index = this.append_cell('!echo $(pwd)');
429 this.execute_cell_then(index, function(index){
430 cwd = this.get_output_cell(index).text.trim();
431 });
432
433 test_jpg = '/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCwsMGJGSjpQdGZ6eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40NF7GhHCExsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/wgARCAABAAEDAREAAhEBAxEB/8QAFAABAAAAAAAAAAAAAAAAAAAAA//EABUBAQEAAAAAAAAAAAAAAAAAAAME/9oADAMBAAIQAxAAAAECv//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAQUCf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMBAT8Bf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIBAT8Bf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEABj8Cf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAT8hf//aAAwDAQACAAMAAAAQn//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMBAT8Qf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIBAT8Qf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAT8Qf//Z';
434 test_results = '/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAyADIDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDi6KKK+ZP3EKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//Z';
435
436 var image_index = this.append_cell(
437 'import base64\n' +
438 'data = base64.b64decode("' + test_jpg + '")\n' +
439 'image = widgets.ImageWidget()\n' +
440 'image.image_format = "jpeg"\n' +
441 'image.value = data\n' +
442 'image.width = "50px"\n' +
443 'image.height = "50px"\n' +
444 // Set css that will make the image render within the PhantomJS visible
445 // window. If we don't do this, the captured image will be black.
446 'image.set_css({"background": "blue", "z-index": "9999", "position": "fixed", "top": "0px", "left": "0px"})\n' +
447 'display(image)\n' +
448 'image.add_class("my-test-image")\n' +
449 'print("Success")\n');
450 this.execute_cell_then(image_index, function(index){
451
452 this.test.assert(this.get_output_cell(index).text == 'Success\n',
453 'Create image executed with correct output.');
454
455 this.test.assert(this.cell_element_exists(index,
456 '.widget-area .widget-subarea'),
457 'Widget subarea exists.');
458
459 this.test.assert(this.cell_element_exists(index,
460 '.widget-area .widget-subarea img'),
461 'Image exists.');
462
463 // Capture a screenshot of the img element as a base64 string.
464 var fs = require('fs');
465 capture_filename = cwd + fs.separator + 'captured.jpg';
466 this.captureSelector(capture_filename, '.my-test-image');
467 var stream = fs.open(capture_filename, 'rb');
468 var captured = btoa(stream.read());
469 stream.close()
470 fs.remove(capture_filename);
471
472 // Uncomment line below to output captured image data to a text file.
473 // fs.write('./captured.txt', captured, 'w');
474
475 this.test.assert(test_results==captured, "Red image data displayed correctly.");
422 });
476 });
477
423 });
478 });
424
479
480
General Comments 0
You need to be logged in to leave comments. Login now