##// END OF EJS Templates
Add the unlink method to javascript links to maintain compatibility with traitlet links
Add the unlink method to javascript links to maintain compatibility with traitlet links

File last commit:

r18006:68b38820
r19390:e461f122
Show More
notifications.js
116 lines | 4.5 KiB | application/javascript | JavascriptLexer
Jessica B. Hamrick
Add tests for notification area and widgets
r18006 // Test the notification area and widgets
casper.notebook_test(function () {
var that = this;
var widget = function (name) {
return that.evaluate(function (name) {
return (IPython.notification_area.widget(name) !== undefined);
}, name);
};
var get_widget = function (name) {
return that.evaluate(function (name) {
return (IPython.notification_area.get_widget(name) !== undefined);
}, name);
};
var new_notification_widget = function (name) {
return that.evaluate(function (name) {
return (IPython.notification_area.new_notification_widget(name) !== undefined);
}, name);
};
var widget_has_class = function (name, class_name) {
return that.evaluate(function (name, class_name) {
var w = IPython.notification_area.get_widget(name);
return w.element.hasClass(class_name);
}, name, class_name);
};
var widget_message = function (name) {
return that.evaluate(function (name) {
var w = IPython.notification_area.get_widget(name);
return w.get_message();
}, name);
};
this.then(function () {
// check that existing widgets are there
this.test.assert(get_widget('kernel') && widget('kernel'), 'The kernel notification widget exists');
this.test.assert(get_widget('notebook') && widget('notbook'), 'The notebook notification widget exists');
// try getting a non-existant widget
this.test.assertRaises(get_widget, 'foo', 'get_widget: error is thrown');
// try creating a non-existant widget
this.test.assert(widget('bar'), 'widget: new widget is created');
// try creating a widget that already exists
this.test.assertRaises(new_notification_widget, 'kernel', 'new_notification_widget: error is thrown');
});
// test creating 'info' messages
this.thenEvaluate(function () {
var tnw = IPython.notification_area.widget('test');
tnw.info('test info');
});
this.waitUntilVisible('#notification_test', function () {
this.test.assert(widget_has_class('test', 'info'), 'info: class is correct');
this.test.assertEquals(widget_message('test'), 'test info', 'info: message is correct');
});
// test creating 'warning' messages
this.thenEvaluate(function () {
var tnw = IPython.notification_area.widget('test');
tnw.warning('test warning');
});
this.waitUntilVisible('#notification_test', function () {
this.test.assert(widget_has_class('test', 'warning'), 'warning: class is correct');
this.test.assertEquals(widget_message('test'), 'test warning', 'warning: message is correct');
});
// test creating 'danger' messages
this.thenEvaluate(function () {
var tnw = IPython.notification_area.widget('test');
tnw.danger('test danger');
});
this.waitUntilVisible('#notification_test', function () {
this.test.assert(widget_has_class('test', 'danger'), 'danger: class is correct');
this.test.assertEquals(widget_message('test'), 'test danger', 'danger: message is correct');
});
// test message timeout
this.thenEvaluate(function () {
var tnw = IPython.notification_area.widget('test');
tnw.set_message('test timeout', 1000);
});
this.waitUntilVisible('#notification_test', function () {
this.test.assertEquals(widget_message('test'), 'test timeout', 'timeout: message is correct');
});
this.waitWhileVisible('#notification_test', function () {
this.test.assertEquals(widget_message('test'), '', 'timeout: message was cleared');
});
// test click callback
this.thenEvaluate(function () {
var tnw = IPython.notification_area.widget('test');
tnw._clicked = false;
tnw.set_message('test click', undefined, function () {
tnw._clicked = true;
return true;
});
});
this.waitUntilVisible('#notification_test', function () {
this.test.assertEquals(widget_message('test'), 'test click', 'callback: message is correct');
this.click('#notification_test');
});
this.waitFor(function () {
return this.evaluate(function () {
return IPython.notification_area.widget('test')._clicked;
});
}, function () {
this.waitWhileVisible('#notification_test', function () {
this.test.assertEquals(widget_message('test'), '', 'callback: message was cleared');
});
});
});