diff options
Diffstat (limited to 'install/static/test/details_tests.js')
-rw-r--r-- | install/static/test/details_tests.js | 202 |
1 files changed, 153 insertions, 49 deletions
diff --git a/install/static/test/details_tests.js b/install/static/test/details_tests.js index 1a7efc10..78d63363 100644 --- a/install/static/test/details_tests.js +++ b/install/static/test/details_tests.js @@ -19,40 +19,149 @@ */ - test("Testing ipa_details_create().", function() { - var fields = [ - {name:'cn', label:'Entity Name'}, - {name:'description', label:'Description'}, - {name:'number', label:'Entity ID'} - ]; - - var sections = [ - {name:'identity', label:'Entity Details', fields:fields} - ]; - - var identity = sections[0]; - var key = 'entity'; - - var container = $("<div/>",{id: key}); - ipa_details_create(container, sections); - - same( - container[0].title, key, - "Checking container name" - ); - - var dl = container.find('dl#identity'); - ok( - dl, - "Checking section" - ); - - same( - dl[0].children.length, fields.length, - "Checking fields" - ); + var name = 'NAMENAMENAME'; + var identity = 'IDIDID'; + + var section = ipa_stanza({name:identity, label:name}). + input({name:'cn', label:'Entity Name'}). + input({name:'description', label:'Description'}). + input({name:'number', label:'Entity ID'}); + + + var details = section.fields; + var parent = $("<div/>"); + var container = $("<div title='entity'/>"); + parent.append(container); + ipa_details_section_setup(parent,container, section); + + ok(parent.find('hr').length); + + var h2= parent.find('h2'); + ok(h2.length); + ok(h2[0].innerHTML.indexOf(name) > 1,"find name in html"); + + var dl = parent.find('dl'); + ok(dl.length); + same(dl[0].children.length,3,"children tag count"); + same(dl[0].id, identity,"identity"); + same(details[0].name, dl[0].children[0].title,"name"); + var d = dl[0].children[0].innerHTML; + same(details[0].label+":",d); + same(details[2].name,dl[0].children[2].title); + d = dl[0].children[2].innerHTML; + same(details[2].label+":" ,d); + +}); + + + +test("Testing details lifecycle:setup, load, save ().", function(){ + + var setup_status_called = false; + var save_password_called= false; + var load_manager_called = false; + var load_success_called = false; + var load_failure_called = false; + var update_success_called = false; + var update_failure_called = false; + + function setup_status(){ + setup_status_called = true; + } + + function save_password(){ + save_password_called = true; + return []; + } + + function load_manager(){ + load_manager_called = true; + } + + function setup_st(){ + } + var container = $("<div/>"); + var obj_name = 'user'; + ipa_entity_set_details_definition(obj_name, [ + ipa_stanza({name:'identity', label:'Identity Details'}). + input({name:'title', label: 'Title'}). + input({name:'givenname', label:'First Name'}). + input({name:'sn', label:'Last Name'}). + input({name:'cn', label:'Full Name'}). + input({name:'displayname', label:'Dispaly Name'}). + input({name:'initials', label:'Initials'}), + ipa_stanza({name:'account', label:'Account Details'}). + input({name:'status', label:'Account Status', setup: setup_status}). + input({name:'uid', label:'Login'}). + input({name:'userpassword', label:'Password', save: save_password}). + input({name:'uidnumber', label:'UID'}). + input({name:'gidnumber', label:'GID'}). + input({name:'homedirectory', label:'homedirectory'}), + ipa_stanza({name:'contact', label:'Contact Details'}). + input({name:'mail', label:'E-mail Address'}). + input({name:'telephonenumber', label:'Numbers'}), + ipa_stanza({name:'address', label:'Mailing Address'}). + input({name:'street', label:'Address'}). + input({name:'location', label:'City'}). + input({name:'state', label:'State', setup: setup_st}). + input({name:'postalcode', label:'ZIP'}), + ipa_stanza({name:'employee', label:'Employee Information'}). + input({name:'ou', label:'Org. Unit'}). + input({name:'manager', label:'Manager', load: load_manager}), + ipa_stanza({name:'misc', label:'Misc. Information'}). + input({name:'carlicense', label:'Car License'}) + ]); + + ipa_details_create(container, ipa_entity_details_list[obj_name]); + + var contact = container.find('dl#contact.entryattrs'); + ok(contact); + var identity = container.find('dl#identity.entryattrs'); + ok(identity); + var dts= identity.find('dt'); + ok(dts); + same(6, dts.length); + same('initials',dts[5].title); + + //TODO extract into Fixture + ipa_ajax_options["async"] = false; + $.ajaxSetup(ipa_ajax_options); + ipa_json_url = './data'; + ipa_use_static_files = true; + + container.attr('id','user'); + + ok (setup_status_called , 'setup status called'); + + + ipa_details_load(container, + 'kfrog', + function(){load_success_called = true}, + function(){load_failure_called = true}) + + ok (load_success_called,'load success called'); + ok (!load_failure_called,'load failure not called'); + + + ok (load_manager_called, 'load manager called'); + + + ipa_details_load(container, + 'kfrog', + function(){load_success_called = true}, + function(){load_failure_called = true}) + + + ipa_details_update(container, + 'kfrog', + 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_password_called, 'save password called'); }); @@ -64,27 +173,22 @@ test("Testing _ipa_create_text_input().", function(){ var input = _ipa_create_text_input(name, value); ok(input,"input not null"); - same(input[0].name,name ); - same(input[0].value,value ); - same(input[0].type,"text" ); -}); + var text = input.find('input'); + ok(text); + same(text[0].name,name ); + same(text[0].value,value ); + same(text[0].type,"text" ); +}); test("Testing ipa_details_section_setup()",function(){ - var fields = [ - {name:'cn', label:'Entity Name'}, - {name:'description', label:'Description'}, - {name:'number', label:'Entity ID'} - ]; - - var section = { - name: 'IDIDID', - label: 'NAMENAMENAME', - fields: fields - }; - + var section = ipa_stanza({name: 'IDIDID', label: 'NAMENAMENAME'}). + input({name:'cn', label:'Entity Name'}). + input({name:'description', label:'Description'}). + input({name:'number', label:'Entity ID'}); + var fields = section.fields; var container = $("<div title='entity'/>"); var details = $("<div/>"); container.append(details); @@ -106,4 +210,4 @@ test("Testing ipa_details_section_setup()",function(){ same(dl[0].children[2].title, fields[2].name); same(dl[0].children[2].innerHTML, fields[2].label+":"); -});
\ No newline at end of file +}); |