summaryrefslogtreecommitdiffstats
path: root/install/ui/test/details_tests.js
diff options
context:
space:
mode:
authorAdam Young <ayoung@redhat.com>2011-01-19 12:26:14 -0500
committerEndi Sukma Dewata <edewata@people01.fedoraproject.org>2011-01-20 14:12:47 +0000
commitb9ad279ad2d8d93dd501115a028783cf8fe7fcbd (patch)
tree3c3bd271231ff635278b1cf88bfbd79d792de23d /install/ui/test/details_tests.js
parent835436df1549578932705f5722bc78ec985c2f69 (diff)
downloadfreeipa-b9ad279ad2d8d93dd501115a028783cf8fe7fcbd.tar.gz
freeipa-b9ad279ad2d8d93dd501115a028783cf8fe7fcbd.tar.xz
freeipa-b9ad279ad2d8d93dd501115a028783cf8fe7fcbd.zip
rename static to ui
Directory rename
Diffstat (limited to 'install/ui/test/details_tests.js')
-rw-r--r--install/ui/test/details_tests.js327
1 files changed, 327 insertions, 0 deletions
diff --git a/install/ui/test/details_tests.js b/install/ui/test/details_tests.js
new file mode 100644
index 000000000..d832bd26d
--- /dev/null
+++ b/install/ui/test/details_tests.js
@@ -0,0 +1,327 @@
+/* Authors:
+ * Adam Young <ayoung@redhat.com>
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+
+
+module('details');
+
+test("Testing IPA.details_section.create().", function() {
+
+ IPA.ajax_options.async = false;
+
+ IPA.init(
+ "data",
+ true,
+ function(data, text_status, xhr) {
+ ok(true, "ipa_init() succeeded.");
+ },
+ function(xhr, text_status, error_thrown) {
+ ok(false, "ipa_init() failed: "+error_thrown);
+ }
+ );
+
+ var section = IPA.stanza({name:'IDIDID', label:'NAMENAMENAME'}).
+ input({name:'cn'}).
+ input({name:'description'}).
+ input({name:'number'});
+
+
+ var fields = section.fields;
+ var container = $("<div/>");
+ 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<fields.length; i++) {
+ var field = fields[i];
+
+ var dt = dts.get(i);
+ same(
+ dt.innerHTML, field.label+':',
+ 'Checking field '+field.name+'\'s label'
+ );
+
+ var span = $('span[name='+field.name+']', dl);
+
+ ok(
+ span.length,
+ 'Checking span tag for field '+field.name
+ );
+
+ var dd = $('dd', span);
+
+ ok(
+ dd.length == 0,
+ 'Checking dd tag for field '+field.name
+ );
+ }
+});
+
+
+
+test("Testing details lifecycle: create, setup, load.", function(){
+
+ IPA.ajax_options.async = false;
+
+ IPA.init(
+ "data",
+ true,
+ function(data, text_status, xhr) {
+ ok(true, "ipa_init() succeeded.");
+ },
+ function(xhr, text_status, error_thrown) {
+ ok(false, "ipa_init() failed: "+error_thrown);
+ }
+ );
+
+ var result = {};
+
+ IPA.cmd(
+ 'user_show',
+ ['kfrog'],
+ {},
+ function(data, text_status, xhr) {
+ result = data.result.result;
+ ok(true, "IPA.cmd() succeeded.");
+ },
+ function(xhr, text_status, error_thrown) {
+ ok(false, "IPA.cmd() failed: "+error_thrown);
+ }
+ );
+
+ 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'}).
+ input({name:'givenname'}).
+ input({name:'sn'}).
+ input({name:'cn'}).
+ input({name:'displayname'}).
+ input({name:'initials'}),
+ IPA.stanza({name:'account', label:'Account Details'}).
+ input({name:'status', setup: setup_status}).
+ input({name:'uid'}).
+ input({name:'userpassword', save: save_password}).
+ input({name:'uidnumber'}).
+ input({name:'gidnumber'}).
+ input({name:'homedirectory'}),
+ IPA.stanza({name:'contact', label:'Contact Details'}).
+ input({name:'mail'}).
+ input({name:'telephonenumber'}),
+ IPA.stanza({name:'address'}).
+ input({name:'street'}).
+ input({name:'location'}).
+ input({name:'state', setup: setup_st}).
+ input({name:'postalcode'}),
+ IPA.stanza({name:'employee', label:'Employee Information'}).
+ input({name:'ou'}).
+ input({name:'manager', load: load_manager}),
+ IPA.stanza({name:'misc', label:'Misc. Information'}).
+ input({name:'carlicense'})
+ ]);
+
+ var entity = IPA.fetch_entity(obj_name);
+ var facet = entity.get_facet('details');
+ facet.create(container);
+ facet.setup(container);
+ facet.load(result);
+
+ var contact = container.find('dl#contact.entryattrs');
+
+ ok(
+ contact,
+ 'dl tag for contact is created'
+ );
+
+ var identity = 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'
+ );
+
+ container.attr('id','user');
+
+ ok (
+ setup_status_called,
+ 'Setup status called'
+ );
+
+ ok (load_manager_called, 'load manager called');
+
+ 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_password_called, 'save password called');
+
+});
+
+
+test("Testing create_input().", function() {
+
+ var field = IPA.details_field({
+ 'name': "name"
+ });
+
+ var name = "name";
+ var value="value";
+ var rights = 'rscwo'
+ var input = field.create_input(value, null, rights);
+ ok(input,"input not null");
+
+ var text = input.find('input');
+ ok(text);
+
+ same(text[0].name,name );
+ same(text[0].value,value );
+ same(text[0].type,"text" );
+});
+
+test("Testing create_input() read only .", function() {
+
+ var field = IPA.details_field({
+ 'name': "name"
+ });
+
+ var name = "name";
+ var value="value";
+ var rights = 'rsc'
+ var input = field.create_input(value, null, rights);
+ ok(input,"input not null");
+
+ var text = input.find('input');
+ ok(text);
+
+ same(text[0].name,name );
+ same(text[0].value,value );
+ same(text[0].type,"text" );
+ ok(text[0].disabled);
+
+});
+
+
+
+
+test("Testing IPA.details_section_setup again()",function(){
+
+ 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);
+
+ var result = {};
+
+ section.create(container);
+ section.setup(container);
+ section.load(result);
+
+ //var h2= container.find('h2');
+ //ok(h2);
+ //ok(h2[0].innerHTML.indexOf(section.label) > 1,"find name in html");
+
+ var dl = $('dl', container);
+ ok(
+ dl.length,
+ 'dl is created'
+ );
+
+ var dt = $('dt', dl);
+ same(
+ dt.length, 3,
+ '3 dt'
+ );
+
+ var span = dt.next();
+ same(
+ span.length, 3,
+ '3 span'
+ );
+
+ same(
+ dl[0].id, section.name,
+ 'checking section name'
+ );
+
+ same(
+ dt[0].innerHTML, fields[0].label+":",
+ 'inner HTML matches label'
+ );
+
+ var dd = $('dd', span[0]);
+ same(
+ dd.length, 1,
+ '1 dd'
+ );
+});