12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- // Copyright (c) Jupyter Development Team.
- // Distributed under the terms of the Modified BSD License.
- import { MainAreaWidget, Toolbar } from '@jupyterlab/apputils';
- import { MessageLoop } from '@lumino/messaging';
- import { BoxPanel, Widget } from '@lumino/widgets';
- describe('@jupyterlab/apputils', () => {
- describe('MainAreaWidget', () => {
- describe('#constructor()', () => {
- it('should create a new main area widget', () => {
- const content = new Widget();
- const widget = new MainAreaWidget({ content });
- expect(widget).toBeInstanceOf(MainAreaWidget);
- expect(widget.hasClass('jp-MainAreaWidget')).toBe(true);
- expect(widget.title.closable).toBe(true);
- });
- it('should allow toolbar options', () => {
- const content = new Widget();
- const toolbar = new Toolbar();
- const widget = new MainAreaWidget({ content, toolbar });
- expect(widget.hasClass('jp-MainAreaWidget')).toBe(true);
- expect(widget.toolbar).toBe(toolbar);
- });
- });
- describe('contentHeader', () => {
- it('should exist and have correct type', () => {
- const content = new Widget();
- const widget = new MainAreaWidget({ content });
- expect(widget.contentHeader).toBeInstanceOf(BoxPanel);
- });
- });
- describe('#onActivateRequest()', () => {
- it('should focus on activation', () => {
- const content = new Widget();
- const widget = new MainAreaWidget({ content });
- Widget.attach(widget, document.body);
- MessageLoop.sendMessage(widget, Widget.Msg.ActivateRequest);
- expect(document.activeElement).toBe(widget.content.node);
- });
- });
- describe('#onCloseRequest()', () => {
- it('should dispose on close', () => {
- const content = new Widget();
- const widget = new MainAreaWidget({ content });
- Widget.attach(widget, document.body);
- MessageLoop.sendMessage(widget, Widget.Msg.CloseRequest);
- expect(widget.isDisposed).toBe(true);
- });
- });
- describe('#onUpdateRequest()', () => {
- it('should propagate to the content', () => {
- let updated: boolean;
- const content = new (class extends Widget {
- onUpdateRequest() {
- updated = true;
- }
- })();
- const widget = new MainAreaWidget({ content });
- Widget.attach(widget, document.body);
- updated = false;
- MessageLoop.sendMessage(widget, Widget.Msg.UpdateRequest);
- expect(updated).toBe(true);
- });
- });
- describe('title', () => {
- it('should proxy from content to main', () => {
- const content = new Widget();
- const widget = new MainAreaWidget({ content });
- content.title.label = 'foo';
- expect(widget.title.label).toBe('foo');
- });
- it('should proxy from main to content', () => {
- const content = new Widget();
- const widget = new MainAreaWidget({ content });
- widget.title.label = 'foo';
- expect(content.title.label).toBe('foo');
- });
- });
- describe('dispose', () => {
- it('should dispose of main', () => {
- const content = new Widget();
- const widget = new MainAreaWidget({ content });
- content.dispose();
- expect(widget.isDisposed).toBe(true);
- });
- });
- });
- });
|