summaryrefslogtreecommitdiffstats
path: root/install/static/test/details_tests.js
diff options
context:
space:
mode:
Diffstat (limited to 'install/static/test/details_tests.js')
-rw-r--r--install/static/test/details_tests.js202
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
+});