/* Authors: * Adam Young * * Copyright (C) 2010 Red Hat * see file 'COPYING' for use and warranty information * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ var details_container; module('details', { setup: function() { IPA.ajax_options.async = false; IPA.init( "data", true, function(data, text_status, xhr) { }, function(xhr, text_status, error_thrown) { ok(false, "ipa_init() failed: "+error_thrown); } ); IPA.nav = {}; IPA.nav.get_state = function(key){ return $.bbq.getState(key); }; details_container = $('
').appendTo(document.body); var obj_name = 'user'; IPA.entity_factories.user= function(){ return IPA.entity({name:obj_name, metadata:IPA.metadata.objects.user}); }; }, teardown: function() { details_container.remove(); } }); test("Testing IPA.details_section.create().", function() { var section = IPA.details_list_section({ entity: IPA.get_entity('user'), name:'IDIDID', label:'NAMENAMENAME'}). text({name:'cn'}). text({name:'uid'}). text({name:'mail'}); section.entity_name = 'user'; var fields = section.fields.values; var container = $("
"); section.create(container); var dl = $('dl', container); same( dl.length, 1, 'Checking dl tag' ); same( dl.attr('id'), section.name, 'Checking section name' ); var dts = $('dt', dl); same( dts.length, fields.length, // each field generates dt & dd 'Checking number of children' ); for (var i=0; i', { name: 'user', title: 'User', 'class': 'entity' }).appendTo(details_container); entity.create(entity_container); var facet = entity.get_facet('details'); var facet_container = $('
', { name: facet.name, 'class': 'facet' }); facet.create(facet_container); facet.load(result); var contact = facet_container.find('dl#contact.entryattrs'); ok( contact, 'dl tag for contact is created' ); var identity = facet_container.find('dl#identity.entryattrs'); ok( identity, 'dl tag for identity is created' ); var dts = identity.find('dt'); same( dts.length, 6, 'Checking dt tags for identity' ); facet_container.attr('id','user'); ok (load_called, 'load manager called'); var section = facet.sections.get('contact'); var field = section.fields.get('test'); field.set_dirty(true); facet.update( function(){update_success_called = true}, function(){update_failure_called = true} ); ok (update_success_called,'update success called'); ok (!update_failure_called,'update failure not called'); ok (save_called, 'save called'); }); test("Testing IPA.details_section_create again()",function(){ var section = IPA.details_list_section({ name: 'IDIDID', label: 'NAMENAMENAME',entity: IPA.get_entity('user'),}). text({name:'cn', label:'Entity Name'}). text({name:'description', label:'Description'}). text({name:'number', label:'Entity ID'}); var fields = section.fields.values; var container = $("
"); var details = $("
"); container.append(details); var result = {}; section.create(container); section.load(result); var dl = $('dl', container); ok( dl.length, 'dl is created' ); same( dl[0].id, section.name, 'checking section name' ); var dt = $('dt', dl); same( dt.length, 3, '3 dt' ); same( dt[0].innerHTML, fields[0].label+":", 'inner HTML matches label' ); var dd = $('dd', dl); same( dd.length, 3, '3 dd' ); var field_container = $('.details-field[name="cn"]', dd[0]); same( field_container.length, 1, '1 field container' ); });