Show:
                            YUI.add('aui-tabs-data-editor-tests', function(Y) {
                                var suite = new Y.Test.Suite('aui-tabs-data-editor');
                            
                                suite.add(new Y.Test.Case({
                                    name: 'AUI Tabs Data Editor Unit Tests',
                            
                                    tearDown: function() {
                                        if (this._editor) {
                                            this._editor.destroy();
                                        }
                                    },
                            
                                    /**
                                     * Creates a `Y.TabsDataEditor` using the given configuration object,
                                     * or a default configuration if none is given.
                                     *
                                     * @method _createEditor
                                     * @param {Object} config
                                     * @return {Y.TabsDataEditor}
                                     * @protected
                                     */
                                    _createEditor: function(config) {
                                        Y.one('body').append(
                                            '<div class="weaponsPanel">Out of weapons</div>' +
                                            '<div class="armorPanel">Out of armor</div>' +
                                            '<div class="accessoriesPanel">Out of accessories</div>'
                                        );
                            
                                        var editor = new Y.TabsDataEditor(Y.merge({
                                            editedValue: 'inventory-armor',
                                            originalValue: 'inventory-armor',
                                            tabs: [
                                                {
                                                    label: 'Weapons',
                                                    panelNode: Y.one('.weaponsPanel'),
                                                    value: 'inventory-weapon'
                                                },
                                                {
                                                    label: 'Armor',
                                                    panelNode: Y.one('.armorPanel'),
                                                    value: 'inventory-armor'
                                                },
                                                {
                                                    label: 'Accessories',
                                                    panelNode: Y.one('.accessoriesPanel'),
                                                    value: 'inventory-accessory'
                                                }
                                            ]
                                        }, config));
                                        Y.one('#container').append(editor.get('node'));
                            
                                        return editor;
                                    },
                            
                                    'should select the right initial tab': function() {
                                        var selectedTab;
                            
                                        this._editor = this._createEditor();
                            
                                        selectedTab = this._editor.get('node').one('.tab-selected');
                                        Y.Assert.areEqual('Armor', selectedTab.get('text'));
                                    },
                            
                                    'should change the selected tab by clicking another one': function() {
                                        var selectedTab;
                            
                                        this._editor = this._createEditor();
                                        this._editor.get('node').one('.tab').simulate('click');
                            
                                        selectedTab = this._editor.get('node').one('.tab-selected');
                                        Y.Assert.areEqual('Weapons', selectedTab.get('text'));
                                    },
                            
                                    'should change the selected tab when editedValue is updated': function() {
                                        var selectedTab;
                            
                                        this._editor = this._createEditor();
                                        this._editor.set('editedValue', 'inventory-weapon');
                            
                                        selectedTab = this._editor.get('node').one('.tab-selected');
                                        Y.Assert.areEqual('Weapons', selectedTab.get('text'));
                                    },
                            
                                    'should ignore request for selecting invalid tab': function() {
                                        var selectedTab;
                            
                                        this._editor = this._createEditor();
                                        this._editor.set('editedValue', 'inventory-junk');
                            
                                        selectedTab = this._editor.get('node').one('.tab-selected');
                                        Y.Assert.areEqual('Armor', selectedTab.get('text'));
                                    },
                            
                                    'should show the right panel for each tab': function() {
                                        var weaponsPanel,
                                            armorPanel;
                            
                                        this._editor = this._createEditor();
                            
                                        weaponsPanel = Y.one('.weaponsPanel');
                                        armorPanel = Y.one('.armorPanel');
                            
                                        Y.Assert.areEqual('none', weaponsPanel.getStyle('display'));
                                        Y.Assert.areNotEqual('none', armorPanel.getStyle('display'));
                            
                                        this._editor.set('editedValue', 'inventory-weapon');
                                        Y.Assert.areNotEqual('none', weaponsPanel.getStyle('display'));
                                        Y.Assert.areEqual('none', armorPanel.getStyle('display'));
                                    }
                                }));
                            
                                Y.Test.Runner.add(suite);
                            },'', {requires: ['aui-tabs-data-editor', 'node-event-simulate', 'test']});