it('should set `null` if the widget is not in the panel', () => { let panel = new TabPanel(); panel.addWidget(new Widget()); panel.addWidget(new Widget()); panel.currentWidget = new Widget(); expect(panel.currentWidget).to.equal(null); });
it('should move an existing widget', () => { let panel = new TabPanel(); let widgets = [new Widget(), new Widget(), new Widget()]; each(widgets, w => { panel.addWidget(w); }); panel.insertWidget(0, widgets[2]); expect(panel.widgets[0]).to.equal(widgets[2]); });
it('should set the index of the currently selected tab', () => { let panel = new TabPanel(); panel.addWidget(new Widget()); panel.addWidget(new Widget()); panel.currentIndex = 1; expect(panel.currentIndex).to.equal(1); });
it('should dispose of the resources held by the widget', () => { let panel = new TabPanel(); panel.addWidget(new Widget()); panel.dispose(); expect(panel.isDisposed).to.equal(true); panel.dispose(); expect(panel.isDisposed).to.equal(true); });
it('should set the currently selected tab', () => { let panel = new TabPanel(); panel.addWidget(new Widget()); let widget = new Widget(); panel.addWidget(widget); panel.currentWidget = widget; expect(panel.currentWidget).to.equal(widget); });
it('should add a widget to the end of the tab panel', () => { let panel = new TabPanel(); let widgets = [new Widget(), new Widget(), new Widget()]; each(widgets, w => { panel.addWidget(w); }); let widget = new Widget(); panel.addWidget(widget); expect(panel.widgets[3]).to.equal(widget); expect(panel.tabBar.titles[2]).to.equal(widgets[2].title); });
it('should insert a widget into the tab panel at a specified index', () => { let panel = new TabPanel(); let widgets = [new Widget(), new Widget(), new Widget()]; each(widgets, w => { panel.addWidget(w); }); let widget = new Widget(); panel.insertWidget(1, widget); expect(panel.widgets[1]).to.equal(widget); expect(panel.tabBar.titles[1]).to.equal(widget.title); });
it('should not be emitted when another tab is inserted', () => { let panel = new TabPanel(); panel.addWidget(new Widget()); panel.addWidget(new Widget()); let called = false; panel.currentChanged.connect((sender, args) => { called = true; }); panel.insertWidget(0, new Widget()); expect(called).to.equal(false); });
it('should set the index to `-1` if out of range', () => { let panel = new TabPanel(); panel.addWidget(new Widget()); panel.addWidget(new Widget()); panel.currentIndex = -2; expect(panel.currentIndex).to.equal(-1); panel.currentIndex = 2; expect(panel.currentIndex).to.equal(-1); });
it('should not be emitted when another tab is removed', () => { let panel = new TabPanel(); panel.addWidget(new Widget()); panel.addWidget(new Widget()); let called = false; panel.currentIndex = 1; panel.currentChanged.connect((sender, args) => { called = true; }); panel.widgets[0].parent = null; expect(called).to.equal(false); });